




已阅读5页,还剩23页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一 实验目的 1 了解FIR滤波器的原理及使用方法 2 了解使用Matlab语言设计FIR滤波器的方法 3 了解DSP对FIR滤波器的设计及编程方法 4 熟悉对FIR滤波器的调试方法 二 实验内容本试验要求设计滤波器采样频率为8000hz 截止频率1600hz的低通滤波器 并设计FIR滤波器实现上面要求 输入信号频率为800HZ 1800HZ和3300HZ的合成信号 目的是通过我们设计的滤波器将1800HZ和3300HZ的信号滤掉 余下800HZ的信号成分 达到滤波的效果 FIR滤波器 一个线性位移不变系统的输出序列y n 和输入序列x n 之间的关系 应满足常系数线性差分方程 x n 输入序列 y n 输出序列 ai bi 滤波器系数 N 滤波器的阶数 在式上式中 若所有的ai均为0 则得FIR滤波器的差分方程 对上式进行z变换 可得FIR滤波器的传递函数 三 实验原理 FIR滤波器的结构 在数字滤波器中 FIR滤波器具有如下几个主要特点 FIR滤波器无反馈回路 是一种无条件稳定系统 FIR滤波器可以设计成具有线性相位特性 本实验程序设计的就是一种偶对称的线性相位滤波器 程序算法实现采用循环缓冲区法 算法原理 在数据存储器中开辟一个N个单元的缓冲区 滑窗 用来存放最新的N个输入样本 从最新样本开始取数 读完最老样本后 输入最新样本来代替最老样本 而其他数据位置不变 用BK寄存器对缓冲区进行间接寻址 使缓冲区地址首尾相邻 四 实验步骤1 滤波器的Matlab语言设计编写matlab程序 生成FIR滤波器系数后 附到DSP汇编语言程序中 2 输入数据为800HZ 1800HZ和3300HZ的合成信号合成信号 采样率为8000hz 160个样点 3 打开CCS 新建立一工程文件fir pjt 4 将汇编源文件fir asm 中断向量表vectors asm和链接命令文件fir cmd添加到fir pjt中 5 在project菜单下选择rebuildall选项 6 在file菜单下 选择loadprogram选项 将生成的fir out文件装载到DSP中 7 运行程序 在view菜单下选择watchwindow选项来观测变量值 依次输入input和output来观测输入输出变量值 这两个变量分别为滤波前的输入数据和滤波后输出数据的首地址 8 可以在view菜单下选择graph timefrequence 按照要求 设置好相应的参数 来观测输入和输出数据的波形 9 具体调试执行程序时 可使用断点 单步执行等方式 title fir5 asm mmregs def c int00 datafir table word 170 144 0 246 193 293 482 0 727 554 682 1373 word0 2271 1937 2975 9764 12963 9764 2975 1937 2271 word0 1373 682 554 727 0 482 239 193 246 word0 144 170 datainput word0 x7FDE 0 x04CF 0 xF7FD 0 x04CFfir coff usect fir coff 35in buf usect in buf 35 bssin 160 bssout buf 125 text c int00 SSBxFRCT FRCT STM in AR1RPT 159MVPDinput AR1 STM fir coff AR1RPT 34MVPDfir table AR1 STM in buf AR1RPT 34ST 0 AR1 STM in buf 34 AR2STM fir coff 34 AR3STM 35 BKSTM 1 AR0STM out buf AR6STM in AR5STM 159 AR7MVDD AR5 AR2 0 FIR2 RPTZA 34MAC AR2 0 AR3 0 A STHA AR6 MVDD AR5 AR2 0 BANZFIR2 AR7 NOPNOP end 循环缓冲区法 图12说明了使用循环寻址实现FIR滤波器的方法 对于N级FIR滤波器 在数据存储区开辟一个称为滑窗的具有N个单元的缓冲区 滑窗中存放最新的N个输入样本值 每次输入新的样本时 新的样本将改写滑窗中最老的数据 其他数据则不需要移动 图12FIR滤波器循环缓冲区存储器图 循环缓冲区法实现FIR滤波器 title fir2 asm mmregs defstart bssy 1xn usect xn 7 定义数据存储空间h0 usect h0 7 定义数据存储空间PA0 set0PA1 set1 dataTable word1 32768 10 h0 0 1 word2 32768 10 h1 0 2 word3 32768 10 h2 0 3 word4 32768 10 h3 0 4 word5 32768 10 h4 0 5 word6 32768 10 h5 0 6 word7 32768 10 h6 0 7 text start SSBxFRCT 小数乘法编程时 设置FRCT 小数方式 位STM h0 AR1RPT 6MVPDtable AR1 STM xn 6 AR2STM h0 6 AR3STM 7 BKSTM 1 AR0LD xn DPPORTRPA1 xn FIR2 FIR滤波运算RPTZA 6MAC AR2 0 AR3 0 ASTHA yPORTW y PA0BDFIR2PORTRPA1 AR2 0 用最新的样本值替代最旧的样本值 END 线性缓冲区法又称延迟线法 其方法是 对于n N的FIR滤波器 在数据存储器中开辟一个N单元的缓冲区 存放最新的N个样本 滤波时从最老的样本开始 每读一个样本后 将此样本向下移位 读完最后一个样本后 输入最新样本至缓冲区的顶部 以上过程 可以用N 6的线性缓冲区示意图来说明 如下图所示 线性缓冲区法实现FIR滤波 图5 1N 6的线性缓冲区示意图 系数与信号缓冲区示意表 暂存y n x n x n N 2 x n N 1 h N 1 h N 2 h 1 h 0 线性缓冲区法实现FIR滤波 title fir1 asm mmregs defstartX usect x 8 定义数据存储空间PA0 set0PA1 set1 dataCOEF word1 32768 10 h6 0 1 word2 32768 10 h5 0 2 word 4 32768 10 h4 0 4 word3 32768 10 h3 0 3 word 4 32768 10 h2 0 4 word2 32768 10 h1 0 2 word1 32768 10 h0 0 1 text start SSBxFRCT 小数乘法编程时 设置FRCT 小数方式 位STM x 7 AR2STM 6 AR0LD x 1 DPPORTRPA1 x 1 FIR1 FIR滤波运算RPTZA 6 累加器A清零 设置迭代次数MACD AR2 COEF A 完成乘法 累加并移位STHA AR2 暂存y n PORTW AR2 PA0 输出y n BDFIR1循环PORTRPA1 AR2 0 输入最新样本 并修改AR2 AR2 AR0 并指向缓冲区底部 END 3 系数对称FIR滤波器的实现方法优点 乘法的次数减少了一半 实现方法 使用专门用于系数对称FIR滤波器的指令 FIRSXmem Ymem Pmad该指令的操作如下 执行 Pmad PAR当 RC 0 循环计数器 Xmem Ymem 16 A B A 32 16 PAR B PAR 1 PAR RC 1 RC 说明 FIRS指令在同一机器周期内 通过C和D总线读两次数据存储器 同时通过P总线读程序存储区的一个系数 注意两点 1 在数据存储器中开辟两个循环缓冲区 如New和Old缓冲区 分别存放N 2个新数据和老数据 循环缓冲区的长度为N 2 设置了循环缓冲区 就需要设置相应的循环缓冲区指针 如用AR2指向New缓冲区中最新的数据 AR3指向Old缓冲区中最老的数据 2 将系数表存放在程序缓冲区内 mmregs defstart bssy 1x new usect DATA1 4x old usect DATA2 4size set4PA0 set0PA1 set1 dataCOEF word1 32768 10 2 32768 10 word3 32768 10 4 32768 10 text start LD y DPSSBXFRCTSTM x new AR2 AR2指向新缓冲区第一个单元STM x old size 1 AR3 AR3指向老缓冲区最后1个单元STM size BK 循环缓冲区长度STM 1 AR0LD x new DPPORTRPA1 x new 输入x n FIR ADD AR2 0 AR3 0 A AH x n x n 7 第一次 RPTZB size 1 B 0 下条指令执行size次FIRS AR2 0 AR3 0 COEF B AH a0 AH x n 1 x n 6 STHB y 保存结果 PORTW y PA0 输出结果MAR AR2 2 修正AR2 指向新缓冲区最老数据MAR AR3 修正AR3 指向老缓冲区最老数据MVDD AR2 AR3 0 新缓冲区向老缓冲区传送一个数BDFIRPORTRPA1 AR2 输入新数据至新缓冲区 end DesignofFIRFilters TheobjectiveofFIRfilterdesignistodetermineasetoffiltercoefficientssuchthatthefilterperformanceisclosetothegivenspecification FilterDesignProcedure ThedesignofdigitalFIRfiltersinvolvesfivesteps 1 Specificationoffilterrequirements 2 Calculationandoptimizationoffiltercoefficients 3 Realizationofthefilterbyasuitablestructure 4 Analyseoffinitewordlengtheffectsonfilterperformance 5 Implementationoffilterinsoftwareand orhardware 利用标准频率响应设计法fir1 可以设计低通 高通 带通 带阻滤波器 b fir1 N Wn b fir1 N Wn filtertype b fir1 N Wn window b fir1 N Wn filtertype window 举例 n 34 wn 0 4 b fir1 n wn a 32768 b c a 2 14270 53 47671510 273 22329161401089 94914824910653949101482 949 10890614291 223 273015167 47 5302714 DesignofFIRFiltersUsingMATLAB
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年事业单位工勤技能-北京-北京汽车驾驶与维修员一级(高级技师)历年参考题库含答案解析
- 2025年中级卫生职称-主治医师-重症医学(中级)代码:359历年参考题库典型考点含答案解析
- 2025年通信专业技术-通信专业技术(中级)-中级通信专业技术(设备环境实务)历年参考题库含答案解析(5套)
- 2025年职业技能鉴定-汽轮机本体检修工-汽轮机本体检修工(高级)历年参考题库含答案解析(5套)
- 2025年职业技能鉴定-供水供应工-供水供应工证(高级)历年参考题库含答案解析(5套)
- 2025年综合评标专家-湖北-湖北综合评标专家(交通运输厅)历年参考题库含答案解析(5套)
- 热电厂锅炉安全知识培训课件
- 季氏将伐颛臾课件
- 烟草公司消防知识培训课件
- 烟花爆竹基础知识培训课件
- 无锡市公安局梁溪分局招聘警务辅助人员57人笔试模拟试题参考答案详解
- 2025年度养老护理员考试技师培训考试题(含答案)
- 2025年航空职业技能鉴定考试-候机楼服务技能考试历年参考题库含答案解析(5卷100道集合-单选题)
- 云智算中心项目建设方案
- 2025小学生“学宪法、讲宪法”网络知识竞赛题库及答案
- 脊柱内镜手术机器人系统设计与精准位置控制研究
- (2025年)江苏省盐城市辅警协警笔试笔试模拟考试试题含答案
- 2025年重庆物流集团渝地绿能科技有限公司招聘考试试卷
- 六安金安区东河口镇选聘村级后备干部考试真题2024
- 排尿评估及异常护理方法
- 语音厅新人培训:从零开始到主播之路
评论
0/150
提交评论