DSP应用程序设计.ppt
《DSP应用程序设计.ppt》由会员分享,可在线阅读,更多相关《DSP应用程序设计.ppt(48页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第6章章应用程序设计应用程序设计6.1 FIR滤波器的DSP实现在数字信号处理中,滤波占有极其重要的地位。数字滤波是语音处理、图像处理、模式识别、频谱分析等应用中的基本处理算法。6.1.4 FIR滤波器的滤波器的DSP实现实现FIR滤波器的输出表达式:滤波器的输出表达式:y(n)=b0 x(n)+b1x(n-1)+bn-1 x(n-N+1)基本算法基本算法:采用采用乘法累加运算乘法累加运算。即不。即不断地输入样本断地输入样本x(n),经过经过z-1延时后延时后,再进行乘法再进行乘法-累加,最后输出滤波结累加,最后输出滤波结果果y(n)。(指令:指令:MAC/MACD)Z-1 算法算法 的实现
2、的实现常用:常用:线性缓冲区法线性缓冲区法和和循环缓冲区法循环缓冲区法线性缓冲区法:线性缓冲区法:顶部为低地址单元,存放最新样本顶部为低地址单元,存放最新样本底部为高地址单元,存放最老样本底部为高地址单元,存放最老样本指针指针ARx指向缓冲区底部指向缓冲区底部线性缓冲区线性缓冲区只能映射到只能映射到DARAM存储器存储器(1次读和次读和1次写)次写)数据的存放:输入数据:存放在数据存储器系数表:存放在程序存储器图6.1.8常用指令:DELAYMACD例:用线性缓冲区法实现例:用线性缓冲区法实现FIR滤波器滤波器数据存储器数据存储器数据存储器数据存储器暂存暂存暂存暂存y(n)y(n)x(n)x(
3、n)x(n-1)x(n-1)x(n-2)x(n-2)x(n-3)x(n-3)x(n-4)x(n-4)x(n-5)x(n-5)x(n-6)x(n-6)程序存储器程序存储器程序存储器程序存储器b b6 6b b5 5b b4 4b b3 3b b2 2b b1 1b b0 0 x x x xCOEFCOEFCOEFCOEF双操作数寻址指令:双操作数寻址指令:MACD*AR2-MACD*AR2-,COEFCOEF,A AAR2AR2AR2AR2x(n-6)x(n-6)x(n-5)x(n-5)程序清单:.title “FIR1.ASM”.mmregs .def start x .usect “x”,8
4、 PA0 .set 0 PA1 .set 1 .data COEF:.word 1*32768/10 .word 2*32768/10 .word -4*32768/10 .word 3*32768/10 .word -4*32768/10 .word 2*32768/10 .word 1*32768/10 .textstart:SSBX FRCT STM#x+7,AR2 STM#6,AR0 LD#x+1,DP PORTR PA1,x+1FIR1:RPTZ A,#6 MACD *AR2-,COEF,A STH A,*AR2 PORTW*AR2+,PA0 BD FIR1 PORTR PA1,*A
5、R2+0 .end 循环缓冲区法:数据存储器数据存储器数据存储器数据存储器x(n)x(n)x(n)x(n)x(n-7)x(n-7)x(n-7)x(n-7)x(n-1)x(n-1)x(n-1)x(n-1)x(n-2)x(n-2)x(n-2)x(n-2)x(n-3)x(n-3)x(n-3)x(n-3)x(n-4)x(n-4)x(n-4)x(n-4)x(n-5)x(n-5)x(n-5)x(n-5)x(n-6)x(n-6)x(n-6)x(n-6)数据存储器数据存储器数据存储器数据存储器x(n)x(n)x(n)x(n)x(n+1)x(n+1)x(n+1)x(n+1)x(n-1)x(n-1)x(n-1)x
6、(n-1)x(n-2)x(n-2)x(n-2)x(n-2)x(n-3)x(n-3)x(n-3)x(n-3)x(n-4)x(n-4)x(n-4)x(n-4)x(n-5)x(n-5)x(n-5)x(n-5)x(n-6)x(n-6)x(n-6)x(n-6)ARxARxARxARx数据存储器数据存储器数据存储器数据存储器x(n)x(n)x(n)x(n)x(n+1)x(n+1)x(n+1)x(n+1)x(n-1)x(n-1)x(n-1)x(n-1)x(n-2)x(n-2)x(n-2)x(n-2)x(n-3)x(n-3)x(n-3)x(n-3)x(n-4)x(n-4)x(n-4)x(n-4)x(n-5)x
7、(n-5)x(n-5)x(n-5)x(n+2)x(n+2)x(n+2)x(n+2)ARxARxARxARxARxARxARxARx循环缓冲区法循环缓冲区法从最老样本开始取数从最老样本开始取数一个一个y值求出后,值求出后,输入最新样本替代最输入最新样本替代最老样本老样本,其他数据位置不变,其他数据位置不变双操作数寻址:双操作数寻址:DARAM(2次读)次读)数据的存放:数据的存放:输入数据:存放在数据存储器输入数据:存放在数据存储器系数表:存放在数据存储器系数表:存放在数据存储器用用循环寻址循环寻址,BK(循环缓冲区长度(循环缓冲区长度N)要求:要求:缓冲区起始地址的缓冲区起始地址的k个最低有效
8、位必须为个最低有效位必须为0,且满足,且满足2kN。例如:例如:N=31,k的最小值为的最小值为5,则缓冲,则缓冲区的起始地址:区的起始地址:XXXX XXXX XXX0 0000B例:用循环缓冲区法实现例:用循环缓冲区法实现FIRFIR滤波器滤波器 .title“FIR2.ASM”.mmregs .def start .bss y,1xn .usect“xn”,7b0 .usect“b0”,7PA0 .set 0PA1 .set 1 .datatable:.word 1*32768/10 .word 2*32768/10 .word 3*32768/10 .word 4*32768/10 .
9、word 5*32768/10 .word 6*32768/10 .word 7*32768/10 .text start:SSBX FRCT STM#b0,AR1 RPT#6 MVPD table,*AR1+STM#xn+6,AR2 STM#b0+6,AR3 STM#7,BK STM#-1,AR0 LD#xn,DP PORTR PA1,xnFIR2:RPTZ A,#6 MAC*AR2+0%,*AR3+0%,A STH A,y PORTW y,PA0 BD FIR2 PORTR PA1,*AR2 (PORTR PA1,*AR2+0%).end y?链接命令文件:链接命令文件:vectors.o
10、bjfir.obj-o fir.out-m fir.map-estartMEMORYPAGE 0:EPROM:o=E000H l=1000H VECS:o=FF80H l=0080HPAGE 1:SPRAM:o=0060H l=0020H DARAM:o=0080H l=1380H SECTIONS.text:EPROM PAGE 0 .vectors:VECS PAGE 0.data:EPRAM PAGE 0.bss:SPRAM PAGE 1xn:align(8)DARAM PAGE 1b0:align(8)DARAM PAGE 1 6.1.5 FIR滤波器的设计实例滤波器的设计实例6.1.
11、5 FIR滤波器的设计实例滤波器的设计实例 设计一个设计一个FIRFIR低通滤波器,其设计低通滤波器,其设计参数:参数:滤波器阶数:滤波器阶数:N=40N=40;截止频率:截止频率:wp=0.35,ws=0.4。滤波器系数可由滤波器系数可由MATLABMATLAB中的中的fir2fir2函数函数产生,函数调用格式:产生,函数调用格式:1.1.由给定的设计参数确定滤波器的系数由给定的设计参数确定滤波器的系数 f=0 0.3535 0.4 1;m=1 1 0 0;b=fir2(39,f,m)滤波器的幅频、相频特性滤波器的幅频、相频特性,其格式:其格式:freqz(b,512512,10001000
12、)第第第第6 6 6 6章章章章 应用程序设计应用程序设计应用程序设计应用程序设计滤波器的频率特性滤波器的频率特性滤波器的频率特性滤波器的频率特性:1.1.1.1.由给定的设计参数确定滤波器的系数由给定的设计参数确定滤波器的系数由给定的设计参数确定滤波器的系数由给定的设计参数确定滤波器的系数 第第第第6 6 6 6章章章章 应用程序设计应用程序设计应用程序设计应用程序设计 采用循环缓冲区实现采用循环缓冲区实现采用循环缓冲区实现采用循环缓冲区实现FIRFIRFIRFIR滤波器的源程序如下:滤波器的源程序如下:滤波器的源程序如下:滤波器的源程序如下:2 2 2 2汇编源程序汇编源程序汇编源程序汇编
13、源程序 .title title title title “FIRFIRFIRFIR.ASMASMASMASM”.mmregsmmregsmmregsmmregs .bssbssbssbss y y y y,1 1 1 1K_FIR_BFFRK_FIR_BFFRK_FIR_BFFRK_FIR_BFFR .set 40set 40set 40set 40PA0 PA0 PA0 PA0 .set 0set 0set 0set 0PA1 PA1 PA1 PA1 .set 1set 1set 1set 1FIR_COFF_TABLE FIR_COFF_TABLE FIR_COFF_TABLE FIR_
14、COFF_TABLE .usectusectusectusect “FIR_COFFFIR_COFFFIR_COFFFIR_COFF”,40 40 40 40 ;定义数据存储空间定义数据存储空间定义数据存储空间定义数据存储空间D_DATA_BUFFER D_DATA_BUFFER D_DATA_BUFFER D_DATA_BUFFER .usectusectusectusect “FIR_BFRFIR_BFRFIR_BFRFIR_BFR”,40 40 40 40 ;定义数据存储空间定义数据存储空间定义数据存储空间定义数据存储空间 .datadatadatadataCOFF_FIR_STARTC
15、OFF_FIR_STARTCOFF_FIR_STARTCOFF_FIR_START:.word word word word-7 7 7 7*32768/10000,332768/10000,332768/10000,332768/10000,3*32768/1000032768/1000032768/1000032768/10000 ;b b b b0 0 0 0,b b b b1 1 1 1 .word 14word 14word 14word 14*32768/10000,1032768/10000,1032768/10000,1032768/10000,10*32768/1000032
16、768/1000032768/1000032768/10000 ;b b b b2 2 2 2,b b b b3 3 3 3 .word 3word 3word 3word 3*32768/10000,32768/10000,32768/10000,32768/10000,-7 7 7 7*32768/10000 32768/10000 32768/10000 32768/10000 ;b b b b38383838b b b b39393939第第第第6 6 6 6章章章章 应用程序设计应用程序设计应用程序设计应用程序设计 .texttexttexttext .def FIR_INITdef
17、 FIR_INITdef FIR_INITdef FIR_INIT .def FIR_TASKdef FIR_TASKdef FIR_TASKdef FIR_TASKFIR_INITFIR_INITFIR_INITFIR_INIT:SSBX FRCT SSBX FRCT SSBX FRCT SSBX FRCT ;设置小数乘法设置小数乘法设置小数乘法设置小数乘法 STM#FIR_COFFSTM#FIR_COFFSTM#FIR_COFFSTM#FIR_COFF,AR5 AR5 AR5 AR5 ;AR1AR1AR1AR1指向指向指向指向b b b b0 0 0 0单元单元单元单元 RPT#K_FIR
18、_BFFRRPT#K_FIR_BFFRRPT#K_FIR_BFFRRPT#K_FIR_BFFR-1 1 1 1 ;设置传输次数设置传输次数设置传输次数设置传输次数 MVPD#COFF_FIR_STARTMVPD#COFF_FIR_STARTMVPD#COFF_FIR_STARTMVPD#COFF_FIR_START,*AR5+*AR5+*AR5+*AR5+;系数系数系数系数b b b bi i i i传输至数据区传输至数据区传输至数据区传输至数据区 STM#D_DATA_BUFFERSTM#D_DATA_BUFFERSTM#D_DATA_BUFFERSTM#D_DATA_BUFFER,AR4
19、AR4 AR4 AR4;D_DATA_BUFFERD_DATA_BUFFERD_DATA_BUFFERD_DATA_BUFFER缓冲区清缓冲区清缓冲区清缓冲区清0 0 0 0 RPTZ A RPTZ A RPTZ A RPTZ A,#K_FIR_BFFR#K_FIR_BFFR#K_FIR_BFFR#K_FIR_BFFR-1 1 1 1 STL A STL A STL A STL A,*AR4+AR4+AR4+AR4+STM#STM#STM#STM#(D_DATA_BUFFER+K_FIR_BFFRD_DATA_BUFFER+K_FIR_BFFRD_DATA_BUFFER+K_FIR_BFFRD
20、_DATA_BUFFER+K_FIR_BFFR-1 1 1 1),AR4AR4AR4AR4 STM#STM#STM#STM#(FIR_COFF_TABLE+K_FIR_BFFRFIR_COFF_TABLE+K_FIR_BFFRFIR_COFF_TABLE+K_FIR_BFFRFIR_COFF_TABLE+K_FIR_BFFR-1 1 1 1),AR5AR5AR5AR5第第第第6 6 6 6章章章章 应用程序设计应用程序设计应用程序设计应用程序设计 STM#STM#STM#STM#-1 1 1 1,AR0AR0AR0AR0 ;设置双操作数减量设置双操作数减量设置双操作数减量设置双操作数减量 LD
21、#D_DATA_BUFFERLD#D_DATA_BUFFERLD#D_DATA_BUFFERLD#D_DATA_BUFFER,DPDPDPDP ;设置页指针设置页指针设置页指针设置页指针 PORTR PA1PORTR PA1PORTR PA1PORTR PA1,D_DATA_BUFFERD_DATA_BUFFERD_DATA_BUFFERD_DATA_BUFFER ;输入输入输入输入x x x x(n n n n)FIR_TASKFIR_TASKFIR_TASKFIR_TASK:STM#K_FIR_BFFRSTM#K_FIR_BFFRSTM#K_FIR_BFFRSTM#K_FIR_BFFR,B
22、KBKBKBK RPTZ A RPTZ A RPTZ A RPTZ A,#K_FIR_BFFR#K_FIR_BFFR#K_FIR_BFFR#K_FIR_BFFR-1 1 1 1 ;重复操作重复操作重复操作重复操作 MAC MAC MAC MAC *AR4+0%AR4+0%AR4+0%AR4+0%,*AR5+0%AR5+0%AR5+0%AR5+0%,A A A A ;双操作数乘法双操作数乘法双操作数乘法双操作数乘法-累加累加累加累加 STH ASTH ASTH ASTH A,yyyy ;暂存暂存暂存暂存y y y y(n n n n)PORTW y PORTW y PORTW y PORTW y
23、,PA0PA0PA0PA0 ;输出输出输出输出y y y y(n n n n)BD FIR_TASK BD FIR_TASK BD FIR_TASK BD FIR_TASK ;循环循环循环循环 PORTR PA1PORTR PA1PORTR PA1PORTR PA1,*AR4+0%AR4+0%AR4+0%AR4+0%;输入最新样本,并修正输入最新样本,并修正输入最新样本,并修正输入最新样本,并修正AR3AR3AR3AR3 .endendendend第第第第6 6 6 6章章章章 应用程序设计应用程序设计应用程序设计应用程序设计 在在在在C5402DSPC5402DSPC5402DSPC5402
24、DSP硬件系统中,用户可使用的存储器硬件系统中,用户可使用的存储器硬件系统中,用户可使用的存储器硬件系统中,用户可使用的存储器资源:资源:资源:资源:3 3 3 3汇编源程序的链接命令文件汇编源程序的链接命令文件汇编源程序的链接命令文件汇编源程序的链接命令文件 程序存储空间:程序存储空间:程序存储空间:程序存储空间:片内片内片内片内0080H0080H0080H0080H 3FFFH3FFFH3FFFH3FFFH,片外片外片外片外48000H48000H48000H48000H 4FFFFH4FFFFH4FFFFH4FFFFH;数据存储空间:数据存储空间:数据存储空间:数据存储空间:片内片内片
25、内片内0080H0080H0080H0080H 3FFFFH3FFFFH3FFFFH3FFFFH,片外片外片外片外4000H4000H4000H4000H 7FFFH7FFFH7FFFH7FFFH。第第第第6 6 6 6章章章章 应用程序设计应用程序设计应用程序设计应用程序设计FIRFIRFIRFIR滤波器源程序的链接命令文件如下:滤波器源程序的链接命令文件如下:滤波器源程序的链接命令文件如下:滤波器源程序的链接命令文件如下:/*SOLUTION FILE FOR FIR SOLUTION FILE FOR FIR SOLUTION FILE FOR FIR SOLUTION FILE FOR
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- DSP 应用 程序设计
限制150内