实验 5: 有限冲激响应滤波器(FIR)算法实验
一.实验目的
1.掌握用 Matlab 设计 FIR 数字滤波器的原理和方法。
2.掌握 FIR 数字滤波器的 DSP 实现方法。
3. 熟悉在 CCS 环境中信号波形的观察方法。
二.实验设备
PC 兼容机一台,操作系统为 Windows2000,安装 Code Composer Studio 4.2 软件。
三.实验原理
1.采用 MATLAB 设计 FIR 数字滤波器
采用 MATLAB 设计 FIR 数字滤波器的方法有多种,本实验采用 fir1 函数,使用方法简
介如下:
(1)设计低通滤波器,格式为:b=fir1(N,Wn)或 b = fir1(N,Wn,'low')
其中 N+1 为滤波器阶数,b 为返回的长度为 N+1 的系数向量。Wn 为归一化边界频率,
0 < Wn < 1.0,Wn 处增益为-6dB。Wn =1.0 对应的非归一化频率为 Fs/2,其中 Fs 为采样频
率。
例,设 Fs=8000Hz,低通滤波器的边界频率 fp=1000Hz,则对应的归一化数字角频率
为 Wn=fp/(Fs/2)=0.25,取 N=31(对应的滤波器阶数为 32)。于是,该 低通 fir 滤波器的设
计指令为 b=fir1(31,0.25)。执行该指令得到的系数为:
b=[-0.000630469148644,-0.001818568124278,-0.002561941612458,-0.001587493994396,
0.002369512668975,0.008332496978353,0.011803612855041,0.00675929677933,
-0.009174511997729,-0.029730906886036,-0.039816452266422,-0.022301647638688,
0.031027965907247,0.111143500492515,0.192455402100706,0.243730203886485,
0.243730203886485,0.192455402100706,0.111143500492515,0.031027965907247,
-0.022301647638688,-0.039816452266422,-0.029730906886036,-0.009174511997729,
0.00675929677933,0.011803612855041,0.008332496978353,0.002369512668975,
-0.001587493994396,-0.002561941612458,-0.001818568124278,-0.000630469148644]
注意: 上述滤波器系数为浮点格式,当 DSP 程序中采用整数格式时。滤波器系数需相应
地变为整数,方法为乘以 32768 并取整。
(2)设计高通滤波器,格式为:b = fir1(N,Wn,'high')
参数意义同上。
(3)设计带通滤波器,格式为:b = fir1(N,Wn, 'bandpass')
其中 Wn = [W1 W2], W1、W2 为边界频率。
(4)设计带阻滤波器,格式为:b = fir1(N,Wn, 'stop')
其中 Wn = [W1 W2], W1、W2 为边界频率。
采用函数 plot(b)可以绘制滤波器的冲击响应图: