fir数字滤波器设计原理是什么
原理:在进入FIR滤波器前,首先要将信号通过A/D器件进行模数转换,把模拟信号转化为数字信号;为了使信号处理能够不发生失真,信号的采样速度必须满足奈奎斯特定理,一般取信号频率上限的4-5倍做为采样频率;一般可用速度较高的逐次逼进式A/D转换器,不论采用乘累加方法还是分布式算法设计FIR滤波器,滤波器输出的数据都是一串序列,要使它能直观地反应出来,还需经过数模转换,因此由FPGA构成的FIR滤波器的输出须外接D/A模块。FPGA有着规整的内部逻辑阵列和丰富的连线资源,特别适合于数字信号处理任务,相对于串行运算为主导的通用DSP芯片来说,其并行性和可扩展性更好,利用FPGA乘累加的快速算法,可以设计出高速的FIR数字滤波器。
拓展:关于FIR滤波器
FIR(Finite
Impulse
Response)滤波器:有限长单位冲激响应滤波器,又称为非递归型滤波器,是数字信号处理系统中最基本的元件,它可以在保证任意幅频特性的同时具有严格的线性相频特性,同时其单位抽样响应是有限长的,因而滤波器是稳定的系统。因此,FIR滤波器在通信、图像处理、模式识别等领域都有着广泛的应用。
冲激响应不变法优点:1,模拟频率到数字频率的转换时线性的。2,数字滤波器单位脉冲响应的数字表示近似原型的模拟滤波器单位脉冲响应,因此时域特性逼近好 缺点:会产生频谱混叠现象,只适合带限滤波器
双线性变换法优点:克服多值映射得关系,可以消除频率的混叠
缺点:是非线性的,在高频处有较大的失真。
滤波器的理想频率响应函数为Hd(ejω),则其对应的单位脉冲响应为hd(n)=窗函数设计法的基本原理是用有限长单位脉冲响应序列h(n)逼hd(n)。由于hd(n)往往是无限长序列,且是非因果的,所以用窗函数。w(n)将hd(n)截断,并进行加权处理:
h(n)=hd(n)w(n)h(n)就作为实际设计的FIR数字滤波器的单位脉冲响应序列,其频率响应函数H(ejω)为H(ejω)=用窗函数法设计的滤波器性能取决于窗函数w(n)的类型及窗口长度N的取值。设计过程中,要根据对阻带最小衰减和过渡带宽度的要求选择合适的窗函数类型和窗口长度N。
一般都选用Ⅰ型线性相位滤波器即滤波器阶数M为偶数,程序如下:
wp=ws=Ap=1As=100
dev=[Rp Rs]
[M,wc,beta,ftype]=kaiserord(f,a,dev)
M=mod(M,2)+M
plot(omega/pi,20*log10(abs(mag)))
运行程序可以得到滤波器的通阻带衰减,画出频率响应,若同阻带衰减不满足要求还可以使用滤波器的优化,一般使用的等波纹FIR进行优化。
扩展资料:
滤波器与机箱之间的一段连线会产生两种不良作用: 一个是机箱内部空间的电磁干扰会直接感应到这段线上,沿着电缆传出机箱,借助电缆辐射,使滤波器失效;另一个是外界干扰在被板上滤波器滤波之前,借助这段线产生辐射,或直接与线路板上的电路发生耦合,造成敏感度问题;
滤波阵列板、滤波连接器等面板滤波器一般都直接安装在屏蔽机箱的金属面板上。由于直接安装在金属面板上,滤波器的输入与输出之间完全隔离,接地良好,电缆上的干扰在机箱端口上被滤除,因此滤波效果相当理想。
参考资料来源:百度百科-滤波器
rp=1
wp=0.2*pi
rs=15
ws=0.3*pi
[N,WC]=buttord(wp,ws,rp,rs,'s')
[num,den]=butter(N,WC,'s')
[BZ,AZ]=bilinear(num,den,1/T)
freqz(BZ,AZ,2048*9,1/T)
(1)编写用双性变换法设计巴特沃兹低通IIR数字滤波器的程序,要求通带 内频率低于0.2pirad时,容许幅度误差在1dB之内,频率在0.3pirad到pirad 之间的阻带衰减大于10dB。
(2)用双线性变换法设计Butterworth低通IIR数字滤波器,要求使用buttord, butter和bilinear函数。滤波器技术指标:取样频率1Hz,通带内临界频率0.2Hz,通带内衰减小于1dB;阻带临界频率0.3Hz,阻带内衰减大于25dB。
(3)以pi/64为取样间隔,在屏幕上打印出数字滤波器的频率区间[0,pi] 上的幅 频响应特性曲线(|H(ejw)|或20lg|H(ejw)|)。
(4)在屏幕上打印出H(z)的分子,分母多项式系数。
扩展资料
通带截止频率为0.2prad,阻带截止频率为0.3prad,图中横坐标w是数字频率,对应的模拟频率为0-fs/2。通带截止频率为0.4prad,阻带截止频率为0.6prad
看低通滤波器的幅频特性,并掌握了用双线性变换法设计巴特沃斯低通IIR数字滤波器的方法。双线性变换法首先根据模拟滤波器的指标设计出相应的模拟滤波器,然后再讲设计好的模拟滤波器转换成满足给定指标的数字滤波器。
hdl设计,最后设计出的基于csd架构的半带fir滤波器在modelsim上通过了功能仿真,并在matlab上进行频谱和时域分析。结果表明,此设计达到了预期效果,且采用这种方法设计的fir滤波器其性能优于传统方法。
第二步:在频域内对进行N点等间隔采样,利用频率采样设计公式求频率采样值Hd(k),采样间隔△ω=2π/N=O.1 π,这样在通带内共有3个采样点,分别是k=0,1,2。利用频率采样设计式(10)和式(11),可以得到:
第三步:用离散傅里叶逆变换求得要设计的实际滤波器的单位脉冲响应h(n):
第四步:根据傅里叶变换的定义求得实际滤波器的频率响应,验证是否满足滤波器技术指标的要求,主要验证滤波器的阻带衰减是否能够满足阻带的要求。借助于Matlab软件,按照以上4个步骤设计出低通滤波器的仿真结果如图2所示。
由仿真结果图2(d)可以看出其衰减比较小,约为-17 dB。在通常情况下,这个阻带衰减不能满足阻带技术指标的要求,可以通过在通带和阻带之间的边界频率处增加过渡采样点来增大阻带衰减。
为改进阻带衰减,在边界频率处增加一个过渡点;为保证过渡带宽不变,将采样点数增加一倍,变为N=40,并将过渡点的采样值进行优化,取H1=0.390 4,其仿真结果如图3所示。由图3(d)可见,这时阻带衰减达到了-43 dB。
一个低通滤波器的技术指标主要有四项:
1、通带截止频率fp或角频率ωp
2、通带最大衰减系数ap
3、阻带截止频率fs或角频率ωs
4、阻带最小衰减系数as
(1)设计巴特沃斯模拟低通滤波器,求出Ha(s)的分子、分母多项式系数B和A,并画出幅频响应损耗函数曲线。
分别用脉冲响应不变法和双线性变换法设计IIR低通数字滤波器,求出Ha(z) 的分子、分母多项式系数Bz和Az,并画出幅频响应损耗函数曲线
采用窗函数法(分别用汉宁窗、哈明窗、布莱克曼窗函数)设计满足要求的FIR低通滤波器,求出h(n),并画出幅频响应损耗函数曲线.
用频率采样法设计满足要求的FIR低通滤波器,求出h(n),并画出幅频响应损耗函数曲线。
具体内容如下:
(1)设计巴特沃斯模拟低通滤波器,求出Ha(s)的分子、分母多项式系数B和A,并画出幅频响应损耗函数曲线。
程序:
wp=2*pi*5000
ws=2*pi*5800
Rp=0.5
As=50
[N,wc]=buttord(wp,ws,Rp,As,'s')
[B,A]=butter(N,wc,'s')
k=0:511
fk=0:20000/512:20000
wk=2*pi*fk
Hk=freqs(B,A,wk)
plot(fk/1000,20*log10(abs(Hk)))
grid on
xlabel('频率/kHz')
ylabel('幅度/dB')
axis([0,6,-65,5])
波形图:
A = 1.0e+207 *
0.00000.00000.00000.00000.00000.00000.00000.00000.00000.00000.00000.00000.00000.00000.00000.00000.00000.00000.00000.00000.00000.00000.00000.00000.00000.00000.00000.00000.00000.00000.00000.00000.00000.00000.00000.00000.00000.00000.00000.00000.00000.00000.00000.00000.00000.00202.1576
B =1.0e+207 *
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 02.1576
N = 46
(2)分别用脉冲响应不变法和双线性变换法设计IIR低通数字滤波器,求出Ha(z) 的分子、分母多项式系数Bz和Az,并画出幅频响应损耗函数曲线
脉冲响应不变法
程序:
Fs=20000
wp=10000*pi
ws=11600*pi
Rp=0.5
As=50
[N,wc]=buttord(wp,ws,Rp,As,'s')
[B,A]=butter(N,wc,'s')
[Bz,Az]=impinvar(B,A)
k=0:511
fk=0:20000/512:20000
wk=2*pi*fk
Hk=freqs(B,A,wk)
plot(fk/1000,20*log10(abs(Hk)))
grid on
xlabel('频率/kHz')
ylabel('幅值/dB')
axis([0,6,-65,5])
波形图:
Bz = 1.0e-007 *
0 -0.00000.0000 -0.00000.0001 -0.00060.0035 -0.01160.0279 -0.07450.1490 -0.22350.3353 -0.37250.4470 -0.40980.3353 -0.22350.1304 -0.06980.0291 -0.00930.0026 -0.00060.0001 -0.00000.0000 -0.0000
Az =1.0e+007 *
0.0000 -0.00000.0000 -0.00030.0018 -0.00810.0296 -0.08880.2219 -0.46840.8431 -1.30281.7370 -2.00412.0040 -1.73671.3024 -0.84270.4681 -0.22170.0887 -0.02960.0081 -0.00180.0003 -0.00000.0000 -0.0000
N =46
双线性变换法
程序:
Fs=20000wpz=10000 /Fs
wsz=11600/Fs
Rp=0.5
As=50
wp=2*tan(wpz*pi /2)
ws=2*tan(wsz*pi /2)[N,wc]=buttord(wp,ws,Rp,As,'s')[B,A]=butter(N,wc,'s')[Bz,Az]=bilinear(B,A,Fs)
[Nd,wdc]=buttord(wpz,wsz,Rp,As)
[Bdz,Adz]=butter(Nd,wdc)
k=0:511
fk=0:20000/512:20000
wk=2*pi*fkHk=freqs(B,A,wk)plot(fk/1000,20*log10(abs(Hk)))
grid onxlabel('频率/kHz')
ylabel('幅值/dB')axis([0,16,-2800,5])
波形图:
Bz = 1.0e-007 *
0 -0.00000.0000 -0.00000.0001 -0.00060.0035 -0.01160.0279 -0.07450.1490 -0.22350.3353 -0.37250.4470 -0.40980.3353 -0.22350.1304 -0.06980.0291 -0.00930.0026 -0.00060.0001 -0.00000.0000 -0.0000
Az =1.0e+007 *
0.0000 -0.00000.0000 -0.00030.0018 -0.00810.0296 -0.08880.2219 -0.46840.8431 -1.30281.7370 -2.00412.0040 -1.73671.3024 -0.84270.4681 -0.22170.0887 -0.02960.0081 -0.00180.0003 -0.00000.0000 -0.0000
N = 27
(3)采用窗函数法(分别用汉宁窗、哈明窗、布莱克曼窗函数)设计满足要求的FIR低通滤波器,求出h(n),并画出幅频响应损耗函数曲线.
a )汉宁窗
程序:
Fs=20000
fp=5000
fs=5800
m=[1 1 0 0]
wp=2*pi*fp/Fs
ws=2*pi*fs/Fs
Rp=0.5
As=50
Bt=ws-wp
N0 = ceil (6.6* pi /Bt)
N=N0+mod(N0+1,2)
wc=(wp+ws)/2/pi
hn=fir1(N-1,wc,hanning(N))
freqz(hn,1,512)
plot (w,20*log(abs(hn)))
grid
axis ([0 ,1, -1000 , 100])
xlabel ('频率/kHz')
ylabel ('幅值/dB' )
波形图:
hn =
0.0000 -0.0000 -0.00000.0002 -0.0000 -0.00040.00020.0007 -0.0006 -0.00100.00120.0012 -0.0021 -0.00100.00320.0005 -0.00450.00060.0057 -0.0025 -0.00660.00500.0070 -0.0083 -0.00650.01230.0047 -0.0168 -0.00120.0215 -0.0046 -0.02620.01340.0307 -0.0270 -0.03450.04970.0375 -0.0974 -0.03940.31540.54000.3154 -0.0394 -0.09740.03750.0497 -0.0345 -0.02700.03070.0134 -0.0262 -0.00460.0215 -0.0012 -0.01680.00470.0123 -0.0065 -0.00830.00700.0050 -0.0066 -0.00250.00570.0006 -0.00450.00050.0032 -0.0010 -0.00210.00120.0012 -0.0010 -0.00060.00070.0002 -0.0004 -0.00000.0002 -0.0000 -0.00000.0000
b )哈明窗
程序:
Fs=20000
fp=5000
fs=5800
m=[1 1 0 0]
wp=2*pi*fp/Fs
ws=2*pi*fs/Fs
Rp=0.5
Rs=50
Bt=ws-wp
N0 = ceil (6.6* pi /Bt)
N=N0+mod(N0+1,2)
wc=(wp+ws)/2/pi
hn=fir1(N-1,wc,hamming(N))
freqz(hn,1,512)
plot (w,20*log(abs(hn)))
grid on
axis ([0 ,1, -1000 , 100])
xlabel ('频率/kHz')
ylabel ('幅值/dB' )
波形图:
hn =
0.0003 -0.0006 -0.00010.0008 -0.0001 -0.00100.00040.0012 -0.0008 -0.00140.00160.0015 -0.0025 -0.00120.00370.0005 -0.00490.00070.0061 -0.0026 -0.00690.00520.0072 -0.0086 -0.00660.01250.0048 -0.0170 -0.00120.0217 -0.0046 -0.02640.01350.0308 -0.0271 -0.03460.04980.0375 -0.0975 -0.03940.31540.54010.3154 -0.0394 -0.09750.03750.0498 -0.0346 -0.02710.03080.0135 -0.0264 -0.00460.0217 -0.0012 -0.01700.00480.0125 -0.0066 -0.00860.00720.0052 -0.0069 -0.00260.00610.0007 -0.00490.00050.0037 -0.0012 -0.00250.00150.0016 -0.0014 -0.00080.00120.0004 -0.0010 -0.00010.0008 -0.0001 -0.00060.0003
c )布莱克曼窗
程序:
Fs=20000
fp=5000
fs=5800
m=[1 1 0 0]
wp=2*pi*fp/Fs
ws=2*pi*fs/Fs
Rp=0.5
Rs=50
Bt=ws-wp
N0 = ceil (6.6* pi /Bt)
N=N0+mod(N0+1,2)
wc=(wp+ws)/2/pi
hn=fir1(N-1,wc,blackman(N))
freqz(hn,1,512)
plot (w,20*log(abs(hn)))
grid
axis ([0 ,1, -1000 , 100])
xlabel ('频率/kHz')
ylabel ('幅值/dB' )
波形图:
hn =
-0.0000 -0.0000 -0.00000.0000 -0.0000 -0.00010.00010.0002 -0.0002 -0.00040.00050.0005 -0.0009 -0.00050.00160.0002 -0.00240.00040.0034 -0.0015 -0.00430.00340.0049 -0.0060 -0.00490.00950.0037 -0.0137 -0.00100.0186 -0.0040 -0.02370.01240.0288 -0.0257 -0.03330.04850.0369 -0.0965 -0.03920.31500.54000.3150 -0.0392 -0.09650.03690.0485 -0.0333 -0.02570.02880.0124 -0.0237 -0.00400.0186 -0.0010 -0.01370.00370.0095 -0.0049 -0.00600.00490.0034 -0.0043 -0.00150.00340.0004 -0.00240.00020.0016 -0.0005 -0.00090.00050.0005 -0.0004 -0.00020.00020.0001 -0.0001 -0.00000.0000 -0.0000 -0.0000 -0.0000
(4)用频率采样法设计满足要求的FIR低通滤波器,求出h(n),并画出幅频响应损耗函数曲线。
程序:
T=input('T=')
fp=5000
fs=5800
Fs=20000
wp=2*pi*fp/Fs
ws=2*pi*fs/Fs
Rp=0.5
As=50
Bt=ws-wp
m=1
N=ceil((m+1)*2*pi/Bt)
N=N+mod(N+1,2)
Np=fix(wp/(2*pi/N))
Ns=N-2*Np-1
Hk=[ones(1,Np+1),zeros(1,Ns),ones(1,Np)]
Hk(Np+2)=T
Ak(N-Np)=T
thetak=-pi*(N-1)*(0:N-1)/N
hdk=Hk.*exp(j*thetak)
hn=real(ifft(hdk))
hw=fft(hn,1024)
wk=2*pi*[0:1023]/1024
hgw=hw.*exp(j*wk*(N-1)/2)
Rp=max(20*log10(abs(hgw)))
hgmin=min(real(hgw))
As=20*log10(abs(hgmin))
[N,wc]=buttord(wp,ws,Rp,As,'s')
[B,A]=butter(N,wc,'s')
k=0:511fk=0:20000/512:20000wk=2*pi*fk
Hk=freqs(B,A,wk)
plot(fk/1000,20*log10(abs(Hk)))
grid on
xlabel('频率/kHz')
ylabel('幅度/dB')
T=1
T =
1
Rp =
0.2801
As =
-29.6745
波形图:
hn =
0.00040.0012 -0.0023 -0.00270.00450.0040 -0.0069 -0.00510.00980.0061 -0.0133 -0.00700.01750.0078 -0.0230 -0.00840.03050.0089 -0.0416 -0.00930.06090.0096 -0.1044 -0.00970.31780.50980.3178 -0.0097 -0.10440.00960.0609 -0.0093 -0.04160.00890.0305 -0.0084 -0.02300.00780.0175 -0.0070 -0.01330.00610.0098 -0.0051 -0.00690.00400.0045 -0.0027 -0.00230.00120.0004
《数字信号处理》课程是一门理论性和实践性都很强, 它具备高等代数、数值分析、概率统计、随机过程等计算学科的知识要求我们学生掌握扎实的基础知识和理论基础。 又是跟其他学科密切相关,即与通信理论、计算机、微电子技术不可分,又是人工智能、模式识别、神经网络等新兴学科的理论基础之一。 本次数字滤波器设计方法是基于MATLAB的数字滤波器的设计。此次设计的主要内容为:IIR数字滤波器和FIR数字滤波器的设计
关键词:IIR、FIR、低通、高通、带阻、带通
Abstract
"Digital Signal Processing" is a theoretical and practical nature are strong, and it has advanced algebra and numerical analysis, probability and statistics, random process such as calculation of discipline knowledgerequires students to acquire basic knowledge and a solid theoretical basis. Is closely related with other subjects, namely, and communication theory, computers, microelectronics can not be separated, but also in artificial intelligence, pattern recognition, neural network theory one of the emerging discipline. The digital filter design method is based on MATLAB for digital filter design. The main elements of design: IIR and FIR digital filter design of digital filter
Key Words: IIR, FIR, low pass, high pass, band stop, band pass
目录
一、 前言 3
二、 课程设计的目的 3
三、 数字信号处理课程设计说明及要求 3
四、 滤波器的设计原理 4
4.1 数字滤波器简介 4
4.2 IIR滤波器的设计原理 4
4.3 FIR滤波器的设计原理 5
4.4 FIR滤波器的窗函数设计法 6
五、 设计内容 6
5.1 设计题目: 6
5.2设计程序代码及结果: 7
六、 结束语 15
七、 参考文献 16
一、 前言
数字信号处理(Digital Signal Processing,简称DSP)是一门涉及许多学科而又广泛应用于许多领域的新兴学科。
随着信息时代和数字世界的到来,数字信号处理已成为今一门极其重要的学科和技术领域。数字信号处理在通信语音、图像、自动控制、雷达、军事、航空航天、医疗和家用电器等众多领域得到了广泛的应用。在数字信号处理应用中,数字滤波器十分重要并已获得广泛应用。
二、 课程设计的目的
1)
三、 数字信号处理课程设计说明及要求
所需硬件:PC机
四、 滤波器的设计原理
4.1 数字滤波器简介
数字滤波器是一种用来过滤时间离散信号的数字系统,通过对抽样数据进行数学处理来达到频域滤波的目的。可以设计系统的频率响应,让它满足一定的要求,从而对通过该系统的信号的某些特定的频率成分进行过滤,这就是滤波器的基本原理。如果系统是一个连续系统,则滤波器称为模拟滤波器。如果系统是一个离散系统,则滤波器称为数字滤波器。
信号 通过线性系统后,其输出 就是输入信号 和系统冲激响应 的卷积。除了 外, 的波形将不同于输入波形 。从频域分析来看,信号通过线性系统后,输出信号的频谱将是输入信号的频谱与系统传递函数的乘积。除非 为常数,否则输出信号的频谱将不同于输入信号的频谱,某些频率成分 较大的模,因此, 中这些频率成分将得到加强,而另外一些频率成分 的模很小甚至为零, 中这部分频率分量将被削弱或消失。因此,系统的作用相当于对输入信号的频谱进行加权。
4.2 IIR滤波器的设计原理
IIR数字滤波器的设计一般是利用目前已经很成熟的模拟滤波器的设计方法来进行设计,通常采用模拟滤波器原型有butterworth函数、chebyshev函数、bessel函数、椭圆滤波器函数等。
IIR数字滤波器的设计步骤:
(1) 按照一定规则把给定的滤波器技术指标转换为模拟低通滤波器的技术指标;
(2) 根据模拟滤波器技术指标设计为响应的模拟低通滤波器;
(3) 很据脉冲响应不变法和双线性不变法把模拟滤波器转换为数字滤波器;
(4) 如果要设计的滤波器是高通、带通或带阻滤波器,则首先把它们的技术指标转化为模拟低通滤波器的技术指标,设计为数字低通滤波器,最后通过频率转换的方法来得到所要的滤波器。
4.3 FIR滤波器的设计原理
FIR滤波器通常采用窗函数方法来设计。窗设计的基本思想是,首先选择一个适当的理想选频滤波器(它总是具有一个非因果,无限持续时间脉冲响应),然后街区(加窗)它的脉冲响应得到线性相位和因果FIR滤波器。我们用Hd(e^jw)表示理想的选频滤波器,它在通带上具有单位增益和线性相位,在阻带上具有零响应。一个带宽wc<pi的低通滤波器由下式给定:
为了从hd(n)得到一个FIR滤波器,必须同时在两边截取hd(n)。而要得到一个因果的线性相位滤波器,它的h(n)长度为N,必须有:
这种操作叫做加窗,h(n)可以看做是hd(n)与窗函数w(n)的乘积:
h(n)=hd(n)w(n)
其中
根据w(n)的不同定义,可以得到不同的窗结构。
在频域中,因果FIR滤波器响应H(e^jw)由Hd(e^jw)和窗响应W(e^jw)的周期卷积得到,即
常用的窗函数有矩形窗、巴特利特(BARTLETT)窗、汉宁(HANNING)窗、海明(HAMMING)窗、布莱克曼(BLACKMAN)窗、凯泽(KAISER)窗等。
4.4 FIR滤波器的窗函数设计法
FIR滤波器的设计方法有许多种,如窗函数设计法、频率采样设计法和最优化设计法等。窗函数设计法的基本原理是用一定宽度窗函数截取无限脉冲响应序列获得有限长的脉冲响应序列,主要设计步骤为:
(1) 通过傅里叶逆变换获得理想滤波器的单位脉冲响应hd(n)。
(2) 由性能指标确定窗函数W(n)和窗口长度N。
(3) 求得实际滤波器的单位脉冲响应h(n), h(n)即为所设计FIR滤波器系数向量b(n)。
五、 设计内容
5.1 设计题目:
1-1.试用MATLAB设计一巴特沃斯低通数字滤波器,要求通带截至频率Wp=30HZ,主带截至频率为Ws=35HZ,通带衰减不大于0.5DB,主带衰减不小于40DB,抽样频Fs=100HZ。
1-2.基于Butterworth模拟滤波器原型,使用双线性状换设计数字滤波器:各参数值为:通带截止频率Omega=0.2*pi,阻带截止频率Omega=0.3*pi,通带波动值Rp=1dB,阻带波动值Rs=15dB,设Fs=20000Hz。
1-3设计一巴特沃斯高通数字滤波器,要求通带截止频率0.6*pi,通带衰减不大于1dB,阻带衰减15DB,抽样T=1。
1-4.设计一巴特沃斯带阻数字滤波器,要求通带上下截至频率为0.8*PI、0.2*PI,通带衰减不大于1DB,阻带上下截至频率0.7*PI、0.4*PI 阻带衰减不小于30DB,
2-1.用窗函数法设计一个线性相位FIR低通滤波器,并满足性能指标:通带边界频率
Wp=0.5*pi,阻带边界频率Ws=0.66*pi,阻带衰减不小于40dB,通带波纹不大于3dB。选择汉宁窗。
2-4.用海明窗设计一个FIR滤波器,其中Wp=0.2*pi,Ws=0.3*pi,通带衰减不大于0.25dB,阻带衰减不小于50dB。
5.2设计程序代码及结果:
1-1一.试用MATLAB设计一巴特沃斯低通数字滤波器,要求通带截至频率Wp=30HZ,阻带截至频率为Ws=35HZ,通带衰减不大于0.5DB,阻带衰减不小于40DB,抽样频Fs=100HZ。
代码为:
fp = 30
fs = 35
Fs = 100
wp = 2*pi*fp/Fs
ws = 2*pi*fs/Fs
wp = tan(wp/2)
ws = tan(ws/2)% 通带最大衰减为0.5dB,阻带最小衰减为40dB
[N, wn] = buttord(wp, ws, 0.5, 40, 's') % 模拟低通滤波器极零点
[z, p, k] = buttap(N) % 由极零点获得转移函数参数
[b, a] = zp2tf(z, p, k) % 由原型滤波器获得实际低通滤波器
[B, A] = lp2lp(b, a, wp)
[bz, az] = bilinear(B, A, .5)
[h, w] = freqz(bz, az, 256, Fs)
figure
plot(w, abs(h))
grid on
图1 巴特沃斯数字低通滤波器
1-2基于Butterworth模拟滤波器原型,使用双线性状换设计数字滤波器:各参数值为:通带截止频率Omega=0.2*pi,阻带截止频率Omega=0.3*pi,通带波动值Rp=1dB,阻带波动值Rs=15dB,设Fs=4000Hz。
代码:
wp=0.2*piws=0.3*pi
Fs=4000T=1/Fs
OmegaP=(2/T)*tan(wp/2)
OmegaS=(2/T)*tan(ws/2)
rp=1rs=15as=15
ripple=10^(-rp/20)attn=10^(-rs/20)
[n,wn]=buttord(OmegaP,OmegaS,rp,rs,'s')
[z,p,k]=Buttap(n)
[b,a]=zp2tf(z,p,k)
[bt,at]=lp2lp(b,a,wn)
[b,a]=bilinear(bt,at,Fs)
[db,mag,pha,grd,w]=freqz_m(b,a)
%
%下面绘出各条曲线
subplot(2,2,1)plot(w/pi,mag)title('Magnitude Frequency幅频特性')
xlabel('w(/pi)')ylabel('|H(jw)|')
axis([0,1,0,1.1])
set(gca,'XTickMode','manual','XTick',[0 0.2 0.3 1])
set(gca,'YTickMode','manual','YTick',[0 attn ripple 1])grid
subplot(2,2,2)plot(w/pi,db)title('Magnitude Frequency幅频特性(db)')
xlabel('w(/pi)')ylabel('dB')
axis([0,1,-30,5])
set(gca,'XTickMode','manual','XTick',[0 0.2 0.3 1])
set(gca,'YTickMode','manual','YTick',[-60 -as -rp 0])grid
subplot(2,2,3)plot(w/pi,pha/pi)title('Phase Frequency相频特性')
xlabel('w(/pi)')ylabel('pha(/pi)')
axis([0,1,-1,1])
subplot(2,2,4)plot(w/pi,grd)title('Group Delay群延时')
xlabel('w(/pi)')ylabel('Sample')
axis([0,1,0,15])
set(gca,'XTickMode','manual','XTick',[0 0.2 0.3 1])grid
运行结果:
图2巴特沃思数字低通滤波器幅频-相频特性
1-3设计一巴特沃斯高通数字滤波器,要求通带截止频率0.6*pi,通带衰减不大于1dB,阻带衰减15DB,抽样T=1。
Wp=0.6*pi
Ws=0.4*pi
Ap=1
As=15
[N,wn]=buttord(Wp/pi,Ws/pi,Ap,As) %计算巴特沃斯滤波器阶次和截止频率
%频率变换法设计巴特沃斯高通滤波器
[db,mag,pha,grd,w]=freqz_m(b,a) %数字滤波器响应
plot(w,mag)
title('数字滤波器幅频响应|H(ej\Omega)|')
图3巴特沃斯数字高通滤波器
2-1用窗函数法设计一个线性相位FIR低通滤波器,并满足性能指标:通带边界频率
Wp=0.5*pi,阻带边界频率Ws=0.66*pi,阻带衰减不小于40dB,通带波纹不大于3dB。选择汉宁窗。
代码:
wp =0.5*pi
ws=0.66*pi
wdelta =ws-wp
N= ceil(8*pi/wdelta)
if rem(N,2)==0
N=N+1
end
)
运行结果:
给分就给你个全的!
图6低通FIR滤波器
六、 结束语
本次数字滤波器设计方法是基于MATLAB的数字滤波器的设计,是用学过的数字信号理论为依据,用MATLAB代码来实现。课程设计过程中,通过IIR数字滤波器和FIR数字滤波器的设计实例,说明如何利用MATLAB来完成数字滤波器的设计。窗函数法中相位响应有严格的线性,不存在稳定性问题, 设计简单。双线性变换不会出现由于高频部分超过折叠频率而混淆到低频部分去的现象,但会产生频率混碟现象,使数字滤波器的频响偏移模拟滤波器的频响。由滤波器的频谱图和滤波前后的语音信号的频谱图对比可知本设计选用双线性变换法设计的IIR滤波器比较好。在同样的技术指标的要求下,IIR滤波器所要求的阶数N也比较小,实现起来比较容易。
通过综合运用数字信号处理的理论知识进行滤波器设计,通过理论推导得出相应结论,再利用 MATLAB 作为编程工具进行计算机实现,从而加深了对所学知识的理解,建立概念。对以前在课本上所学的东西有了更深入的理解和掌握。最后,无论做什么课程设计,都需要要有一定的理论知识作为基础,同时通过这次课程设计,我对于以前所学的数字信号处理知识有了更深的理解。
七、 参考文献
1. 程佩青《数字信号处理教程》北京清华大学出版社2007年2月.
2. 赵知劲、刘顺兰《数字信号处理实验》.浙江大学出版社.
3. S.K.Mitra.Digital Signal Processing:A Computer-Based Approach.
NewYork,NewYork:McGraw-Hill,thirded,2006.
4. 肖伟、刘忠等《 MATLAB程序设计与应用》清华大学出版社、北京交通大学出版社.
5. 胡良剑、孙晓君 《 MATLAB数学实验》.高等教育出版社.