基于CCS中FIR带通滤波器的设计.doc
《基于CCS中FIR带通滤波器的设计.doc》由会员分享,可在线阅读,更多相关《基于CCS中FIR带通滤波器的设计.doc(9页珍藏版)》请在冰豆网上搜索。
本科学生综合性实验报告
项目组长____学号
成员
专业____班级_
实验项目名称__FIR带通滤波器的设计
指导教师及职称_____
开课学期至_学年学期
上课时间年月日
一、实验设计方案
实验名称:
FIR带通滤波器的设计
实验时间:
小组合作:
是○否○
小组成员:
1、实验目的及要求
(1)掌握MATLAB设计滤波器的方法,即用FDATool设计滤波器。
(2)掌握CCS中设计FIR滤波器的程序,以及和MATLAB进行联调使用的步骤。
(3)学会观察CCS中显示出的波形,比较滤波效果。
2、实验场地及仪器、设备和材料:
电脑、MATLAB仿真软件,CCS软件。
3、实验思路(实验内容、数据处理方法及实验步骤等):
实验内容
1.使用FDATool
在MATLAB的Start菜单中选择Toolboxes→FiterDesign→FiterDesign&AnalysisTools(fdatool)选项,或者在命令行中输入fdatool来启动滤波器设计分析器。
启动成功后界面如图所示:
FDATool设计界面
在选项中选择或输入滤波器参数,然后单击DesignFilter按钮,完成滤波器的设计。
具体参数以及设计成功后的如图所示:
2.导出FIR滤波器系数
从matlab中导出FIR滤波器系数步骤如下
(1)在FDATool中选择Targets→CodeComposersrudio(tm)IDE选项。
(2)在出现的对话框中选择输出文件类型为Cheaderfile,输出系数为Signed16-bitinteger,如图所示:
设置输出数据类型
(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,'16511000\n');%输出文件
fprintf(fid,'%d\n',xto_ccs);%输出
fclose(fid);
4.在CCS中编写FIR滤波器程序
新建工程,以C55xSimulator为例,编写C语言代码并导入工程,如下:
#include”stdio.h”
#nclude”fdacoefs.h”
#defineN301
#defineLEN200
Longyn;
intinput[LEN];
intoutput[LEN];
voidmain()
{
inti,j;
int*x;
for(j=0;j{
X=&input[j];
for(i=0;iyn+=B[i]*(*x++);
output[j]=yn>>15;
}
While
(1);
}
5.滤波器仿真测试
编译成功后会在“工程所以目录/debeg”文件夹下产生*.out文件,在CCS软件的File→Loadprogarm里打开这个.out文件。
下面将File→Data→Load菜单项打开之前MATLAb生成的input.out文件,如图所示:
将Address设置为Input,Length设置为0x00C8,paga设置为data,单击“运行”按钮,程序即开始运行。
查看滤波器滤波效果:
(1)选择View→Graph→Time→Frequency选项,打开界面。
(2)在上一步出现的对话框中,按图所示
二、实验结果与分析
1、实验目的、场地及仪器、设备和材料、实验思路等见实验设计方案
2、实验现象与结果
滤波器设计
信号的时域图信号的频谱
输入时域输出时域
输入频域输出频域
3、对实验现象、数据及观察结果的分析与讨论:
从实验数据和图片表格可以知道,当300hz,610hz和2000hz三个频率的信号同时输入到设计好的带通滤波器时,输出信号只有610hz这一个,说明300hz和2000hz的没有通过该滤波器,610hz的通过了该滤波器。
4、结论:
从实验所得的数据和图片可以知道,实验成功用matlab中得fdatool设计了带通滤波器的系数,并成功输出了.h文件,成功建立了噪声信号的.m文件,可以产生含有300hz,610hz和2000hz三种频率的噪声信号,当该噪声信号通过设计好的滤波器时,输出只含有610hz这一个频率的信号,说明设计的滤波器成功滤除了300hz和2000hz的信号,而只通过了610hz的信号,所设计的带通滤波器时正确的,实验时成功的。
5、实验总结
⑴本次实验成败之处及其原因分析:
实验中,我们成功设计了一个宽带为20khz的带通滤波器,并成功用噪声信号进行了仿真测试,这是实验的成功之处,能成功设计好滤波器在于熟练使用matlab软件和ccs软件并编写正确的FIR滤波程序。
实验的不足之处是对ccs的项目结构不熟悉,使实验进展较慢,通过实验,我已熟悉了这个问题。
⑵本实验的关键环节及改进措施:
①做好本实验需要把握的关键环节:
需要把握的关键环节是正确编写FIR滤波程序,正确使用matlab软件编写噪声信号语句和使用fdatool工具设计滤波器系数。
②若重做本实验,为实现预期效果,仪器操作和实验步骤应如何改善:
若重做本次实验,我觉得对噪声信号可以多添加几个频率,这样实验可以更好的验证带通滤波器的效果,实验结果更具说服力。
⑶对实验的自我评价:
本次实验,我正确使用matlab中的fdatool工具设计带通滤波器的系数,并成功输出了.h文件,正确用matlab编写了产生噪声信号的语句,产生的噪声信号符号要求,编写了正确的fir滤波程序,通过仿真,从实验结果可以看出,设计的带通滤波器滤除了通带外的频率成分,只让通带内的频率成分通过,实验总体是成功的。
实验中,也发现了自己的不足之处,我觉得自己对ccs软件的使用还不熟悉,对所建项目的结果不熟悉,导致实验进展较慢,但是,通过自己琢磨,查看书上的概念和请教同学,我成功解决了试验中不熟悉和不理解的问题。
是实验顺利成功进行。
指导老师评语及得分:
成绩:
指导教师签名:
批阅日期: