《FIR滤波器DSP实现课程设计(共6页).doc》由会员分享,可在线阅读,更多相关《FIR滤波器DSP实现课程设计(共6页).doc(6页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上课程设计一 FIR滤波器的DSP实现一、课程设计目的1、复习用C语言对数字信号处理器的编程方法,熟悉如何使用C5000系列数字信号处理器中的模数转换器;2、复习用窗函数法设计FIR数字滤波器;3、对TMS320VC5509编程实现不同参数的FIR滤波器。二、课程设计原理(一)TMS320VC5509简介TMS320VC5509是TI公司出产的定点DSP芯片,它的源代码与C54x系列兼容,但速度更快,时钟频率可达300MHz,功耗是C54x系列的1/6。C5509的CPU内部有2个乘法器、1个40位的加法器、1个16位的加法器、4个累加器。共有12组总线,其中3组数据存
2、储器读总线,2组数据存储器写总线,及相应5组数据存储器地址总线,程序存储器读总线及地址线各一组。片内外设资源也比C54x系列数字信号处理器丰富,4通道10位A/D、DMA单元、RTC电路、McBSP、定时器等。本设计中将用到A/D单元。TMS320C5509A内部有一个4通道10位A/D,相关寄存器有4个,通过对这4个寄存器的操作来控制A/D模块。1.、ADC控制寄存器:ADCCTLADCSTART:0 无作用;1 启动A/D转换CHSELECT:从4个模拟通道中选择一个作为输入信号Reserved:保留2、ADC数据寄存器:ADCDATAADCBUSY:0 ADC数据准备好,即A/D转换结束
3、;1 正在进行A/D转换CHSELECT:从4个模拟通道中选择一个作为输入信号ADCDATA:A/D转换得到的10位二进制数3、ADC时钟控制寄存器:ADCCLKCTLIDLEEN:0 不允许ADC处于休眠状态;1 允许ADC处于休眠状态CPUCLKDIV:决定ADC时钟频率ADC Clock:(CPU Clock) / ( CPUCLKDIV+1)4、 ADC时钟分频寄存器:ADCCLKDIVSAMPTIMEDIV:与CONVRATEDIV一起决定采样/保持周期ADC Sample and Hold Time = (ADC Clock Period)*2*(CONVRATEDIV+1+ SA
4、MPTIMEDIV)CONVRATEDIV:决定A/D转换时钟频率ADC Conversion Clock = (ADC Clock) / (2*( CONVRATEDIV+1)完成一次A/D转换需要13个A/D转换时钟,所以,一次转换时间是t = 13 / ADC Conversion Clock一次完整的A/D转换时间是采样/保持周期和转换时间的和,采样频率是其倒数ADC Total Conversion Time = ADC Sample and Hold Period+tSampling Rate = 1/ ADC Total Conversion Time(二)窗函数法设计FIR滤波
5、器的原理根据阻带最小衰减和过渡带宽选择合适的窗函数,实现不同指标的各种类型FIR数字滤波器的设计。1、利用窗函数设计FIR滤波器的具体步骤如下:(1)由给定的滤波器的幅频响应参数求出理想的单位脉冲响应hd(n)(下面已给出,直接用)。(2)根据下表,由阻带最小衰减选择窗函数类型w(n),由设计指标和过渡带宽确定滤波器阶数N,对于高通滤波器,N只能取奇数。(3)计算滤波器的单位脉冲响应h (n) hd(n) w(n)。窗函数加窗后滤波器性能指标过渡带宽 阻带最小衰减/dB矩形窗0.92/N21三角形窗2.12/N25汉宁窗3.12/N44海明窗3.32/N53布拉克曼窗5.52/N742、理想滤
6、波器单位脉冲响应hd(n)(1) 理想低通滤波器单位脉冲响应(2) 理想高通滤波器单位脉冲响应(3) 理想带通滤波器单位脉冲响应(4) 理想带阻滤波器单位脉冲响应3、典型窗函数(1)矩形窗(Rectangle Window) (2)三角形窗(Bartlett Window)(3)汉宁(Hanning)窗,又称升余弦窗(4)海明(Hamming)窗,又称改进的升余弦窗(5)布拉克曼(Blankman)窗,又称二阶升余弦窗详细设计原理参见程佩青的数字信号处理教程第7.3节窗函数设计法。三、课程设计步骤观察实验箱各部分元件,连接电源线,打开实验箱上的主电源(位于左上角)和开发板电源(位于右下角)。1
7、、安装驱动(1)将服务器user14(或15、或16)上的FIRs文件夹拷贝到自己电脑的E盘中;(2)双击E盘FIRs文件夹中的usbdrv.exe,安装仿真器驱动程序到c:TI2下;(3)将方形下载线与实验箱上橙色铁盒接口相连;在弹出的“找到硬件向导”会话框中依次做如下操作:选“否,暂时不”下一步从列表指定位置安装下一步浏览框中选择c:TI2ICETEK完成。2、配置并运行CCS(1)双击Setup CCS2(C5000);(2)在Import Configuration框中选择ICETEK USB Emulator for C55x,点击Import,点击close。(3)清除其他项(右键
8、单击相应项,点击remove),保证My System下只有一项:C55xx XDS5510 Emulator,右键点击该项选Properties,在弹出的关联框中选Startup GEL Files标签,Startup GEL栏选择ICETCK-V5509-A.GEL,保存。关闭Setup CCS2(C5000)。至此,将目标板设置为通过USB口连接的实验箱。注意操作步骤的先后顺序必须正确(开实验箱电源、插USB下载线、运行CCS),若CCS不能运行则按此步骤重新操作。(4)打开CCS,在CCS下打开工程AD.pjt(project-open)。展开左侧source,双击main.c,阅读源
9、文件。3、准备信号源进行AD 输入(1)用一根信号线连接实验箱左侧信号源的波形输出A 端口和“A/D输入”模块的ADCIN2插孔,注意插头要插牢、插到底。这样,信号源波形输出A 的输出波形即可送到开发板的AD 输入通道0。(2)同理,用另一根信号线连接实验箱左侧信号源的波形输出B 端口和“A/D 输入”模块的ADCIN3插孔,使信号源波形输出B的输出波形送到开发板的AD输入通道1。(3)设置波形输出A:- 向内侧轻按波形频率选择钮、稍停顿,单步操作直到标有正弦波的指示灯点亮。- 向下拨动波形频率选择钮、稍停顿,单步操作直到标有100-1KHz 的指示灯点亮。- 上下调节幅值调整旋钮,将波形输出
10、A 的幅值调到最大。(4)设置波形输出B:- 向下拨动波形频率选择钮、稍停顿,直到标有1K-10KHz 的指示灯点亮。其他同上。4、将程序编译、链接、下载到目标板上,在指定位置设置断点,通过图形窗口观察并分析实验结果。(1)编译、链接无误后下载到目标板。(编译:Project - Compile File;链接:Project - Build;下载:File - Load Program - debug -*.out)(2)将鼠标移动到主程序中“asm ( nop);”行的起始位置,右键选“Toggle breakpoint”,在本行前出现红点,表示设置断点成功。选择菜单Debug - Ani
11、mate运行程序。(3)通过图形窗口观察输入、输出波形。选择菜单View - Graph- Time/Frequency,在弹出框中进行相应设置,图形观察窗口各项定义的意义参阅DSP课本369页。a) 观察低频信号图:选择菜单View-Graph-Time/Frequency,在弹出框中做如图所示设置。b)观察高频信号图:选择菜单View-Graph-Time/Frequency,在弹出框中做如下设置:Graph Title:AD1;Start Address:nADC1;其它值同上图。c)观察混频信号图:选择菜单View-Graph-Time/Frequency,在弹出框中做如下设置:Gra
12、ph Title:x;Start Address:xDSP Data Type:32-bit floating point;其他值同上图。d)观察滤波后信号图:选择菜单View-Graph-Time/Frequency,在弹出框中做如下设置:Graph Title:y;Start Address:yDSP Data Type:32-bit floating point;其他值同上图。5、一边调节输入信号的幅值、频率,一边观察各图的变化,分析仿真结果。6、停止程序运行(Debug-Halt)。认真阅读程序和参考资料,按“课程设计报告要求”完成报告。四、课程设计要求1、计算h(n)的子程序是哪个?
13、2、启动A/D模块工作的语句是哪两句?3、经A/D转换后得到的数字值放在哪个寄存器中?4、阅读main.c中的程序段:for(i=0; iLen; i+) rm= 0; r=0; if(iN) M=i; else M=N; for(j=0;jM;j+) r = hj*xi-j;rm = rm + r; yi = rm; 写出该程序段实现的算法。5、已知CPU频率是144MHz,问ADC的采样频率为多大?读懂程序,写出程序中实现的FIR滤波器的截止频率值,程序中选用的窗函数w(n)和滤波器阶数N。6、修改程序实现一个高通滤波器,通带截止频率fp=1300Hz,阻带截止频率fst=700Hz,阻带衰减不小于50dB。通过计算确定窗函数及滤波器阶数N,并在此基础上修改程序,实现该高通滤波器,并通过图形观察窗口观察实验结果。打印出信号的时域波形图(输入、混频、输出)。7、修改程序实现一个带通滤波器,通带频率是500Hz-5000Hz,过渡带宽为400Hz,阻带衰减不小于40dB。通过计算确定窗函数及滤波器阶数N,并在此基础上修改程序,实现该带通滤波器。打印出信号的时域波形图(输入、混频、输出)。五、课程设计报告要求1、写出课程设计题目、目的;2、完成课程设计要求中的内容,回答问题、编程、将实验结果打印出来。3、程序只写相应设计内容的主要部分,不用写程序的公共部分。专心-专注-专业
限制150内