1、第 1 章 绪论 1.1课程设计(论文) 目的 通过课程设计,加深对 DSP 芯片 TMS320C54x 的结构、工作原理的理解,获得 DSP 应用技术的实际训练,掌握设计较复杂 DSP 系统的基本方法。 通过使用汇编语言编写具有完整功能的图形处理程序或信息系统,使学生加深对所学知识的理解,进一步巩固汇编语言讲法规则。学会编制结构清晰、风格良好、数据结构适当的汇编语言程序,从而具备解决综合性实际问题的能力。 1.2任务和要求 任务: 设计一个基于 DSP 的 FIR 滤波器 要求: 1. 总体方案设计 ; 2. 设计出 软件编程方法 ,并写出 源代码; 3. 仿真与结果分析 ; 4. 论文格式
2、要符合学院的统一规定,结构要合符逻辑,表达要得体。 第 2 章 系统 方案设计 2.1系统功能介绍 任何一个 实际的应用系统中, 都 存在 着 各种 各样的 干扰。 数字滤波器 是使用最为广 泛的信号处理算法之一。 数字滤波器在语音信号处理、信号频谱估计、信号去噪、无线通信中的数字变频以及图像信号等各种信号处理中都有广泛的 应用。 在本 设计 中, 先 使用 MATLAB 模拟产生合成信号,然后 再 利用 CCS 进行滤波 处理 。 将 模拟信号的采样频率 设定 为 32000Hz, 设计一个 FIR 低 通滤波器,其参数为: 滤波器名称: FIR 低 通滤波器 采样频率: Fs=40000H
3、z 通带: 4000Hz 4500Hz 过渡带: 2500Hz 3000Hz, 3500Hz 4000Hz 带内波动: 0.5dB 阻带衰减: 50dB 滤波器级数: N=154 滤波器系数: 由 MATLAB 根据前述参数求得。 2.2系统 方案 设计 流程图 (如图 2.1) 图 2.1 系统 方案 设计流程图 2.3设计主要内容及 步骤 2.3.1 滤波器 的 原理 对于 任何 一个 FIR 滤波 器 系统,它的冲击响应总是 有 限长的,其系统函数可记为: 其中 N-1 是 FIR 滤波器的 阶数, 为延时结, 为端口信号函数。 下式为 最基本的 FIR 滤波器 表示: 其中 表示 输入
4、采样序列, 表示 滤波器系数, N 表示 滤波器的阶数 ,Y( n) 表示滤波器的输出序列,也可以 用下式 利用 卷积来表示输出序列 y(n)与 x(n)、 h(n)的关系: 使用 MATLAB编写程序产生待滤波数据 使用 MATLAB滤波器的设计分析工具 FDATOOL设计 FIR 滤波器 使用 CCS 编写程序实现滤波功能 查看程序运行后的输入输出波形并比较滤波效果 y(n)=x(n)*h(n) 2.3.2DSP 实现 FIR 滤波的 关键技术 用线性缓冲区 来 实现 FIR 滤波器 其 程序清单 如下 : .title “FIR1.ASM” .mmregs .def start x .u
5、sect “x”, 8 PA0 .set 0 PA1 .set 1 .data COEF: .word 1*32768/10 .word 2*32768/10 .word -4*32768/10 .word 3*32768/10 .word -4*32768/10 .word 2*32768/10 .word 1*32768/10 .text start: SSBX FRCT STM #x+7,AR2 STM #6,AR0 LD #x+1,DP PORTR PA1,x+1 FIR1: RPTZ A,#6 MACD *AR2-,COEF,A STH A,*AR2 PORTW *AR2+,PA0
6、BD FIR1 PORTR PA1,*AR2+0 .end 用循环缓冲区 来 实现 FIR 滤波器 其 程序清单 如下 : .title “FIR2.ASM” .mmregs .def start .bss y,1 xn .usect “xn”,7 b0 .usect “b0”,7 PA0 .set 0 PA1 .set 1 .data table: .word 1*32768/10 .word 2*32768/10 .word 3*32768/10 .word 4*32768/10 .word 5*32768/10 .word 6*32768/10 .word 7*32768/10 .tex
7、t start: SSBX FRCT STM #b0,AR1 RPT #6 MVPD table,*AR1+ STM #xn+6,AR2 STM #b0+6,AR3 STM #7,BK STM #-1,AR0 LD #xn,DP PORTR PA1,xn FIR2: RPTZ A,#6 MAC *AR2+0%,*AR3+0%,A STH A,y PORTW y,PA0 BD FIR2 PORTR PA1,*AR2+0% .end 2.3.3 具体的 操作步骤 ( 1)打开 FDATOOL,根据滤波要求设置滤波器 的 类型、通带截止频率 、指定阶数 、 采样频率 等。 设置 完设计参数后 再 单
8、击 Design Filter 按钮 ,生成滤波器系数。 ( 2) 把生成的滤波器系数传到目标 DSP。 选择菜单 Targets-Export to Code Composer Studio(tm)IDE,打开 Export to C Header File 对话框,选择 C header file, 然后 指定变量名 (滤波器阶数和系数向量 ),输出数据类型可 以选择 浮点型或 32 b, 16 b 整型等, 再 根据 自己安装选择目标板板号和处理器号,单击 OK,保存该头文件, 同时 需指定文件名 (filtercoeff h)和路径 (保存在 c:timyprojectsfir 工程中
9、 )。 ( 3) 修改 CCS 汇编程序,删 除 掉数据前的所有文字,在 其 开头加上 .data,第二行加 上 coeff .word,在每行的前面 都 加上 .word,并 且把每行的最后的逗号去 除 掉。 ( 4)编译汇编程序, 若 有错误, 则 根据 错误 提示 进行修改;若没有 错误,则 继续 往下执行。 ( 5)加载初始化 DATA 数据。 运行程序,查看输入输出 的 波形,修改相应的 参数进行调试 第 3 章 详细设计 在本 设计 中 首先 使用 MATLAB进行 模拟 仿真 产生信号,观察滤波前的时域波形和频域波形。 通过 MATLAB仿真后,使用 其 得到的滤波器参数, 再
10、进行DSP编程 处理 ,在 DSP中实现带通滤波, 然后 使用 CCS的频谱分析功能,查看DSP的滤波效果。 3.1MATLAB程序 流程图 ( 如图 3.1) 图 3.1 MATLAB程序流程图 3.2CCS汇编程序流程图 ( 如图 3.2) 是 图 3.2 CCS汇编程序流程图 初始 化 产生需要虑波信号 画出原始信号频谱图 生成 fir 滤波器 进行滤波 画出滤波后信号频谱图 是否有待滤波数据 初始化 输入原始信号 定义滤波器系数 为原始信号和系数指定寄存器 做滤波算法 本次滤波结束待滤波系数减一 滤波结束 第 4 章 实验 过程 4.1汇编语言 4.1.1 实验步骤与内容 MATLAB
11、辅助 DSP 实现 FIR ,其总体过程为在 DSP 中编写处理程序 , 在MATLAB中利用滤波器设计、分析工具 ( FDATOOL) ,根据指定的滤波器性能快速设计一个 FIR ,再 把滤波器系数以头文件形式导入 CCS 中 ,头文件中MATLAB 辅助 DSP 实现 FIR 数字滤波器含滤波器阶数和系数数组 ,在MATLAB中调试、 运行 DSP 程序并显示、分析处理后的数据。使用该方法 ,便于采用 汇编 语言来实现程序。头文件名不变 ,当 MATLAB中设计的滤波器系数改变时 ,相应头文件中系数也改变 ,方便程序调试、仿真。 1.在 MATLAB 中先编写程序,查看待滤波 和已滤波 的
12、信号的时域和频域波形,如图 4.1.1 和 图 4.1.2 所示。 图 4.1.1 待滤波的时域和频域波形 图 4.1.2 已滤波的时域和频域波形 利用 FDA TOOL 设计 FIR 滤波器的参数,操作步骤如图 4.1.3 所示 。 图 4.1.3 FDA TOOL 设 计 FIR 滤波器的参数操作步骤图 打开 Export,把 Numerator 改为 B,如图 4.1.4 所示。 已滤波的信号的时域和频域波形,如图 4.1.5 和图 4.1.6 所示。 图 4.1.4 EXPORT 设置 图 4.1.5 已滤波的信号的时域波形 图 4.1.6 已滤波的信号的频域波形 MATLAB 滤波器
13、设计工具在完成 FIR 设计后 ,如图 4.1.7 所示,在 Export as 中选择 16bit 符号整数输出,然后单击 OK 按钮。生成 fir.h C 语言头文件。将系数稍作修改,调整后拷贝到程序的系数初始化空间即可。 2.在 CCS 中编写汇编程序,进行调试,实现带通滤波 功能。 在 CCS IDE 中建立 LHM.pjt 工程 ,用汇编语言编写处理主程序 fir.asm。 另 根据板上的存储器配置方式 ,编写存储器配置文件 fir.cmd 文件 ,将 MATLAB 生成的 LHM.h 和input1.dat 文件拷贝到 LHM.pjt 工程文件夹下,进行 编译、链接 ,生成可执行文
14、件 LHM.out。 3.加载初始化 data 数据, 图 4.1.8 所示。 图 4.1.7 MATLAB 输出数值类型转换 图 4.1.8 data 初始化 运行程序,查看输入输出波形,修改相应参数进行调试。 4.1.2 实验过程中出现的错误 及解决的 办法 1.在 MATLAB 程序设计中,采样频率设置的过小,截止频率大于采样频率的一半,运行的时候图形出现错误。 2. FIR.m 中的采样频率要和开始设置时的采样频率一致,否则结果会出现偏差。 3.在 CCS 中未定义标号,程序运行错误。 4.在 .h 文件中未把 coeff 顶格写,编译时出现错误。 5.未将 fir.h 和 input
15、.dat 文件考入工程文件中。 6.间接寻址过程中,程序中丢失。 7.在 View 的 Graph 中单击 Time/frequency 出现 graph property dialog框,未修改抽样点数。显示 的图形出现差异 4.1.3CCS 程序运行后的各种输出结果 在 View 的 Graph 中单击 Time/frequency 出现 graph property dialog框。 将显示类型,图形名称,起始地址,抽样点数,数据类型等分别进行设置,输出各种波形。输出滤波前的信号时域波形。 首先,设置如图 4.1.9 所示,输出滤波前的信号时域波形。 图 4.1.9 滤波前数据类型设置 单击 OK 后生成如下图 4.1.10 波形。 图 4.1.10 为滤波前的信号,波形很杂乱,从时域上很难看出信号的周期性。
Copyright © 2018-2021 Wenke99.com All rights reserved
工信部备案号:浙ICP备20026746号-2
公安局备案号:浙公网安备33038302330469号
本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。