电子科技大学数字信号处理实验4滤波器设计.docx

上传人:b****7 文档编号:24042136 上传时间:2023-05-23 格式:DOCX 页数:14 大小:474.10KB
下载 相关 举报
电子科技大学数字信号处理实验4滤波器设计.docx_第1页
第1页 / 共14页
电子科技大学数字信号处理实验4滤波器设计.docx_第2页
第2页 / 共14页
电子科技大学数字信号处理实验4滤波器设计.docx_第3页
第3页 / 共14页
电子科技大学数字信号处理实验4滤波器设计.docx_第4页
第4页 / 共14页
电子科技大学数字信号处理实验4滤波器设计.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

电子科技大学数字信号处理实验4滤波器设计.docx

《电子科技大学数字信号处理实验4滤波器设计.docx》由会员分享,可在线阅读,更多相关《电子科技大学数字信号处理实验4滤波器设计.docx(14页珍藏版)》请在冰豆网上搜索。

电子科技大学数字信号处理实验4滤波器设计.docx

电子科技大学数字信号处理实验4滤波器设计

电子科技大学

实验报告

学生姓名:

好心的学长学号:

指导教师:

一、实验室名称:

数字信号处理实验室

二、实验项目名称:

数字滤波器的设计及实现

三、实验原理:

一.数字滤波器设计:

1.数字滤波器设计步骤:

(1)根据给定的滤波器设计要求,得到参数化描述,即通带,阻带截止频率

,通带阻带纹波

等数据。

(2)找一个数字系统函数G(z),使其频率响应逼近设计要求。

(3)择合适的滤波器结构对满足要求的传递函数G(z)进行实现。

2.数字滤波器设计中的注意事项:

(1)

设计要求的参数化:

图1给出了一个典型的数字低通滤波器的幅频特性说明。

理解每个参数的物理含义。

 

(2)滤波器类型选择:

在数字滤波器实现中可选择IIR滤波器和FIR滤波器两种。

在实现相同幅频特性时,IIR滤波器的阶数会相对FIR滤波器的更低;而在实现中,对相同阶数的两种滤波器来看,对每个采样值所做的乘法数量,IIR约为FIR的两倍;另外,FIR还可以方便地设计成线性相位滤波器。

总的来说,IIR滤波器除不能实现线性相位这一点外,由于阶数的原因,从计算复杂度上较FIR滤波器有很大的优势。

根据以上这些区别,结合实际的设计要求,就可以选择一款合适的滤波器。

(3)波器设计的方法:

由于IIR滤波器和FIR滤波器各自的结构特点,所以它们的设计方法也不一样。

在IIR滤波器的设计中,常用的方法是:

先根据设计要求寻找一个合适的模拟原型滤波器

,然后根据一定的准则将此模拟原型滤波器转换为数字滤波器

,即为我们需要设计的数字滤波器。

在FIR滤波器设计中,一般使用比较直接的方法:

根据设计的要求在时域对理想的冲击响应序列进行加窗逼近,或从频域对需要实现的频率响应特性进行采样逼近然后进行反FFT。

(4)波器阶数估计:

IIR滤波器的阶数就等于所选的模拟原型滤波器的阶数,所以其阶数确定主要是在模拟原型滤波器设计中进行的。

FIR滤波器阶数估计可以根据很多工程中的经验公式,这些公式可以直接从设计的参数要求中估计滤波器阶数。

例如,对FIR低通滤波器,已知通带截止频率

,阻带截止频率

,最大通带纹波

和最大最带纹波

,则可以使用下面的公式估计其阶数:

3.数字滤波器的设计方法:

(1)IIR滤波器设计方法:

(a)冲击响应不变法:

A.

满足设计要求的模拟原型滤波器

进行部分分式展开为:

B.由于,可以得到:

 

(b)双线性变换法:

A.设计要求中给出的边界频率进行预畸处理,然后用得到的频率进行模拟滤波器设计,得到模拟原型滤波器

B.用双线性变换法求出数字滤波器:

(2)FIR滤波器设计方法:

(a)窗函数法:

A.根据设计的要求选择合适的窗函数

,然后根据此窗计算阶数等参数N。

B.写出冲击响应序列的表达式:

,其中,

为理想的冲击响应序列,一般为无限长的,

为长度为N的窗函数。

C.计算所得冲击响应序列

的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,buttord,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,mval,dev)

3.MATLAB中提供的滤波器设计辅助设计软件(在命令窗口中键入“fdatool”即可启动),界面如下图1所示。

在本界面中填写需要设计的滤波器参数,即可设计出需要的滤波器。

还可以通过本工具提供的幅度,相位观察窗口观察设计出来的滤波器的幅度,相位特性等,并可以将设计好的滤波器冲激响应系数导出进行实现。

图1MATLAB中滤波器辅助设计软件界面

四、实验目的:

从理论上讲,任何的线性时不变(LTI)离散时间系统都可以看做一个数字滤波器,因此设计数字滤波器实际就是设计离散时间系统。

本实验通过使用MATLAB函数和滤波器辅助设计软件对数字滤波器进行设计和实现,加深学生对数字滤波器的常用指标、设计过程及实现的理解。

五、实验内容:

对给定的输入信号(基带二进制码元为500Hz,两个载频分别为2kHz和4kHz的FSK调制信号)进行滤波。

利用MATLAB编程设计一个数字低通滤波器,指标要求如下:

通带截止频率:

;阻带截止频率:

;采样频率

;通带峰值起伏:

;最小阻带衰减:

要求分别用MATLAB中的IIR和FIR设计命令进行滤波器设计,得出需要的滤波器系数。

再将得到的滤波器系数在MATLAB中编程进行实现(选择直接型实现结果),对输入信号进行滤波,观察滤波结果。

在提供的DSP实验板上编程对本滤波器过程进行实现,观察实际的滤波结果,并与理论结果对比。

六、实验器材(设备、元器件):

安装MATLAB软件的PC机一台,DSP实验演示系统一套。

七、实验步骤:

(1)给定输入信号:

FSK信号(输入的二进制待调信号为随机信号,码元频率为500Hz,两个载频分别为2kHz和4kHz,采样频率为20kHz,)。

利用MATLAB编程产生本信号,画出其时域和频域的图像。

(2)利用MATLAB编程设计一个数字低通滤波器,指标要求如下:

通带截止频率:

;阻带截止频率:

;采样频率

;通带峰值起伏:

;最小阻带衰减:

(3)分别用MATLAB中的IIR和FIR设计命令进行滤波器设计,得出需要的滤波器系数。

(4)(拓展要求)用MATLAB滤波器辅助设计软件对上述滤波器进行设计,并将得到的滤波器系数对输入信号进行滤波,观察滤波实现。

(5)将得到的滤波器系数在MATLAB中编程进行实现(选择直接型实现结果进行实现),对

(1)中的输入信号进行滤波(分别用FIR和IIR滤波器进行),观察滤波结果,画出时域和频域图像。

(6)(拓展要求)修改需要设计的滤波器的指标要求,比如:

将通带截止频率修改为2kHz,或者将最小阻带衰减改为

,这时再重复(3)和(5)的步骤,观察所得到的滤波器效果,并对这一结果进行解释。

(7)(拓展要求)在提供的DSP实验板上编程对滤波器滤波过程进行实现,观察实际的滤波结果,并与理论结果对比。

八、实验数据及结果分析:

程序:

(1)产生输入FSK信号的程序

x=randn(10,1)>0;

fl=2000;

fh=4000;

fs=20000;

ts=1/500;

tt=(0:

1/fs:

ts);

t=[tt;tt+ts;tt+2*ts;tt+3*ts;tt+4*ts;tt+5*ts;tt+6*ts;tt+7*ts;tt+8*ts;tt+9*ts];

y=zeros(10,length(tt));

i=1;

whilei<=10

y(i,:

)=x(i)*sin(2*pi*fh*t(i,:

))+~x(i)*sin(2*pi*fl*t(i,:

));

i=i+1;

end

t=reshape(t',length(tt)*10,1);

y=reshape(y',length(tt)*10,1);

subplot(211);

plot(t,y);

title('时域波形');

n=length(y);

r=fft(y)/n;

r=fftshift(r);

f=linspace(-fs/2,fs/2,n);

subplot(212);

plot(f,abs(r));

title('频谱图');

 

(2)FIR滤波器设计程序

[n,wn,beta,type]=kaiserord([22003500],[1,0],[0.010.01],20000);

b=fir1(n,wn,kaiser(n+1,beta));

[h,omega]=freqz(b,1,512);

plot(omega/pi,20*log10(abs(h)));

ylabel('magnitude');

xlabel('\omega/\pi');

title('magnituderesponseofthefilter');

(3)IIR滤波器设计程序

[n,wn]=cheb1ord(2*2200/20000,2*3500/20000,1,40);

[b,a]=cheby1(n,1,wn);

[h,omega]=freqz(b,a);

plot(omega/pi,20*log10(abs(h)));

ylabel('magnitude');

xlabel('\omega/\pi');

title('magnituderesponseofthefilter');

(4)FIR滤波器实现程序(用滤波器系数对输入信号进行滤波)

x=randn(10,1)>0;

fl=2000;

fh=4000;

fs=20000;

ts=1/500;

tt=(0:

1/fs:

ts);

t=[tt;tt+ts;tt+2*ts;tt+3*ts;tt+4*ts;tt+5*ts;tt+6*ts;tt+7*ts;tt+8*ts;tt+9*ts];

y=zeros(10,length(tt));

i=1;

whilei<=10

y(i,:

)=x(i)*sin(2*pi*fh*t(i,:

))+~x(i)*sin(2*pi*fl*t(i,:

));

i=i+1;

end

t=reshape(t',length(tt)*10,1);

y=reshape(y',length(tt)*10,1);

[n,wn,beta,type]=kaiserord([22003500],[1,0],[0.010.01],20000);

b=fir1(n,wn,kaiser(n+1,beta));

y1=filter(b,1,y);

plot(t,y1);

ylabel('magnitude');

xlabel('n');

title('filteredsignal');

(5)IIR滤波器实现程序(用滤波器系数对输入信号进行滤波)。

x=randn(10,1)>0;

fl=2000;

fh=4000;

fs=20000;

ts=1/500;

tt=(0:

1/fs:

ts);

t=[tt;tt+ts;tt+2*ts;tt+3*ts;tt+4*ts;tt+5*ts;tt+6*ts;tt+7*ts;tt+8*ts;tt+9*ts];

y=zeros(10,length(tt));

i=1;

whilei<=10

y(i,:

)=x(i)*sin(2*pi*fh*t(i,:

))+~x(i)*sin(2*pi*fl*t(i,:

));

i=i+1;

end

t=reshape(t',length(tt)*10,1);

y=reshape(y',length(tt)*10,1);

[n,wn]=cheb1ord(2*2200/20000,2*3500/20000,1,40);

[b,a]=cheby1(n,1,wn);

y1=filter(b,a,y);

plot(t,y1);

ylabel('magnitude');

xlabel('n');

title('filteredsignal');

结果:

(1)产生的输入FSK信号的时域和频域波形

(2)FIR滤波结果,时域和频域波形。

 

(3)IIR滤波结果,时域和频域波形。

九、实验结论:

实验成功使用了IIR和FIR滤波器对输入信号进行滤波.

十、总结及心得体会:

实践了使用iir和fir滤波器对输入信号进行滤波的过程.

十一、对本实验过程及方法、手段的改进建议:

应该再对滤波出来的信号做频谱分析看是否满足条件.

报告评分:

指导教师签字:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 成人教育 > 成考

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1