实验三 FIR滤波器的DSP实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验三FIR滤波器的DSP实验报告
一、实验目的
1. 了解MATLAB的FIR滤波器设计方法与编程;
2. 掌握FIR滤波器算法基本原理和C语言的编程方法;
二、实验内容
FIR滤波器设计流程为,根据给出的滤波器设计(通带带宽、阻带衰减、相位要求)要求,在Matlab环境下仿真得到滤波器系数,得到了滤波器系数后在CCS下编程设计DSP 的FIR滤波器。
1.使用Matlab中的FDAtool设计FIR滤波器
设计实现fir低通滤波器,阶数为20,采样频率fs=8000Hz,截止频率fc=1500Hz,窗口设置为汉明窗Hamming。经过的信号频率是1000HZ和2000HZ的混叠波。
2.参阅FIR基本理论及C语言编程方法,研读、分析实验指导书中的代码;
3. 双击,启动CCS的配置程序选项,选择“C5502 Simulator”;
4. 启动CCS,打开实验工程文件,再编译并装载程序;
5. 仿真波形
A.输入信号波形
B.输入信号频
C输出信号波形
D 输出信号频谱
从输入信号和输出信号的频谱对比中可以看出,输出信号有1KHZ 和2KHZ 的混叠信号。经过FIR 低通录波器后,滤掉了2KHZ 的频谱。只剩下1KHZ 的频谱。
4.修改代码:滤波器设计要求:线性相位低通滤波器,模拟信号通带为0~1kHz ,阻带衰减在5kHz 处为-60dB 。采样率为20kHz 。
采用凯塞窗口设计此低通滤波器,设计过程如下:
通带边界频率为1KHZ ,阻带边界频率是5KHZ 有60dB 的衰减,可得:
rad rad s p 22052,102012ππωππω====
过渡带πωωω52=
-=∆p s ,A=60dB 设计凯塞窗口的长度N 和参数β分别为:
29285.28=∆-≈ω
A N 65326.5)7.8(1102.0=-=a β
使用MA TLAB 设计此滤波器,过程如下:
1)在Matlab 的Start 菜单中选择Toolboxes -> Filter Design -> Filter Design & Analysis Tools(fdatool),或者在命令行中输入fdatool 来启动滤波器设计分析器。
2)选择设计fir低通滤波器,阶数为29,采样频率fs=20000Hz,截止频率fc=3000Hz,窗口设置为凯塞窗口,凯塞窗口参数为5.65326
(2)用SPtool 验证所设计滤波器的功能
在FDATool 里设计了一个FIR 低通滤波器后,用SPTool 来分析所设计的滤波器.
1)在MATLAB 环境下产生一个混叠波信号,在MATLAB 命令窗口输入:
Fs=20000;
t=(0:200)/Fs;
s=sin(2*pi*t*1000)+sin(2*pi*t*5000);
subplot(1,1,1);
plot(t,s);
axis([0 0.005 -2 2]);
grid
产生了1000Hz 和5000Hz 的混叠波,并且变量Fs、t、s 将显示在workspace列表中。
2)在FDATool 的界面里选择File→Export to →SPTool,然后在将导入SPTool的滤波器命名为filter点击Apply,这样,设计的滤波器就导入了SPTool 中。
3)在弹出的SPTool 主界面里点击菜单File→Import 将信号s 导入,采样频率Fs导入。
4)产生输入输出频谱后,得到
5)可以观察到输入信号的波形和频谱为
6)可以观察到输出信号的波形和频谱为
可以看到,5000HZ频率的信号已被滤波器滤掉。
7)将此滤波器的参数输出到C语言头文件中,修改CCS中fir滤波器的代码为Float fir[30]
={0.0004001965019842,0.0001796782579809,-0.001610915830384,-0.003928668671765, -0.002911158381528, 0.004441058624642, 0.01416335142997, 0.01444447680484,
-0.004466774967774, -0.03524603325736, -0.04900562431329, -0.01223772579527,
0.0834377913716, 0.2040327190773, 0.2883076291491, 0.2883076291491,
0.2040327190773, 0.0834377913716, -0.01223772579527, -0.04900562431329,
-0.03524603325736,-0.004466774967774, 0.01444447680484, 0.01416335142997,
0.004441058624642,-0.002911158381528,-0.003928668671765,-0.001610915830384,
0.0001796782579809,0.0004001965019842};
8)得到输入波形与频谱如下:
8)得到输出波形与频谱如下:
从结果可以看出,滤波器已经顺利将频率为5000HZ的信号滤掉。
5.通过代码修改、仿真,理解定点运算和浮点运算相比的优缺点。
6.通过仿真波形的分析、理解滤波器阶数与滤波器延时以及滤波器的阻带衰减之间的关系。