FIR滤波器设计与DSP实现

更新时间:2023-03-17 00:56:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

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 数组显示的是原始信号图像;DDataBuffer 数组显示的是滤波后信号图像。可以修改信号源,继续执行,观察不同信号源的滤波结果。其中图像显示设置对话框中Start adderss:起始地址;Acquisition Buffer Size:输入数据个数;Display Data Size:显示数据个数(注意:显示个数要与程序中宏定义的采样个数一致);DSP Data Type:数据类型;

本实验采用带噪声的正弦波为输入信号,对图像显示设置对话框设置和对应的图形显示如下:

滤波前:

滤波后

本文来源:https://www.bwwdw.com/article/dsyt.html

Top