目录
注意事项:
文章中只有操作部分,没有原理的解释。
一、 实验目的
- 掌握用窗函数法设计 FIR 数字滤波器的原理和方法;
- 熟悉线性相位数字滤波器的特性;
- 了解各种窗函数对滤波器特性的影响;
- 了解IIR数字滤波器的设计方法;
- 了解IIR滤波器与FIR滤波器的区别;
- 熟悉IIR数字滤波器特性。
二、 实验过程
1. FIR部分的实验过程:
设置 Code Composer Studio (CCS)在软件仿真(Simulator)方式下运行:
打开CCS后,打开工程文件,工程文件在实验提供的光盘目录下”DSP\VC5509\DSP5509_examples\Fir\Fir.pjt”。
打开工程中的”VC5509.cmd”文件,将”.vectors”改为”vectors”:
修改完成后,选择”rebuilt”重新编译,直到显示0错误0警告:
打开”Fir.c”文件,在注释提到的区域设置断点,可以右键需要设置断点的那一行代码,在弹出的列表中选择插入断点,也可以直接双击代码行左侧来直接插入断点:
选择菜单栏中的”View”->”Graph”->”Time/Frequency...”进行如下图所示的设置,准备观察fIn信号的时域波形:
观察时域波形时,要注意设置”Start Address”起始地址和”DSP Data Type”DSP数据类型这两项,否则后续观察到的波形可能会有误。
设置完成后,点击”OK”,可以观察到fIn信号的时域波形:
可以看到,由于fIn有许多高次谐波,波形图中的信号会有很多抖动。
选择菜单栏中的”View”->”Graph”->”Time/Frequency...”进行如下图所示的设置,准备观察fOut的时域波形:
同样,要注意设置”Start Address”起始地址和”DSP Data Type”DSP数据类型这两项,否则后续观察到的波形可能会有误。
设置完成后,可以观察到fOut信号的时域波形:
在图中,由于扫描刷新,第二个波形并不完整,但是从其余波形可以看出,经过FIR滤波后,fOut的信号少了很多抖动,曲线显得较为平滑。
选择菜单栏中的”View”->”Graph”->”Time/Frequency...”进行如下图所示的设置,准备观察fIn的频域波形:
注意”Display Type”要显示的图像类型为”FFT Magnitude”。
设置完成后,点击”OK”,观察fIn的频域波形:
图形中可以明显地看到除了基波外,还有高次的谐波。
选择菜单栏中的”View”->”Graph”->”Time/Frequency...”进行如下图所示的设置,准备观察fout的频域波形:
设置完成后,点击”OK”,观察fout的频域波形:
可以发现,经过FIR滤波后,高次谐波的频域波形明显变小了。
2. IIR部分的实验过程:
关闭FIR的工程文件,打开IIR的工程文件,在实验提供的光盘目录”DSP\VC5509\DSP5509_examples\IIR.pjt”。
打开工程后,同样需要对工程中的”VC5509.cmd”文件进行修改,将”.vectors”修改为”vectors”:
修改完成后,编译工程,直到终端提示0错误0警告:
打开工程中的”iir.c”文件,在注释提示的地方插入断点:
选择菜单 View->Graph->Time/Frequency…进行如下图所示设置,准备观察fIn的时域图像:
设置完成后,点击OK,可以看到fIn的时域波形:
可以看到fIn的波形抖动非常严重,说明它受到了高次谐波/噪声的影响。
选择菜单 View->Graph->Time/Frequency…进行如下图所示设置,准备观察fOut的时域图像:
设置完成后,点击OK,可以看到fOut的时域波形:
经过IIR滤波后,波形明显平稳多了。
选择菜单 View->Graph->Time/Frequency…进行如下图所示设置,准备观察fIn的频域图像:
设置完成后,点击OK,可以看到fIn的频域波形:
在图中,除了基波和较明显的高次谐波,还能看到它们之间有许多微小的杂波。
选择菜单 View->Graph->Time/Frequency…进行如下图所示设置,准备观察fOut的频域图像:
设置完成后,点击OK,可以看到fOut的频域波形:
经过IIR滤波后,原本较为明显的高次谐波明显被削弱了,它和基波直接的杂波也几乎看不到了。