本科学生综合性实验报告
项目组长__ __ 学号
成 员 专 业____ 班级_
实验项目名称__ FIR带通滤波器的设计 指导教师及职称_____ 开课学期 至_ 学年 学期 上课时间 年 月 日
一、实验设计方案 实验名称: FIR带通滤波器的设计 小组合作:是○ 否○ 1、实验目的及要求 (1)掌握MATLAB设计滤波器的方法,即用FDATool设计滤波器。 (2)掌握CCS中设计FIR滤波器的程序,以及和MATLAB进行联调使用的步骤。 (3)学会观察CCS中显示出的波形,比较滤波效果。 实验时间: 小组成员: 2、实验场地及仪器、设备和材料: 电脑、MATLAB仿真软件,CCS软件。 3、实验思路(实验内容、数据处理方法及实验步骤等): 实验内容 1.使用FDATool 在MATLAB的Start菜单中选择Toolboxes→Fiter Design→Fiter Design & Analysis Tools(fdatool)选项,或者在命令行中输入fdatool来启动滤波器设计分析器。启动成功后界面如图所示: FDATool设计界面 在选项中选择或输入滤波器参数,然后单击Design Filter按钮,完成滤波器的设计。具体参数以及设计成功后的如图所示: 2.导出FIR滤波器系数 从matlab中导出FIR滤波器系数步骤如下 (1)在FDATool中选择Targets→Code Composer srudio(tm)IDE选项。 (2)在出现的对话框中选择输出文件类型为 C header file,输出系数为Signed 16-bit integer,如图所示: 设置输出数据类型 (3) 单击Generate按钮,选择路径,即可输出前一步设计出的FIR滤波器的系数表,在此生成的系数表文件为fdacoefes.h。 3. 利用MATLAB产生的噪声信号用于滤波器的测试 将下面代码另存为M文件,在MATLAB中运行后将会生成input.out文件。该数据文件中含有500Hz,3000Hz,8000Hz三种频率的信号,用于滤波器效果的测试。信号的时域和频谱分别如图5和图6所示 f11=300; %/Hz f12=610; %/Hz f13=2000; %/Hz fs=2460; %/采样Hz 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); 4. 在CCS中编写FIR滤波器程序 新建工程,以C55x Simulator为例,编写C语言代码并导入工程,如下: #include”stdio.h” #nclude”fdacoefs.h” # define N 301 #define LEN 200 Long yn; int input[LEN]; int output[LEN]; void main() { int i,j; int *x; for(j=0;j