Matlab2015b+DSP(CCS6.1.3)+Fir滤波器仿真

本文介绍自己在用dsp做Fir仿真时一些学习心得,最终结果可能有错,限于本人刚开始接触dsp,仍然在摸索,但希望本文能给大家一些帮助,也希望有大佬能相互交流。
1.用Matlab的fda设计Fir滤波器,
之前的Matlab的版本中在MATLAB的Start菜单中选择Toolboxes→Filter Desigen→Filter Design & Analysis Tool(fdatool)选项,就可以启动滤波器设计分析器。而在MATLAB2015b中Filter Design & Analysis是这样启动的。
Matlab2015b+DSP(CCS6.1.3)+Fir滤波器仿真_第1张图片然后选择Apps→Filter Design & Analysis就可以启动滤波器设计分析器。界面如图,并按照如图参数进行修改后点击Design Filter完成滤波器设计。
Matlab2015b+DSP(CCS6.1.3)+Fir滤波器仿真_第2张图片Matlab2015b+DSP(CCS6.1.3)+Fir滤波器仿真_第3张图片从MATLAB中导出FIR滤波器系数步骤如下:
(1)在Filter Design & Analysis Tool中选择Targets→Code Composer Studio™IDE选项。
(2)在出现的对话框中选择输出文件类型为C header file,输出类型为Signed 16-bit integer,如图所示
(3)单击Generate按钮,选择路径(本人认为放在和即将要建立的CCS工程一个文件夹中更方便),这样就可以输出FIR滤波器系数表。在此生成的系数表文件为fdacoefs.h。
Matlab2015b+DSP(CCS6.1.3)+Fir滤波器仿真_第4张图片2.用MATLAB产生信号,用于测试。

f11 = 500; %/Hz
f12 = 3000; %/Hz
f13 = 8000; %/Hz
fs = 10000; %/采样Hz
N = 1024; %数据个数
T = 1/fs; %采样周期
n = 0:N;
x11 = sin(2pif11nT);
x12 = 0.7sin(2pif12nT);
x13 = 0.5
sin(2pif13nT);
x_base = (x11+x12+x13); %待滤波信号波形
figure(1);
plot(x_base); %待滤波信号频谱
figure(2);
yff = abs(fft(x_base));
df = n*(fs/N);
plot(df,yff);
xout = x_base/max(x_base); %归一化
xto_ccs = round(32767*xout);
fid = fopen(‘input.dat’,‘w’); %打开文件
fprintf(fid,‘1651 1 0 0 0\n’); %输出文件头
fprintf(fid,’%d\n’,xto_ccs); %输出
fclose(fid);
Matlab2015b+DSP(CCS6.1.3)+Fir滤波器仿真_第5张图片点击运行就会产生input.dat文件。

3.在CCS6.1.3中编写FIR滤波程序:
在CCS中新建工程,编写c语言源代码并导入工程。
Matlab2015b+DSP(CCS6.1.3)+Fir滤波器仿真_第6张图片将上述c文件进行编译,如果出现错误进行如下修改:
(1)将MATLAB生成的“fdacoefs.h”拷贝到CCS工程目录下;
(2)打开fdacoefs.h文件,将代码中" #include “tmwtypes.h” "修改为“ #include “D:\MATLAB 2015B\extern\include\tmwtypes.h” ”(也就是自己机器上的MATLAB安装的绝对路径),点击保存,再次编译就会通过。

4.滤波器仿真测试
对Debug下面的".out"进行调试。
Matlab2015b+DSP(CCS6.1.3)+Fir滤波器仿真_第7张图片然后将自己在MATLAB中滤波器设计文件导入到内存中。
(1)在Memory Browser中搜索位置0x8000(这个位置可以自己随意选定)
(2)鼠标右击→Load Memory→File中找到自己“input.dat”文件的位置→File type 选择 TI Date→单击Next
(3)Format选为 16-Bit Signed Int, Start Address选择为0x8000,Lengh设置为0x400,单击Finish完成数据加载,可以在Memory Browser中看到数据已经加载到我们设定的位置.
Matlab2015b+DSP(CCS6.1.3)+Fir滤波器仿真_第8张图片Matlab2015b+DSP(CCS6.1.3)+Fir滤波器仿真_第9张图片Matlab2015b+DSP(CCS6.1.3)+Fir滤波器仿真_第10张图片 (4)然后点击Tool→Graph→Single Time从而生成波形图,相应配置如图。Matlab2015b+DSP(CCS6.1.3)+Fir滤波器仿真_第11张图片Matlab2015b+DSP(CCS6.1.3)+Fir滤波器仿真_第12张图片至此,完成了DSP对于FIR滤波器的仿真,在整个仿真过程本人遇到很多很“玄学”的问题,有时候,编译不通过,将软件关闭,重新载入就可以编译通过。另外,还发现一个问题,打开CCS软件的时候右下角是Full Licence,然而当Debug后就变成了Free Licence ,至今没发现问题所在,也不知道会对仿真产生什么影响,希望各位大佬能提出解决办法。

你可能感兴趣的:(MATLAB2015b,CCS6.1.3,FIR滤波器仿真)