⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 3filters.txt

📁 低通采样 用MATLAB设计低通,带通,高通和带阻FIR数字滤波器
💻 TXT
📖 第 1 页 / 共 2 页
字号:

1.高通滤波器:Wp和Ws为一元矢量且Wp>Ws; 

2.低通滤波器:Wp和Ws为一元矢量且Wp<Ws; 

3.带通滤波器:Wp和Ws为二元矢量且Wp<Ws,如Wp=[0.2,0.7],Ws=[0.1,0.8]; 

4.带阻滤波器:Wp和Ws为二元矢量且Wp>Ws,如Wp=[0.1,0.8],Ws=[0.2,0.7]。 

二、契比雪夫I型IIR滤波器的设计 

在期望通带下降斜率大的场合,应使用椭圆滤波器或契比雪夫滤波器。在MATLAB下可使用cheby1函数设计出契比雪夫I型IIR滤波器。 

cheby1函数可设计低通、高通、带通和带阻契比雪夫I型滤IIR波器,其通带内为等波纹,阻带内为单调。契比雪夫I型的下降斜度比II型大,但其代价是通带内波纹较大。 

cheby1函数的用法为: 

[b,a]=cheby1(n,Rp,Wn,/ftype/) 

在使用cheby1函数设计IIR滤波器之前,可使用cheblord函数求出滤波器阶数n和截止频率Wn。cheblord函数可在给定滤波器性能的情况下,选择契比雪夫I型滤波器的最小阶和截止频率Wn。 

cheblord函数的用法为: 

[n,Wn]=cheblord(Wp,Ws,Rp,Rs) 

其中Wp和Ws分别是通带和阻带的拐角频率(截止频率),其取值范围为0至1之间。当其值为1时代表采样频率的一半。Rp和Rs分别是通带和阻带区的波纹系数。 

3.4 实验内容 

1.软件仿真实验:编写并调试MATLAB程序,选择不同形式,不同类型的4种滤波器进行仿真,记录幅频和相频特性,对比巴特沃斯滤波器和契比雪夫滤波器。 

2.硬件实验:设计IIR滤波器,在计算机上观察冲激响应、幅频特性和相频特性,然后下载到实验箱。用示波器观察输入输出波形,测试滤波器的幅频响应特性。 

3.5 MATLAB参考程序和仿真内容 

%*******************************************************************% 

%mode: 1--巴特沃斯低通;2--巴特沃斯高通;3--巴特沃斯带通;4--巴特沃斯带阻 

% 5--契比雪夫低通;6--契比雪夫高通;7--契比雪夫带通;8--契比雪夫带阻 

%fp1,fp2: 通带截止频率,当高通或低通时只有fp1有效 

%fs1, fs2: 阻带截止频率,当高通或低通时只有fs1有效 

%rp: 通带波纹系数 

%as: 阻带衰减系数 

%sample: 采样率 

%h: 返回设计好的滤波器系数 

%*******************************************************************% 

function[b,a]=iirfilt(mode,fp1,fp2,fs1,fs2,rp,as,sample) 

wp1=2*fp1/sample;wp2=2*fp2/sample; 

ws1=2*fs1/sample;ws2=2*fs2/sample; 

%得到巴特沃斯滤波器的最小阶数N和3bd频率wn 

if mode<3[N,wn]=buttord(wp1,ws1,rp,as); 

elseif mode<5[N,wn]=buttord([wp1 wp2],[ws1 ws2],rp,as); 

%得到契比雪夫滤波器的最小阶数N和3bd频率wn 

elseif mode<7[N,wn]=cheb1ord(wp1,ws1,rp,as); 

else[N,wn]=cheblord([wp1 wp2],[ws1 ws2],rp,as); 

end 

%得到滤波器系数的分子b和分母a 

if mode= =1[b,a]=butter(N,wn);end 

if mode= =2[b,a]=butter(N,wn,/high/);end 

if mode= =3[b,a]=butter(N,wn);end 

if mode= =4[b,a]=butter(N,wn,/stop/);end 

if mode= =5[b,a]=cheby1(N,rp,wn);end 

if mode= =6[b,a]=cheby1(N,rp,wn,/high/);end 

if mode= =7[b,a]=cheby1(N,rp,wn);end 

if mode= =8[b,a]=cheby1(N,rp,wn,/stop/);end 

set(gcf,/menubar/,menubar); 

freq_response=freqz(b,a); 

magnitude=20*log10(abs(freq_response)); 

m=0:511; 

f=m*sample/(2*511); 

subplot(3,1,1);plot(f,magnitude);grid; %幅频特性 

axis([0 sample/2 1.1*min(magnitude) 1.1*max(magnitude)]); 

ylabel('Magnitude');xlabel('Frequency-->'); 

phase=angle(freq_response); 

subplot(3,1,2);plot(f,phase);grid; %相频特性 

axis([0 sample/2 1.1*min(phase) 1.1*max(phase)]); 

ylabel('Phase');xlabel('Frequency-->'); 

h=impz(b,a,32); %32点的单位函数响应 

t=1:32; 

subplot(3,1,3);stem(t,h);grid; 

axis([0 32 1.2*min(h) 1.1*max(h)]); 

ylabel('h(n)');xlabel('n-->'); 

%*******************************************************************% 

假设需设计一个巴特沃斯低通IIR滤波器,通带截止频率为2KHz,阻带截止频率为3KHz,通带波纹系数为1,阻带衰减系数为20,采样频率为10KHz,则只需在MATLAB的命令窗口下键入: 

[b,a]=iirfilt(1,2000,3000,2400,2600,1,20,10000) 

程序进行模拟,并且按照如下顺序输出数字滤波器系统函数 









的系数 

b= b0 b1 ……bn 

a= a0 a1 ……an 

关于软件仿真实验内容,建议在完成大量仿真例子的基础上,选择能够体现实验要求的4个例子进行记录,系统函数只要记录系统的阶数。 

3.6 硬件实验步骤 

1.根据实验箱采样频率fs为10KHz的条件,用低频信号发生器产生一个频率合适的低频正弦信号,将其加到实验箱模拟通道1输入端,将示波器通道1探头接至模拟通道1输入端,通道2探头接至模拟通道2输出端。 

2.在保证实验箱正确加电且串口电缆连接正常的情况下,运行数字信号处理与DSP应用实验开发软件,在“数字信号处理实验”菜单下选择“IIR滤波器”子菜单,出现提示信息。 

3.输入滤波器类型、滤波器截止频率等参数后,分别点击“幅频特性”和“相频特性”按钮,在窗口右侧观察IIR滤波器的幅频特性和相频特性。此时提示信息将消失,如需查看提示信息,可点击“设计说明”按钮。 

4.点击“下载实现”按钮,IIR滤波器开始工作,此时窗口右侧将显示IIR滤波器的幅频特性。 

5.根据输入滤波器类型,更改低频信号源的频率,观察示波器上输入输出波形幅度的变化情况,测量IIR滤波器的幅频响应特性,看其是否与设计的幅频特性一致。 

6.更改滤波器类型、滤波器截止频率等参数(共4种),重复步骤3至步骤5。所选择的例子参数最好和MATLAB仿真程序的例子一样。 

7.用低频信号产生器产生一个500Hz的方波信号,分别设计3种滤波器,完成如下表要求的功能,并且记录参数和波形。 

功 能 
滤波器类型 
参 数 
输出波形 

fp1 
fp2 
fs1 
fs2 

通过3次及以下次数的谐波 





另外记录图形,并标图号 

滤除5次及以下次数的谐波 






通过3次到5次的谐波 







3.7 思考题 

1.在实验箱采样频率fs固定为10KHz的条件下,要观察方波信号频带宽度内的各个谐波分量,方波信号的频率最高不能超过多少,为什么? 

2.硬件实验内容7中输出信号各个谐波分量,与原来方波信号同样谐波分量相比,有没有发生失真?主要发生了什么类型的失真?为什么? 



4 窗函数法FIR滤波器设计实验 



4.1 实验目的 

1.通过实验加深对FIR滤波器基本原理的理解。 

2.学习使用窗函数法设计FIR滤波器,了解窗函数的形式和长度对滤波器性能的影响。 

4.2 实验仪器 

1.YBLD智能综合信号源测试仪 1台 

2.双踪示波器 1台 

3.MCOM-TG305数字信号处理与现代通信技术实验箱 1台 

4.PC机(装有MATLAB、MCOM-TG305配套实验软件) 1台 

4.3 实验原理 

数字滤波器的设计是数字信号处理中的一个重要内容。数字滤波器设计包括FIR(有限单位脉冲响应)滤波器与IIR(无限单位脉冲响应)滤波器两种。 

与IIR滤波器相比,FIR滤波器在保证幅度特性满足技术要求的同时,很容易做到严格的线性相位特性。设FIR滤波器单位脉冲响应h(n)长度为N,其系统函数H(z)为: 


H(z)是z-1的N-1次多项式,它在z平面上有N-1个零点,原点z=0是N-1阶重极点,因此H(z)是永远稳定的。稳定和线性相位特性是FIR滤波器突出的优点。 

FIR滤波器的设计任务是选择有限长度的h(n)。使传输函数H( )满足技术要求。FIR滤波器的设计方法有多种,如窗函数法、频率采样法及其它各种优化设计方法,本实验介绍窗函数法的FIR滤波器设计。 

窗函数法是使用矩形窗、三角窗、巴特利特窗、汉明窗、汉宁窗和布莱克曼窗等设计出标准响应的高通、低通、带通和带阻FIR滤波器。 

一、firl函数的使用 

在MATLAB下设计标准响应FIR滤波器可使用firl函数。firl函数以经典方法实现加窗线性相位FIR滤波器设计,它可以设计出标准的低通、带通、高通和带阻滤波器。firl函数的用法为: 

b=firl(n,Wn,/ftype/,Window) 

各个参数的含义如下: 

b—滤波器系数。对于一个n阶的FIR滤波器,其n+1个滤波器系数可表示为:b(z)=b(1)+b(2)z-1+…+b(n+1)z-n。 

n—滤波器阶数。 

Wn—截止频率,0≤Wn≤1,Wn=1对应于采样频率的一半。当设计带通和带阻滤波器时,Wn=[W1 W2],W1≤ω≤W2。 

ftype—当指定ftype时,可设计高通和带阻滤波器。Ftype=high时,设计高通FIR滤波器;ftype=stop时设计带阻FIR滤波器。低通和带通FIR滤波器无需输入ftype参数。 

Window—窗函数。窗函数的长度应等于FIR滤波器系数个数,即阶数n+1。 

二、窗函数的使用 

在MATLAB下,这些窗函数分别为: 

1.矩形窗:w=boxcar(n),产生一个n点的矩形窗函数。 

2.三角窗:w=triang(n),产生一个n点的三角窗函数。 

当n为奇数时,三角窗系数为w(k)= 
当n为偶数时,三角窗系数为w(k)= 
3.巴特利特窗:w=Bartlett(n),产生一个n点的巴特利特窗函数。 

巴特利特窗系数为w(k)= 
巴特利特窗与三角窗非常相似。巴特利特窗在取样点1和n上总以零结束,而三角窗在这些点上并不为零。实际上,当n为奇数时bartlett(n)的中心n-2个点等效于triang(n-2)。 

4.汉明窗:w=hamming(n),产生一个n点的汉明窗函数。 

汉明窗系数为w(k+1)=0.54-0.46cos( ) k=0,…,n-1 

5.汉宁窗:w=hanning(n),产生一个n点的汉宁窗函数。 

汉宁窗系数为w(k)=0.5[1-cos( )] k=1,…,n 

6.布莱克曼窗:w=Blackman(n),产生一个n点的布莱克曼窗函数。 

布莱克曼窗系数为w(k)=0.42-0.5cos(2π )+0.8cos(4π )] k=1,…,n 

与等长度的汉明窗和汉宁窗相比,布莱克曼窗的主瓣稍宽,旁瓣稍低。 

7.凯泽窗:w=Kaiser(n,beta),产生一个n点的凯泽窗数,其中beta为影响窗函数旁瓣的β参数,其最小的旁瓣抑制α与β的关系为: 

0.1102(α-0.87) α>50 

β= 0.5842(α-21)0.4+0.07886(α-21) 21≤α≤50 

0 α<21 

增加β可使主瓣变宽,旁瓣的幅度降低。 

8.契比雪夫窗:w=chebwin(n,r)产生一个n点的契比雪夫窗函数。其傅里叶变换后的旁瓣波纹低于主瓣r个db数。 



4.4 实验内容 

1.软件仿真实验:编写并调试MATLAB程序,观察不同窗,不同类型滤波器不同点数等共4种FIR滤波器的h(n),并记录幅频特性和相频特性。 

2.硬件实验:用窗函数法设计标准响应的FIR滤波器,在计算机上观察窗函数幅频特性、幅频特性和相频特性,然后下载到实验箱。用示波器观察输入输出波形,测试滤波器的幅频响应特性。 

4.5 MATLAB参考程序和仿真内容 

%*******************************************************************% 

%mode: 模式(1--高通;2--低通;3--带通;4--带阻) 

%n: 阶数,加窗的点数为阶数加1 

%fp: 高通和低通时指示截止频率,带通和带阻时指示下限频率 

%fs: 带通和带阻时指示上限频率 

%window:加窗(1--矩形窗;2--三角窗;3--巴特利特窗;4--汉明窗; 

% 5--汉宁窗;6--布莱克曼窗;7--凯泽窗;8--契比雪夫窗) 

%r: 代表加chebyshev窗的r值和加kaiser窗时的beta值 

%sample: 采样率 

%h: 返回设计好的FIR滤波器系数 

%*******************************************************************% 

%mode: 模式(1--高通;2--低通;3--带通;4--带阻) 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -