




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于DSP的FIR低通滤波器的设计 学 号: 电子与控制工程学院一、 设计要求通过ICETEKVC5509-A 评估板实现FIR滤波功能,将输入的方波信号通过评估板上的AD模块,滤波模块,以及DA模块后输出正弦波信号并在示波器上观察方波滤除后所产生的正弦波。在CCS下编写C语音和汇编语言程序分别实现滤波器功能,并且比较c语言和汇编语言的执行速度进行比较。二、 设计原理数字信号处理技术的应用领域非常广泛,而数字滤波器的设计是数字信号处理中最重要的设计环节。数字滤波器分为IIR滤波器和FIR滤波器。本次课设使用的是FIR滤波器。FIR滤波器即有限长单位响应滤波器,是数字信号处理系统中最基本的原件。可以在保证任意频率特性的同时具有严格的线性相位特性。同时其单位冲激响应是有限长的,因而滤波器是稳定的系统。FIR滤波器在通信、图像处理、模式识别等领域具有广泛的应用。在进入FIR滤波器前,首先要将信号通过A/D器件进行模数转换,把模拟信号转化为数字信号;为了使信号处理能够不发生失真,信号的采样速度必须满足奈奎斯特定理,一般取信号频率上限的4-5倍做为采样频率;一般可用速度较高的逐次逼进式A/D转换器,不论采用乘累加方法还是分布式算法设计FIR滤波器,滤波器输出的数据都是一串序列,要使它能直观地反应出来,还需经过数模转换。FIR滤波器误反馈回路,是一种稳定系统,可以设计成具有线性相位特性。设FIR滤波器的系数为h(0)、h(1)h(N-1),X(n)表示滤波器在n时刻的输入,则那时刻的输出为:y(n)=h(0)*x(n)+h(1)*x(n-1)+h(N-1)*xn-(N-1)FIR滤波器的差分方程为:对上式进行Z变换得到FIR滤波器的传递函数为:FIR数字滤波器的结构图如图1所示:MATLAB辅助DSP 实现FIR ,其总体过程为在DSP中编写处理程序,在MATLAB中利用滤波器设计、分析工具( FDATOOL) ,根据指定的滤波器性能快速设计一个FIR ,把滤波器系数以头文件形式导入CCS 中,头文件中MATLAB 辅助DSP 实现FIR 数字滤波器含滤波器阶数和系数数组,在MATLAB中调试、运行DSP 程序并显示、分析处理后的数据。使用该方法,便于采用汇编语言来实现程序。由于不同的窗函数对信号频谱的影响是不一样的,这主要是因为不同的窗函数,产生泄漏的大小不一样,频率分辨能力也不一样。信号的截断产生了能量泄漏,而用FFT算法计算频谱又产生了栅栏效应,从原理上讲这两种误差都是不能消除的,但是我们可以通过选择不同的窗函数对它们的影响进行抑制。在MATLAB设计中采用海明窗。三、 实验过程及结果1、 FIR滤波器的系数在matlab中可以通过分析工具FDATOOL来快速设计一个FIR,并得到相关的系数,其设计界面如图所示:得到其相关系数:2、 fir的C程序的实现首先要创建一个数组,数组的大小等于滤波器的阶数,用来存放用MATLAB生成的滤波器的系数,另外再定义一个数据缓冲区,来存放采集来的数据,该缓冲区的大小要和滤波器的系数数组的大小相同。然后进行数据移位,将数据缓冲区中的数据向下一个单元移1位,然后将刚采进来的数据放到缓冲区的首位。最后用for循环来实现乘加运算,得到这一时刻的卷积值。float fir( float x_in,float *x,float *b,int L) /float y_out;int i;for(i=L-1;i0;i-)xi=xi-1; x0=x_in;y_out=0.0;for(i=0;iL;i+)y_out=y_out+bi*xi; return(y_out);直接型FIR滤波器的实现涉及到两个基本操作,一个是输入信号向量与滤波器系数向量的内积计算,另一个是输入信号向量的更新处理。 在每个采样周期信号缓冲器都要更新一次,最老的采样被抛弃,而其他的信号则向缓冲器的右方移动一个单元,一个新的采样被插入存储单元,并被标记。如果这个操作过程不用DSP硬件完成,那么它需要很多的时间。3、 Fir的汇编语言的实现处理信号缓冲器的最有效方法,是把信号采样加载到循环缓冲器中。在循环缓冲器中,采取数据保持固定、反时针方向移动地址的方式,代替保持缓冲器地址固定且正方向移动数据。信号采样的起点由指针x(n) 指定,其它诸采样则沿着顺时针方向,从起点开始依次顺序加载。当接收到一个新的采样时,它会被配置在位置x(n)上,并且完成滤波算法。计算完输出量y(n)以后,指针反时针方向移动一个单元到x(n-L+1)位置,并且当作下一次迭代运算的x(n)。FIR滤波器系数的循环缓冲器如图所示,它总是从第一个系数开始运行。基于以上方法的FIR滤波器,其汇编语言实现如下。汇编语言整数fir滤波器函数:fir.asm; fir.asm 该程序用于实现FIR滤波器,可被C语言程序调用; int fir(int *,int *, unsigned int,int); 参数0: AR0 输入信号缓冲区指针; 参数1: AR1 - FIR滤波器系数向量指针; 参数2: T0 - FIR 滤波器的阶数L; 参数3: T1 - 输入信号当前值在循环缓冲区的序数; 返回值: T0 - 输出信号当前值 .def _fir _fir pshm ST1_55 ;现场ST1,ST2和ST3入栈 pshm ST2_55 pshm ST3_55or #0x340, mmap(ST1_55) ;设置FRCT,SXMD,SATDbset SMUL ;置位SMUL(P50)mov mmap(AR0),BSA01 ; AR0=输入信号循环缓冲区的起始地址mov mmap(AR1),BSA23 ; AR1=滤波器系数循环缓冲区的起始地址mov mmap(T0),BK03 ;设置循环缓冲区大小or #0x5,mmap(ST2_55) ; AR0和AR2为循环缓冲区指针mov T1,AR0 ; AR0从index偏移量开始mov #0,AR2 ; AR2从0偏移量开始sub #2,T0 ;T0=L-2 mov T0,CSR ;设置外部循环次数为L-1 mpym *AR0+,*AR2+,AC0 ;执行第一次运算| rpt CSR ;启动循环macm *AR0+,*AR2+,AC0mov hi(AC0),T0 ; 用Q15格式存放结果 popm ST3_55 ; 恢复ST1, ST2和 ST3popm ST2_55 popm ST1_55 ret.end4、 实验结果实验设计的FIR滤波器的采样频率Fs为25KHz,截止频率Fc为1KHz,当输入700Hz的方波时候,其处理波形显示如下:输入为2KHz的时候,显示如下:四、 总结概括经过这次课设对
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年稳相微波射频同轴电缆项目建议书
- 西医临床考试实战练习试题及答案
- 资讯更新公共卫生试题及答案
- 药剂药理毒理学基础问题及答案
- 营养与心理健康的关系探讨试题及答案
- 老旧小区焕新计划初步设计方案
- 加强校园餐饮安全管理的有效措施与实践路径
- 西医临床考试过程中常见问题试题及答案
- 药物治疗中个体化医疗的实践与挑战试题及答案
- 静载考试试题及答案
- 幼小衔接拼音课件
- 生产设备拆除工程施工方案
- 四年级下册科学第一单元《作业设计》第1-4课习题答案解析(教科版)
- 无障碍公共设施建设的问题及其对策研究
- 医务人员的职业暴露与防护完整版
- 临床医学(专科)毕业综合考复习题
- 石家庄市存量房买卖合同
- 高一离子方程式书写专题训练及答案
- 张元鹏《微观经济学》(中级教程)笔记和课后习题详解
- 如何有效管理90-00后新员工技巧方法-123课件
- 第十三讲 全面贯彻落实总体国家安全观PPT习概论2023优化版教学课件
评论
0/150
提交评论