实验4-滤波器设计_第1页
实验4-滤波器设计_第2页
实验4-滤波器设计_第3页
实验4-滤波器设计_第4页
实验4-滤波器设计_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实 验 报 告学生姓名: 学 号: 指导教师:一、实验室名称:数字信号处理实验室二、实验项目名称:数字滤波器的设计及实现三、实验原理:一 数字滤波器设计:1 数字滤波器设计步骤:(1) 根据给定的滤波器设计要求,得到参数化描述,即通带,阻带截止频率和,通带阻带纹波和等数据。(2) 找一个数字系统函数G(z),使其频率响应逼近设计要求。(3) 择合适的滤波器结构对满足要求的传递函数G(z)进行实现。2 数字滤波器设计中的注意事项:)(wjeGPd+1Pd-1sdSw-Pw-PwSw通带阻带过渡带w图1.典型的数字LPF幅频特性(1) 设计要求的参数化:图1给出了一个典型的数字低通滤波器的幅频特性

2、说明。理解每个参数的物理含义。(2) 滤波器类型选择:在数字滤波器实现中可选择IIR滤波器和FIR滤波器两种。在实现相同幅频特性时,IIR滤波器的阶数会相对FIR滤波器的更低;而在实现中,对相同阶数的两种滤波器来看,对每个采样值所做的乘法数量,IIR约为FIR的两倍;另外,FIR还可以方便地设计成线性相位滤波器。总的来说,IIR滤波器除不能实现线性相位这一点外,由于阶数的原因,从计算复杂度上较FIR滤波器有很大的优势。根据以上这些区别,结合实际的设计要求,就可以选择一款合适的滤波器。(3) 波器设计的方法:由于IIR滤波器和FIR滤波器各自的结构特点,所以它们的设计方法也不一样。在IIR滤波器

3、的设计中,常用的方法是:先根据设计要求寻找一个合适的模拟原型滤波器,然后根据一定的准则将此模拟原型滤波器转换为数字滤波器,即为我们需要设计的数字滤波器。在FIR滤波器设计中,一般使用比较直接的方法:根据设计的要求在时域对理想的冲击响应序列进行加窗逼近,或从频域对需要实现的频率响应特性进行采样逼近然后进行反FFT。(4) 波器阶数估计:IIR滤波器的阶数就等于所选的模拟原型滤波器的阶数,所以其阶数确定主要是在模拟原型滤波器设计中进行的。FIR滤波器阶数估计可以根据很多工程中的经验公式,这些公式可以直接从设计的参数要求中估计滤波器阶数。例如,对FIR低通滤波器,已知通带截止频率,阻带截止频率,最大

4、通带纹波和最大最带纹波,则可以使用下面的公式估计其阶数:3 数字滤波器的设计方法:(1) IIR滤波器设计方法:(a) 冲击响应不变法:A. 满足设计要求的模拟原型滤波器进行部分分式展开为: B. 由于 ,可以得到:(b) 双线性变换法:A. 设计要求中给出的边界频率进行预畸处理,然后用得到的频率进行模拟滤波器设计,得到模拟原型滤波器。B. 用双线性变换法求出数字滤波器:。(2) FIR滤波器设计方法:(a) 窗函数法:A. 根据设计的要求选择合适的窗函数,然后根据此窗计算阶数等参数N。B. 写出冲击响应序列的表达式:,其中,为理想的冲击响应序列,一般为无限长的,为长度为N的窗函数。C. 计算

5、所得冲击响应序列的DTFT,然后验证其是否满足设计要求。(b) 频率采样法:A. 根据设计要求估算滤波器阶数N。B. 对要求的频率响应特性进行采样,获得N个离散样点值H(k)。C. 对H(k)求N点IFFT,得到所需要的滤波器冲击响应序列h(n)。D. 计算所得冲击响应序列的DTFT,然后验证其是否满足设计要求。4 滤波器的实现结构(a) FIR滤波器:直接型实现结构级联结构并联结构多相实现结构线性相位型结构(b) IIR滤波器:直接型实现结构:I型和II型级联结构并联结构具体结构形式参见教材第六章内容。二 在滤波器设计中使用到的MATLAB命令:1. IIR滤波器设计函数:butter, b

6、uttord, chebwin, cheb1ord, cheb2ord, cheby1, cheby2, ellip, ellipord。例如:用下面的MATLAB命令可估算一个Butterworth滤波器的阶数:N, Wn = buttord(Wp, Ws, Rp, Rs)2. FIR滤波器设计函数:fir1, fir2, remez, remezord, kaiser, kaiserord, hanning, hamming, blackman。例如:用下面的MATLAB命令可根据式(7.18)估算一个FIR滤波器阶数:N, fpts,mag,wt = remezord(fedge,mva

7、l,dev)3. MATLAB中提供的滤波器设计辅助设计软件(在命令窗口中键入“fdatool”即可启动),界面如下图1所示。在本界面中填写需要设计的滤波器参数,即可设计出需要的滤波器。还可以通过本工具提供的幅度,相位观察窗口观察设计出来的滤波器的幅度,相位特性等,并可以将设计好的滤波器冲激响应系数导出进行实现。图1 MATLAB中滤波器辅助设计软件界面四、实验目的:从理论上讲,任何的线性时不变(LTI)离散时间系统都可以看做一个数字滤波器,因此设计数字滤波器实际就是设计离散时间系统。本实验通过使用MATLAB函数和滤波器辅助设计软件对数字滤波器进行设计和实现,加深学生对数字滤波器的常用指标、

8、设计过程及实现的理解。五、实验内容:对给定的输入信号(基带二进制码元为500Hz,两个载频分别为2kHz和4kHz的FSK调制信号)进行滤波。利用MATLAB编程设计一个数字低通滤波器,指标要求如下:通带截止频率:;阻带截止频率:;采样频率;通带峰值起伏:;最小阻带衰减:。要求分别用MATLAB中的IIR和FIR设计命令进行滤波器设计,得出需要的滤波器系数。再将得到的滤波器系数在MATLAB中编程进行实现(选择直接型实现结果),对输入信号进行滤波,观察滤波结果。在提供的DSP实验板上编程对本滤波器过程进行实现,观察实际的滤波结果,并与理论结果对比。六、实验器材(设备、元器件):安装MATLAB

9、软件的PC机一台,DSP实验演示系统一套。七、实验步骤:(1) 给定输入信号:FSK信号(输入的二进制待调信号为随机信号,码元频率为500Hz,两个载频分别为2kHz和4kHz,采样频率为20kHz,)。利用MATLAB编程产生本信号,画出其时域和频域的图像。(2) 利用MATLAB编程设计一个数字低通滤波器,指标要求如下:通带截止频率:;阻带截止频率:;采样频率;通带峰值起伏:;最小阻带衰减:。(3) 分别用MATLAB中的IIR和FIR设计命令进行滤波器设计,得出需要的滤波器系数。(4) (拓展要求)用MATLAB滤波器辅助设计软件对上述滤波器进行设计,并将得到的滤波器系数对输入信号进行滤

10、波,观察滤波实现。(5) 将得到的滤波器系数在MATLAB中编程进行实现(选择直接型实现结果进行实现),对(1)中的输入信号进行滤波(分别用FIR和IIR滤波器进行),观察滤波结果,画出时域和频域图像。(6) (拓展要求)修改需要设计的滤波器的指标要求,比如:将通带截止频率修改为2kHz,或者将最小阻带衰减改为,这时再重复(3)和(5)的步骤,观察所得到的滤波器效果,并对这一结果进行解释。(7) (拓展要求)在提供的DSP实验板上编程对滤波器滤波过程进行实现,观察实际的滤波结果,并与理论结果对比。8、 实验数据及结果分析:(1)产生输入FSK信号的程序 程序:N=input(二进制序列长度=)

11、;b=randint(1,N,2); %二进制序列rb=500; %比特率为500A=10; %调制信号的幅度f1=2000; %载频f1为2000f2=4000; %载频f1为4000fs=20000; %采样频率20kHzTime=1/rb; %脉冲保持时间Num=fs*Time; %一个脉冲采样多少点High_Level=ones(1,Num); Low_Level=zeros(1,Num); signal=zeros(1,Num*N);%调制后的信号signal_y=zeros(1,Num*N);%基带信号t=0:1/fs:N*Time-1/fs; for I=1:N %原始脉冲信号

12、if b(I)=1 signal_y(I-1)*Num+1:I*Num)=High_Level; else signal_y(I-1)*Num+1:I*Num)=Low_Level; endend for I=1:N %实现FSK调制 if b(I)=1 signal(I-1)*Num+1:I*Num)=A*sin(2*pi*f1*t(I-1)*Num+1:I*Num); else signal(I-1)*Num+1:I*Num)=A*sin(2*pi*f2*t(I-1)*Num+1:I*Num); endend H,omega=freqz(signal,1); %得到调制后频谱subplot

13、(311)plot(t,signal_y) axis(0,N*Time-1/fs,0,2)title(基带信号时域波形)subplot(312)plot(t,signal)title(FSK调制后的时域波形)subplot(313)plot(omega*fs/(2*pi),abs(H)title(FSK调制后信号频域波形)其调制后时域频域波形如下:结果分析: (1)实验中取了20个二进制随机序列,形成了如上图所示的基带信号 的时域脉冲信号。 (2)取F1=2kHz ,F2=4kHz 的载频信号,进行FSK调制,同时实验中 用到的采样频率Fs=20kHz。得到如上图所示的时域波形与频域波形。 其

14、中当脉冲取1时,时域在该时刻为频率为2kHz的正弦信号,频域 低频信号移到2kHz为中心的区域;当脉冲取0时,时域在该时刻为 频率为4kHz的正弦信号,频域低频信号移到4kHz为中心的区域。 便得到了FSK的调制信号。(2) FIR滤波器设计程序 程序如下:N=input(二进制序列长度=);b=randint(1,N,2); %二进制序列rb=500; %比特率为500A=10; %调制信号的幅度f1=2000; %载频f1为2000f2=4000; %载频f1为4000fs=20000; %采样频率20kHzTime=1/rb; %脉冲保持时间Num=fs*Time; %一个脉冲采样多少点

15、High_Level=ones(1,Num); Low_Level=zeros(1,Num); signal=zeros(1,Num*N);%调制后的信号signal_y=zeros(1,Num*N);%基带信号t=0:1/fs:N*Time-1/fs; for I=1:N %原始脉冲信号 if b(I)=1 signal_y(I-1)*Num+1:I*Num)=High_Level; else signal_y(I-1)*Num+1:I*Num)=Low_Level; endend for I=1:N %实现FSK调制 if b(I)=1 signal(I-1)*Num+1:I*Num)=A

16、*sin(2*pi*f2*t(I-1)*Num+1:I*Num); else signal(I-1)*Num+1:I*Num)=A*sin(2*pi*f1*t(I-1)*Num+1:I*Num); endend fp=2200; %通带截止频率fs1=3500; %阻带截止频率fc=20000; %采用频率ap=1; %通带峰值起伏为1dBas=40; %最小阻带衰减为40dBwp=2*pi*fp/fc; %归一化的通带截止角频率ws=2*pi*fs1/fc; %归一化的阻带截止角频率dw=ws-wp; M=3.11*pi/dw;N=ceil(2*M+1); %窗函数的阶数W=hann(N+1

17、); %汉宁窗函数wn=(ws+wp)/(2*pi);b=fir1(N,wn,W); %进行加窗%freqz(b,1,512) %得低通滤波器的频谱b=fir1(N,wn,W);H3,omega3=freqz(b,1,512) %滤波器的频率H1,omega1=freqz(signal,1); %调制后的频率y=filter2(b,signal); H2,omega2=freqz(y,1); %滤波之后的频率响应 figure(1)subplot(211)plot(t,signal)title(滤波前的时域波形)subplot(212)plot(t,y)title(滤波后的时域波形) figu

18、re(2)subplot(311)plot(omega1*fs/(2*pi),abs(H1)title(滤波前的频谱)subplot(312)plot(omega2*fs/(2*pi),abs(H2)title(滤波后的频谱)subplot(313)plot(omega3*fs/(2*pi),abs(H3)title(滤波器的频谱) 结果分析: 程序用汉宁窗进行加窗处理,并计算出所需最小阶数为50,且 其采样频率为20kHz,其通带截止频率为2.2kHz,阻带截止频率 为3.5kHz。用该滤波器对FSK调制信号进行滤波,将高频频谱 4kHz的信号滤掉,得到的时域,频率波形如下: FIR滤波前后

19、时域的波形如下: FIR滤波前后频率的波形及FIR滤波器如下: (3) IIR滤波器设计程序 程序如下:N=input(二进制序列长度=);b=randint(1,N,2); %二进制序列rb=500; %比特率为500A=10; %调制信号的幅度f1=2000; %载频f1为2000f2=4000; %载频f1为4000fs=20000; %采样频率20kHzTime=1/rb; %脉冲保持时间Num=fs*Time; %一个脉冲采样多少点High_Level=ones(1,Num); Low_Level=zeros(1,Num); signal=zeros(1,Num*N);%调制后的信号

20、signal_y=zeros(1,Num*N);%基带信号t=0:1/fs:N*Time-1/fs; for I=1:N %原始脉冲信号 if b(I)=1 signal_y(I-1)*Num+1:I*Num)=High_Level; else signal_y(I-1)*Num+1:I*Num)=Low_Level; endend for I=1:N %实现FSK调制 if b(I)=1 signal(I-1)*Num+1:I*Num)=A*sin(2*pi*f2*t(I-1)*Num+1:I*Num); else signal(I-1)*Num+1:I*Num)=A*sin(2*pi*f1

21、*t(I-1)*Num+1:I*Num); endendfp=2200; %通带截止频率fs=3500; %阻带截止频率fc=20000; %采用频率ap=1; %通带峰值起伏为1dBas=40; %最小阻带衰减为40dBwp=2*pi*fp/fc; %归一化的通带截止角频率ws=2*pi*fs/fc; %归一化的阻带截止角频率T=2;WP=(2/T)*tan(wp/2);%对wp进行预畸变处理WS=(2/T)*tan(ws/2);%对ws进行预畸变处理N,Wn=ellipord(WP,WS,ap,as,s);%椭圆滤波器的实现B,A=ellip(N,ap,as,Wn,s);num,den=b

22、ilinear(B,A,1/T); %进行双线性变换H3,omega3=freqz(num,den,20);H1,omega1=freqz(signal,1);y=filter(num,den,signal); %用IIR滤波器进行滤波处理H2,omega2=freqz(y,1); figure(1)subplot(211)plot(t,signal)title(滤波前的时域波形)subplot(212)plot(t,y)title(滤波后的时域波形) figure(2)subplot(311)plot(omega1*fs/(2*pi),abs(H1)title(滤波前的频谱)subplot(312)plot(omega2*fs/(2*pi),abs(H2)title(滤波后的频谱)subplot(313)plot(omega3*fs/(2*pi),abs(H3)title(滤波器的频谱) 结果分析:用椭圆滤波器进行双线性变化,得到IIR数字滤波器,其参数同上。对FSK进行滤波,将高频频谱4kHz的信号滤掉,得到时域频域波形如下图: IIR滤波前后的时域波形如下: IIR滤波前后的频谱及IIR滤波器的频谱如下: (4) 将通带截止频率修改为2kHz,只需将以上程序的fp=2kHz即可,可以从所 得图中看到和原频谱滤波滤出的效果差不多,只是在2000Hz的右边的部分

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论