MATLAB辅助DSP设计的研究与实现
数fir1(N, WN)即可返回对应滤波器的系数矩阵,其中N为阶数,WN为滤波器的归一化截止频率,即WN= 2Fc/Fs,且0≤WN≤1。
4.2 DSP滤波算法实现
结合MATLAB产生的滤波器系数,就可以编写DSP滤波主程序了,关键代码如下:
FIR_TASK:
STM #K_FIR_BFFR, BK ; 设置FIR循环缓冲区的大小
LD *INBUF_P+, -1, A ; 数据输入
FIR_FILTER:
STL A, *FIR_DATA_P+% ; 最新数据替代最旧数据
RPTZ A, (K_FIR_BFFR-1)
MAC *FIR_DATA_P+0%, *FIR_COFF_P+0%, A ; 乘累加
STH A,*OUTBUF_P ; 数据输出
4.3 MATLAB辅助设计
本设计中,算法仿真、系数产生、用户界面等部分由MATLAB辅助完成。算法仿真、系数产生方法在4.1中已详细介绍,本节重点介绍用户界面部分。本图形用户界面可以实现如下功能:修改参数,如滤波参数n和Wn,这种参数选取方法避免了反复修改DSP程序的弊端,可以满足不同层次使用者的使用;控制操作过程,如加载工程文件、下载可执行文件、运行程序等;绘制DSP输入数据的时域及频域信号;绘制滤波后DSP输出数据的时域及频域信号;使用MATLAB提供的滤波函数对输入数据进行滤波计算,并把所得结果与DSP输出信号进行比较,以验证或改良DSP算法。
用户界面的流程图如图1所示,主要由图形界面和回调函数两大部分组成。其中,图形界面由文件FIR_BPF.m实现;回调函数总共由6个文件实现,分别是input.m,input2.m,output.m,output2.m,lvbopin.m和lvbohou.m。
当输入带有干扰的方波信号后,分别查看输入波形、MATLAB滤波输出信号、DSP滤波输出信号,结果如图2所示。比较MATLAB滤波输出信号和DSP滤波输出信号,据此可以采用修改滤波器系数或DSP程序等措施来改进DSP滤波算法。
图1 用户图形界面流程图
图2 实验结果
5 结束语
本文探索并实现了利用CCSLink辅助DSP设计的完整过程。同时以FIR滤波器为例,利用CCSLink辅助设计了基于DSP TMS320VC5416的应用系统,该系统具有灵活的参数设置和快速的处理效率,很好地达到了辅助DSP设计的目的;再者,利用MATLAB的GUI工具设计了相应的图形用户界面,便于不同技术层次的用户操作,增强了DSP系统的适用性。
本文作者创新点:1.发展了利用MATLAB辅助DSP设计的思想,把DSP系统设计中的算法仿真、系数产生、结果验证、用户界面等环节交由MATLAB完成,实现了二者的无缝连接。2.通过MATLAB设计的人机界面,增强了DSP系统的适用性,便于不同技术层次的用户操作。
- 基于DSP和MATLAB的语音数据采集和处理系统(05-13)
- 简化“算法到C代码”是软件业的一项挑战(07-04)
- DSP与MATLAB的语音数据采集和处理系统(02-12)
- 基于MATLAB-DSP在无传感器矢量控制中的应用(05-04)
- 基于Matlab和VC混合编程的DSP数据采集系统(05-06)
- 基于FPGA设计DSP的实践与改进设计(05-11)