生
验 报
1
学 实 告
学生实验报告
学生姓名 实验项目 学号 同组人: CCS中滤波器的设计 ■必修 □选修 □演示性实验 □验证性实验 ■操作性实验 □综合性实验 实验地点 指导教师 实验仪器台号 实验日期及节次
一、实验综述
1、实验目的及要求
(1)掌握MATLAB设计滤波器的方法,即用FDATool设计滤波器。
(2)掌握CCS中设计FIR滤波器的程序,以及和MATLAB进行联调使用的步骤。 (3)学会观察CCS中显示出的波形,比较滤波效果。
2、实验仪器、设备或软件
电脑,SZ-DSP实验仪,MATLAB软件,CCS软件。
二、实验过程(实验步骤、记录、数据、分析) 2.使用FDATool
在MATLAB的Start菜单中选择Toolboxes→Fiter Design→Fiter Design & Analysis Tools(fdatool)选项,或者在命令行中输入fdatool来启动滤波器设计分析器。启动成功后界面如图2所示:
图2 FDATool设计界面
在选项中选择或输入滤波器参数,然后单击Design Filter按钮,完成滤波器的设计。具体参数以及设计成功后的如图3所示:
图3 滤波器设计
3. 导出FIR滤波器系数
从matlab中导出FIR滤波器系数步骤如下
(1)在FDATool中选择Targets→Code Composer srudio(tm)IDE选项。
(2)在出现的对话框中选择输出文件类型为 C header file,输出系数为Signed 16-bit integer,如图4所示:
图4 设置输出数据类型
3
(3) 单击Generate按钮,选择路径,即可输出前一步设计出的FIR滤波器的系数表,在此生成的系数表文件为fdacoefes.h。
4 利用MATLAB产生的噪声信号用于滤波器的测试
将下面代码另存为M文件,在MATLAB中运行后将会生成input.out文件。该数据文件中含有500Hz,3000Hz,8000Hz三种频率的信号,用于滤波器效果的测试。信号的时域和频谱分别如图5和图6所示
f11=500; f12=3000; f13=8000; fs=10000; N=1000; T=1/fs; n=0:N;
x11=sin(2*pi*f11*n*T); x12=0.7*sin(2*pi*f12*n*T); x13=0.5*sin(2*pi*f13*n*T); 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);
输出图像
图5 信号的时域图
4
图6 信号的频谱
5 在CCS中编写FIR滤波器程序
新建工程,以C55x Simulator为例,编写C语言代码并导入工程,如下: #include”stdio.h” #nclude”fdacoefs.h” # define N 81 #define LEN 200 Long yn;
int input[LEN]; int output[LEN]; void main() { int i,j; int *x;
for(j=0;j for(i=0;i 5 While(1); } 6 滤波器仿真测试 编译成功后会在“工程所以目录/debeg”文件夹下产生*.out文件,在CCS软件的File→Load progarm里打开这个.out文件。 下面将File→Data→Load菜单项打开之前MATLAb生成的input.out文件,如图7所示: 图7 将Address设置为Input,Length设置为0x00C8,paga设置为data,单击“运行”按钮,程序即开始运行。 查看滤波器滤波效果: (1) 选择View→Graph→Time→Frequency选项,打开界面。 (2)在上一步出现的对话框中,按图8所示 图8 进行设置 6 三、结论 1 滤波图形前后的对比图下图所示: 四、实验心得 通过此次实验,使我掌握CCS中设计FIR滤波器的程序,以及和MATLAB进行联调使用的步骤并且掌握了MATLAB设计滤波器的方法,用FDATool设计滤波器。 五、指导教师评语及成绩: 评语: 成绩: 指导教师签名: 批阅日期: 7 因篇幅问题不能全部显示,请点此查看更多更全内容