FIR滤波器设计与DSP实现.doc
文本预览下载声明
FIR滤波器设计与DSP实现
实验目的
1. 掌握数字滤波器的设计过程;
2. 了解FIR 的原理和特性;
3. 熟悉设计FIR 数字滤波器的原理和方法。
二、实验内容
1. 通过MATLAB 设计确定FIR 滤波器系数;
2. DSP 初始化;
3. A/D 采样 ;
4. FIR 运算,观察滤波前后的波型变化。
三、实验背景知识
1. 有限冲击响应数字滤波器(FIR)的基础理论
FIR 数字滤波器是一种非递归系统,其冲激响应h(n)是有限长序列,其差分方程表达式
为:,其中N 为FIR 滤波器的阶数。
在数字信号处理应用中往往需要设计线性相位的滤波器,FIR 滤波器在保证幅度特性满足技术要求的同时,很容易做到严格的线性相位特性。为了使滤波器满足线性相位条件,要求其单位脉冲响应h(n)为实序列,且满足偶对称或奇对称条件,即h(n)=h(N-1-n)或
h(n)=-h(N-1-n)。这样,当N 为偶数时,偶对称线性相位FIR 滤波器的差分方程表达式为
由上可见,FIR 滤波器不断地对输入样本x(n)延时后,再做乘法累加算法,将滤波器结
果y(n)输出。因此,FIR 实际上是一种乘法累加运算。而对于线性相位FIR 而言,利用线性
相位FIR 滤波器系数的对称特性,可以采用结构精简的FIR 结构将乘法器数目减少一半。
2. 本实验中FIR 的算法公式:
四、实验程序的功能与结构说明
1. Filter 实验所包含文件
①. DEC5502_Filter.c:这是实验的主程序,包含了系统初始化,音频芯片各控制寄存
器的初始化, A/D 采样程序;
②. FIR_Filter 滤波子程序;
③. AIC.c:音频芯片各控制寄存器的初始化;
④. E2PROM_Function.c:包含对IIC 的各操作函数;
⑤. I2C.c:进行I2C 初始化;
⑥. mcbsp.c:配置mcbsp;
⑦. SEED_DEC5502.cmd: 声明了系统的存储器配置与程序各段的连接关系。
2.程序流程图
3.实验准备
首先将光盘下 03. Examples of Program \ 05. SEED-DTK5502 实验程序目录下的
3.4.1 FiR_filter 的文件夹拷贝到D:盘根目录下。
①. 将DSP 仿真器与计算机连接好;
②. 将DSP 仿真器的JTAG 插头与SEED-DEC5502 单元的J1 相连接;
③. 打开SEED-DTK5502 的电源。观察SEED-DTK_MBoard 单元的+5V,+3.3V,
+15V,-15V 的电源指示灯以及SEED_DEC5502 的电源指示灯D2、D4 是否均
亮;若有不亮的,请断开电源,检查电源。
④. 用音频线连接SEED-DTK_MBoard 单元的J10 接口与SEED-DEC5502 单元的J5接口。
4.实验步骤
①.打开CCS,进入CCS 的操作环境;
②.装入DEC5502_FIR.pjt 工程文件,添加SEED_DEC5502.gel 文件,进行调试;
③. 打开DEC5502_Filter.c 文件,到第35 行修改SAMPLELONG 宏定义。SAMPLELONG 是采样长度选择,有3 个选择1、2、3。1 表示256+256,2 表示512+256,3 表示1024+256本实验中将其设置为3,如下图所示:
④. 修改完宏定义后,编译、连接生成DEC5502_Filter.out 文件,装载程序
DEC5502_Filter.out;
⑤. 本实验需要设置实验箱信号源。通过液晶屏和键盘,设置信号源:当液晶屏上出现“通讯自检不成功,请复位系统”时,按下“Enter”键,进入“信号发生器设置”。 在“信号发生器设置”这一菜单下:
“通道”设为“0”;
“信号类型”可根据需要任意选择,本实验中设置为“带噪声的正弦波”
“信号频率”和“信号振幅”可在屏幕下方“有效输入”限定的范围内任意输入,建议
振幅设为1000 左右,频率”设为300 左右;
“电压偏移”设为0;、
“信号发生器开关”设为“开启”(通过关闭到开启的转变,使其指示灯变亮)。此时便有信号输入音频芯片AIC23 的输入端。
⑥打开DEC5502_Filter.c 文件,在第340行“while(1){”设置断点,与357 行“fir_filter(DataBuffer,hfir,DDataBuffer,ORDER_FIR,SampleLong,ROUND_FIR)”设置断点。
⑦. 运行程序,程序停在第一个断点处,表明数据采集完成;继续运行程序,程序停在
第二个断点处,表明滤波完成。可以观察收到的数据和显示的图像;DataBuffer 数
显示全部