最新版DSP毕业课程设计报告Word文件下载.docx
- 文档编号:16597883
- 上传时间:2022-11-24
- 格式:DOCX
- 页数:13
- 大小:374.66KB
最新版DSP毕业课程设计报告Word文件下载.docx
《最新版DSP毕业课程设计报告Word文件下载.docx》由会员分享,可在线阅读,更多相关《最新版DSP毕业课程设计报告Word文件下载.docx(13页珍藏版)》请在冰豆网上搜索。
4.2CCS环境下FIR滤波器的设计及软件仿真
4.2.1程序流程图
4.2.2在CCS集成开发环境下新建FIR滤波器工程
4.2.3观察滤波前后的信号的时域波形及FFTMagnitude波形
4.2.4程序清单
五、总结
六、参考文献
数字信号处理(DSP)涉及的是数字形式信号的表示,信号及其所带信息的处理。
另外,数字信号处理是电路系统从模拟时代向数字时代前进的理论基础,为数字信号处理的应用而专门设计的可编程处理器,即数字信号处理器(DSP,Digitalsignalprocessor)。
数字信号处理器体现现代微电子技术,数字信号处理和计算机集成芯片制造技术三个学科发展成果的高性能处理器,在短时间内获得了广泛的应用。
DSP不仅快速实现了各种数字信号处理算法,而且扩展了数字信号处理的应用范围。
DSP在电子信息,通信,软件无线电,自动控制,仪器仪表,信息家电等科技领域获得了良好的应用效果。
数字信号处理系统最基本的应用系统通常有一个模数转换器,用来采集模拟信号。
当模拟信号转换成数字信号后,信号再经过DSP微处理器,DSP微处理器以数值计算的方式对数字信号进行变换,滤波,分析及综合等处理,最后进入数模转换,变成模拟信号进行输出。
最基本的应用系统通常还含有一个输入抗混叠滤波器和一个输出滤波器,他们分别用来滤除不需要的带外信号或平滑,重构处理过的输出模拟信号。
所以本次课程设计我做了一个FIR滤波器的设计。
1,学会使用MATLAB构建滤波器频域特性曲线并利用FDAtool提取滤波器参数;
2,能熟练地掌握FIR的应用,进行数字信号的处理,还需要进一步熟悉Matlab与DSP共同开发算法的特点,要能够具体地掌握建立工程,设计,实现并运行FIR模块程序。
1、利用Matlab软件的FDATool工具设计FIR滤波器,并提取滤波器参数;
2、在CCS集成开发环境下,利用第1步得到的滤波器参数,利用窗函数法设计FIR滤波器程序,观察输入信号及滤波后得到的输出信号的时域波形及FFTMagnitude波形;
滤波器就是在时间域或频域内,对已知激励产生规定响应的网络,使其能够从信号中提取有用的信号,抑制并衰减不需要的信号。
滤波器的设计实质上就是对提出的要求给出相应的性能指标,再通过计算,使物理可实现的实际滤波器频率响应特性逼近给出的频率响应特性。
FIR数字滤波器系统的传递函数为:
(1)
由此得到系统的差分方程:
(2)
若FIR数字滤波器的单位冲激响应序列为h(n),它就是滤波器系数向量b(n)。
传统的滤波器分析与设计均使用繁琐的公式计算,改变参数后需要重新运算,从而在分析与设计滤波器尤其是高阶滤波器时工作量特别大。
这里应用MATLAB设计FIR滤波器,根据给定的性能指标设计一个H(z),使其逼近这一指标,进而计算并确定滤波器的系数b(n),再将所设计滤波器的幅频响应、相频响应曲线作为输出,与设计要求进行比较,对设计的滤波器进行优化。
设计完成之后将得到FIR滤波器的单位冲激响应序列h(n)的各个参数值。
FDATool(FilterDesign&
AnalysisTool)是MATLAB信号处理工具箱里专用的滤波器设计分析工具,MATLAB6.0以上的版本还专门增加了滤波器设计工具箱(FilterDesignToolbox)。
FDATool界面为滤波器设计提供了一个交互式的设计环境,用户可以根据对幅值和零极点图的设置,设计几乎所有的基本的常规滤波器,包括FIR和IIR的各种设计方法,它们都具有标准的频率带宽结构。
采用FDATool设计法时其界面的上半部分为特性区,用来显示滤波器的各种特性;
下半部分为参数设定区,用来设定滤波器的各种参数。
(1)首先在命令窗口键入FDAtool命令,启动滤波器设计分析器,调出FDAtool界面,如图1所示。
图1 FDATool界面
(2)在FilterType选项中选Lowpass,在DesignMethod中选择FIR滤波器,接着在FIR中选择Window(窗函数)法。
(3)然后在FilterOrder中选择SpecifyOrder(为指定阶数),输入数值为“24”;
在Opitions框中选中“ScalePassband”;
在窗类型(Window:
)下拉框选择“Blackman”。
(4)在FrenquencySpecification选项中,将fs(为采样频率)、fc(为通带截止频率)中分别键入30000Hz和9600Hz。
(5)点击“DesignFilter”按钮,完成滤波器的设计。
具体参数及设计成功后的结果如图2所示。
图2 FIR低通滤波器设计
设计完成后,可以通过菜单选项Analysis来分析滤波器的幅频响应和相频响应特性。
点击Analysis中的MagnitudeResponse和PhaseResponse对幅频和相频响应进行分析。
(6)在FDATool中,选择Targets->
GenerateCHeader...,如图3所示。
图3导出滤波器系数
(7)点击Generate按钮,选择路径,即可输出前一步设计出的FIR滤波器的系数表。
(默认的系数表文件为fdacoefs.h)
(8)在Matlab中打开得到的fdacoefs.h的文件,如图4、图5所示。
图4查看fdacoefs.h文件
图5fdacoefs.h文件中的系数表
(9)取系数表中的数据小数点后3位有效值,得到如下内容:
constfloatB[25]={0.0,0.0,0.001,-0.002,-0.002,0.01,-0.009,
-0.018,0.049,-0.02,-0.11,0.28,0.64,0.28,
-0.11,-0.02,0.049,-0.018,-0.009,0.01,
-0.002,-0.002,0.001,0.0,0.0
};
4.2CCS环境下FIR滤波器的设计及软件仿真
(1)实验准备
设置软件仿真模式,启动CCS。
(2)建立工程
建立一个文件夹,存放在D:
\FIR,将D:
\课程设计\FIR滤波器\Fir源程序文件夹下的工程全部复制到D:
\FIR,在CCS中打开D:
\FIR\fir\fir.pjt工程,就会得到如图6所示的工程界面。
图6 FIR工程示例
(3)编译生成fir.out文件,通过File->
LoadProgram…装载该文件。
(4)设置波形时域观察窗口。
选择菜单View→Graph→Time/Frequency…,分别进行如图7、图8所示设置。
图7 输入数据时域波形观察
图8滤波后输出波形观察
(5)设置频域观察窗口,选择菜单View→Graph→Time/Frequency…,分别进行如图9、图10所示设置。
图9输入数据FFT分析图形观察
图10 滤波后输出数据的FFT图形观察
(6)设置断点。
在程序fir.c中,有注释断点的语句上设置软件断点。
(7)运行并观察结果。
选择Debug菜单的Run项,或按F5键运行程序。
观察到的图形如图11所示。
图11 滤波前后的数据波形及FFT分析的对比图
//FILE:
FIR.c
/******头文件******/
#include"
DSP281x_Device.h"
//DSP281xHeaderfileIncludeFile
DSP281x_Examples.h"
//DSP281xExamplesIncludeFile
#include"
math.h"
/*****函数原型声明******/
floatInputWave();
floatFIR();
/****全局变量******/
floatfXn[FIRNUMBER]={0.0};
floatfInput,fOutput;
floatfSignal1,fSignal2;
floatfStepSignal1,fStepSignal2;
floatf2PI;
inti;
floatfIn[256],fOut[256];
intnIn,nOut;
floatfHn[FIRNUMBER]={0.0,0.0,0.001,-0.002,-0.002,0.01,-0.009,
/********宏定义常量*******/
#definePI3.
#defineFIRNUMBER25
//主程序
main(void)
{
nIn=0;
nOut=0;
f2PI=2*PI;
fSignal1=0.0;
fSignal2=PI*0.1;
fStepSignal1=2*PI/30;
fStepSignal2=2*PI*1.4;
//第一步系统控制模块初始化
InitSysCtrl();
//第2步GPIO初始化
InitGpio();
//第三步禁止CPU中断
DINT;
//第四步初始PIE模块
InitPieCtrl();
IER=0x0000;
IFR=0x0000;
InitPieVectTable();
//第五步
//第六步初始化片内外模块
InitPeripherals();
//第七步
//第八步使能全局中断
EINT;
//第九步
//第十步进入无限循环
for(;
;
)
{
fInput=InputWave();
fIn[nIn]=fInput;
nIn++;
nIn%=256;
fOutput=FIR();
fOut[nOut]=fOutput;
nOut++;
if(nOut>
=256)
{
nOut=0;
/*请在此句上设置软件断点*/
}
}
}
//第11步其他功能函数或中断服务程序
floatInputWave()
for(i=FIRNUMBER-1;
i>
0;
i--)
fXn[i]=fXn[i-1];
fXn[0]=sin(fSignal1)+cos(fSignal2)/6.0;
fSignal1+=fStepSignal1;
if(fSignal1>
=f2PI)fSignal1-=f2PI;
fSignal2+=fStepSignal2;
if(fSignal2>
=f2PI)fSignal2-=f2PI;
return(fXn[0]);
}
floatFIR()
floatfSum;
fSum=0;
for(i=0;
i<
FIRNUMBER;
i++)
fSum+=(fXn[i]*fHn[i]);
return(fSum);
本次课程设计我做的是FIR滤波器的设计,滤波器就是在时间域或者频域内,对已知激励产生规定响应的网络,使其能够从信号中提取有用的信号,抑制并衰减不需要的信号。
滤波器的设计实质上就是对提出的要求给出相应的性能指标,再通过计算,是物理可实现的实际滤波器频率响应特性逼近给出的频率响应特性。
在本次课程设计中,应用Matlab与DSP微处理器实现FIR数字滤波器,在Matlab中利用FDATool设计滤波器,将滤波器系数以头文件形式导入CCS。
先使用Matlab的滤波器设计与分析工具FDATool具体设计一个加布莱克曼窗的FIR低通滤波器,采样频率为30000Hz,通带截止频率为9600Hz,24阶,设计完成后以获取滤波器的参数。
然后,在主程序中应用该滤波器,并模拟产生混频信号,然后再编写FIR函数程序对采样的信号进行滤波处理,最后将运行结果输出到图形窗中。
设置CCS运行在软件仿真状态,建立FIR数字滤波器工程,FIR数字滤波器主程序的内容仍然采用框架结构,分11步实现。
在本次课程设计中,我深知自己知识的不足,自己课程学的知识太肤浅,等到自己用的时候,才发现自己什么都不会用。
所以理论学习必须和实践相结合,这样才能学以致用,学的深入。
另外,通过这次课程设计才深知DSP的重要以及应用的广泛性,要想成为一个合格的电信电子信息爱好者,必须学好DSP.在学习中,在学习中,编程要认真,要不断地调试,要有耐心。
1,DSP原理及应用技术赵成
2,手把手教你学DSP
3,数字信号处理教程(第三版)程佩青
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最新版 DSP 毕业 课程设计 报告