MATLAB辅助DSP设计的研究与实现

技术分类: EDA工具与服务  | 2008-01-16
来源:微计算机信息

  当一切操作执行完成后,需要删除CCSDSP对象,以收回系统资源。

  clear cc;         %关闭CCS IDE连接对象

  4  CCSLink应用实例

  通过CCSLink工具,可以使用MATLAB来进行DSP的辅助设计。在此以FIR滤波器为例,介绍CCSLink在DSP设计中的应用。在该实例中,FIR滤波的核心内容由DSP实现,而算法仿真、系数产生、用户界面、结果验证等部分由MATLAB辅助完成。

  4.1 FIR滤波器设计

  设输入信号为x(n),输出信号为y(n),则FIR滤波器对应的差分方程可表示为:

3

  其中,h(k)(k=0,1,2,…,N-1)表示滤波器系数序列,是滤波器设计的关键。h(k)可以通过MATLAB工具箱提供的滤波器函数 fir1()和fir2()来获取:首先通过建立MATLAB/Simulink模型,根据所需设计低通滤波器的性能要求来确定滤波器的阶数和截止频率等参数。本例所设计的FIR低通滤波器参数为:

截止频率(Fc)2kHz,采样频率(Fs)8kHz,阶数(N)40。然后借助函数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 实验结果        

0
0
(请您对文章做出评价)
1】【2】【3】【4
加载中

对文章的评论

更多评论

剩余字数:  

浏览该文章的用户还看过...

  • 文 章

  • 论 坛

  • 博 客

  • 小 组

  • 博客推荐

  • 论坛推荐

  • 在线研讨会