课程设计课程设计名称:数字信号处理课程设计专业班级:电信学生姓名:学号:指导教师:乔丽红课程设计时间: 6.16-6.20电子信息工程专业课程设计任务书说明:本表由指导教师填写,由教研室主任审核后下达给选题学生,装订在设计(论文)首页一需求分析和设计内容数字信号处理是把许多经典的理论体系作为自己的理论基础,同时又使自己成为一系列新兴学科的理论基础。
现如今随着电子设备工作频率范围的不断扩大,电磁干扰也越来越严重,接收机接收到的信号也越来越复杂。
为了得到所需要频率的信号,就需要对接收到的信号进行过滤,从而得到所需频率段的信号,这就是滤波器的工作原理。
对于传统的滤波器而言,如果滤波器的输入,输出都是离散时间信号,则该滤波器的冲激响应也必然是离散的,这样的滤波器定义为数字滤波器。
它通过对采样数据信号进行数学运算来达到频域滤波的目的.滤波器在功能上可分为四类,即低通(LP )、高通(HP )、带通(BP )、带阻(BS )滤波器等,每种又有模拟滤波器(AF )和数字滤波器(DF )两种形式。
对数字滤波器,从实现方法上,具有有限长冲激响应的数字滤波器被称为FIR 滤波器,具有无限长冲激响应的数字滤波器被称为IIR 滤波器。
FIR 数字滤波器的主要优点有:一、具有严格的线性相位特性;二、不存在稳定性问题;三、可利用DFT 来实现。
这些优点使FIR 数字滤波器得到了广泛应用。
窗函数法是一种设计FIR 数字滤波器的基本方法,但它不是最佳设计方法,在满足同样设计指标的情况下,用这种方法设计出的滤波器的阶数通常偏大。
在窗函数法的基础上,以所定义的逼近误差最小为准则来进行优化设计的算法,由于其中的逼近误差可根据不同的设计要求进行定义,故此算法适应性强,它既可用于设计选频型滤波器,又适用于非选频型滤波器的设计。
常用的窗函数有矩形窗函数、巴特莱特窗函数、三角窗函数、汉宁(Hann )窗函数、海明(Hamming )窗函数、布莱克曼(Blackman )窗函数、凯塞(Kaiser )窗函数等。
本设计通过MATLAB 软件对FIR 型滤波器进行理论上的实现,利用巴特莱特窗函数设计数字FIR 带通滤波器。
FIR 系统不像IIR 系统那样易取得较好的通带和阻带衰减特性,要取得较好的衰减特性,一般要求H (z )阶次要高,也即M 要大。
FIR 系统有自己突出的优点:系统总是稳定的;易实现线性相位;允许设计多通带(或多阻带)滤波器,后两项都是IIR 系统不易实现的。
FIR 数字滤波器的设计方法有多种,如窗函数设计法、频率采样法和Chebyshev 逼近法等。
随着Matlab 软件尤其是Matlab的信号处理工作箱的不断完善,不仅数字滤波器的计算机辅助设计有了可能,而且还可以使设计达到最优化。
本实验的数字滤波器的MATLAB 实现是指调用MATLAB 信号处理工具箱函数filter 对给定的输入信号x(n)进行滤波,得到滤波后的输出信号y(n )。
用巴特莱特窗函数法设计一个数字FIR 带通滤波器,要求通带边界频率为400Hz ,500Hz ,阻带边界频率为350Hz ,550Hz ,通带最大衰减1dB ,阻带最小衰减40dB ,抽样频率为2000Hz ,用MATLAB 画出幅频特性,画出并分析滤波器传输函数的零极点;信号)2sin()2sin()()()(2121t f t f t x t x t x ππ+=+=经过该滤波器,其中=1f 450Hz ,=2f 600Hz ,滤波器的输出)(t y 是什么?用Matlab 验证你的结论并给出)(),(),(),(21t y t x t x t x 的图形。
二 设计原理及设计思路1.设计FIR 数字滤波器的基本方法:FIR 数字滤波器的系统函数无分母,为1100()()N N in i i i H Z b z h n z ----====∑∑,系统频率响应可写成:10()()N jwjwn n H e h n e --==∑,令()jw H e =()()j w H w e ϕ,H(w)为幅度函数,()w ϕ称为相位函数。
这与模和辐角的表示方法不同,H(w)为可为正可为负的实数,这是为了表达上的方便。
如某系统频率响应 ()jw H e =sin4w 3j w e -,如果采用模和幅角的表示方法,sin4w 的变号相当于在相位上加上π(因-1= j e π),从而造成相位曲线的不连贯和表达不方便,用()()j w H w e ϕ则连贯而方便。
窗函数法又称傅里叶级数法,其设计是在时域进行的。
函数一般是无限长且非因果的,设计时需用一个合适的窗函数把它截成有限长的因果序列,使对应的频率响应(的傅里叶变换)尽可能好地逼近理想频率响应。
窗函数法的主要缺点是:一、不容易设计预先给定截止频率的滤波器;二、满足同样设计指标的情况下所设计出的滤波器的阶数通常偏大。
一些固定窗函数的特性表2.FIR 数字滤波器设计的基本步骤如下:(1)确定技术指标在设计一个滤波器之前,必须首先根据工程实际的需要确定滤波器的技术指标。
在很多实际应用中,数字滤波器常被用来实现选频操作。
因此,指标的形式一般在频域中给出幅度和相位响应。
幅度指标主要以2种方式给出。
第一种是绝对指标。
他提供对幅度响应函数的要求,一般应用于FIR滤波器的设计。
第二种指标是相对指标。
他以分贝值的形式给出要求。
本文中滤波器的设计就以线性相位FIR滤波器的设计为例。
(2)逼近确定了技术指标后,就可以建立一个目标的数字滤波器模型(通常采用理想的数字滤波器模型)。
之后,利用数字滤波器的设计方法(窗函数法、频率采样法等),设计出一个实际滤波器模型来逼近给定的目标。
(3)性能分析和计算机仿真上两步的结果是得到以差分或系统函数或冲激响应描述的滤波器。
根据这个描述就可以分析其频率特性和相位特性,以验证设计结果是否满足指标要求;或者利用计算机仿真实现设计的滤波器,再分析滤波结果来判断。
三程序流程图四程序源代码clear all; clcFs=2000;fpl=400;fpu=500;fsl=350;fsu=550;wpl=2*pi*fpl/Fs;wpu=2*pi*fpu/Fs;%通带截止频率%wsl=2*pi*fsl/Fs;wsu=2*pi*fsu/Fs;%阻带截止频率%B=wpl-wsl; %计算过渡带宽度%%N=2*ceil(3.32*pi/Bt)+1;%计算所需h(n)长度N0,ceil取大于等于%wc=[(wpl+wsl)/2/pi,(wpu+wsu)/2/pi];%计算理想带通滤波器截止频率%ap=1;as=40;dp=1-10^(-ap/20);ds=10^(-as/20);fenzi=-20*log10(sqrt(dp*ds))-13;fenmu=14.6*B/2/pi;N=ceil(fenzi/fenmu);n=0:N;hn=fir1(N,wc,bartlett(N+1));%调用firl计算带通FIR数字滤波器的h(n)% [H,w]=freqz(hn,1,1024);%计算频率响应函数h(n)%figure(1);magH=20*log10(abs(H)/max(abs(H)));%计算幅度%subplot(3,1,1);stem(n,hn,'.');xlabel('n');ylabel('h(n)');title('巴特莱特窗FIR数字带通滤波器的单位脉冲响应');subplot(3,1,2);plot(w/pi*Fs/2,magH);%绘制幅度特性%title('巴特莱特窗FIR数字带通滤波器的幅度特性');xlabel('频率/Hz');ylabel('20lg|Hg(e^j^\omega)|/max(|Hg(e^j^\omega)|)');grid on;subplot(3,1,3);plot(w/pi*Fs/2,unwrap(angle(H)));%频率响应相位%title('巴特莱特窗FIR数字带通滤波器的相位特性');xlabel('频率/Hz');ylabel('相位/rad');grid on;figure(2);zplane(hn,1);;%绘制零极点图%title('巴特莱特窗FIR数字带通滤波器系统函数的零极点图');legend('零点','极点');grid on;n=0:1023;dt=1/10000;t=n*dt;f1=450;f2=600;x=sin(2*pi*f1*t)+sin(2*pi*f2*t);x1=sin(2*pi*f1*t);x2=sin(2*pi*f2*t);y=filter(hn,1,x);figure(3);subplot(3,1,1);plot(x);title('输入信号x(t)');xlabel('t/s');ylabel('x(t)');grid on;axis([0,50*pi,-2,2]);subplot(3,1,2);plot(x1);grid on;title('输入信号x1(t)');xlabel('t/s');ylabel('x1(t)');axis([0,50*pi,-2,2]);subplot(3,1,3);plot(x2);grid on;title('输入信号x2(t)');xlabel('t/s');ylabel('x2(t)');axis([0,50*pi,-2,2]);figure(4)plot(y);grid on;title('输出信号y(t)');xlabel('t/s');ylabel('y(t)');axis([0,50*pi,min(y),max(y)]);%频谱图fs=2000;N=1024;n=0:N-1;t=n/fs;f1=450;f2=600;x=sin(2*pi*f1*t)+sin(2*pi*f2*t)y=filter(hn,1,x);Y1=fft(x,N);Y2=fft(y,N)mag1=abs(Y1);mag2=abs(Y2);f=n*fs/N;figure(5)subplot(2,1,1);plot(f(1:N/2),mag1(1:N/2));title('输入信号的频谱图');xlabel('频率/HZ');ylabel('振幅');grid on;subplot(2,1,2);plot(f(1:N/2),mag2(1:N/2));title('输出信号的频谱图');xlabel('频率/HZ');ylabel('振幅');grid on;五仿真结果图巴特莱特窗FIR数字带通滤波器的单位脉冲响应,幅度特性及相位特性巴特莱特窗FIR数字带通滤波器系统函数的零极点图输入信号x1(t),x2(t)及和信号x(t)输出信号y(t)输入信号的频谱图及输出信号的频谱图六参考资料[1] 胡广书. 数字信号处理—理论、算法与实现[M]. 北京: 清华大学出版社, 1997.[2] R. Lyons. Understanding Digital Signal Processing [M]. 2nd ed. PrenticeHall PTR., 2004.[3] A.V.奥本海姆, R.W.谢弗 and J.R.巴克. 离散时间信号处理[M]. 第二版. 西安交通大学出版社, 2001.[4] S. K. Mitra. Digital Signal Processing: A Computer-Based Approach[M]. 3rded. McGraw-Hill, 2005.[5] 程佩青,《数字信号处理教程》,清华大学出版社,2001[6] 郭仕剑,《MATLAB 7.x数字信号处理》,人民邮电出版社,2006[7] 陈怀琛,数字信号处理教程——MATLAB释义与实现,电子工业出版社,2004七设计心得通过本次课程设计,不仅加深了对理论知识的了解,巩固了课堂上所学的理论知识,而且还增加了自己的动手能力,并且理解与掌握数字信号处理中的基本概念、基本原理、基本分析方法。