基于DSP的FIR数字滤波器设计实验汇编语言Word格式.docx
- 文档编号:20240390
- 上传时间:2023-01-21
- 格式:DOCX
- 页数:12
- 大小:158.16KB
基于DSP的FIR数字滤波器设计实验汇编语言Word格式.docx
《基于DSP的FIR数字滤波器设计实验汇编语言Word格式.docx》由会员分享,可在线阅读,更多相关《基于DSP的FIR数字滤波器设计实验汇编语言Word格式.docx(12页珍藏版)》请在冰豆网上搜索。
FIR滤波器的设计可以用MATLAB窗函数法进行,选择Hamming窗,其程序为:
b=fir1(16,1500/8000*2);
得到FIR数字滤波器系数b为:
b0=0.00000000b9=0.28342322
b1=0.00482584b10=0.09725365
b2=0.00804504b11=-0.02903702
b3=-0.00885584b12=-0.04291741
b4=-0.0429174b13=-0.00885584
b5=-0.02903702b14=0.00804504
b6=0.09725365b15=0.00482584
b7=0.28342322b16=0.00000000
B8=0.37452503
在DSP汇编语言中,不能直接输入十进制小数,在MATLAB中进行如下转换:
h=round(b*2^15)
将系数转换为Q15的定点小数形式,为:
h(0)=0h(9)=9287
h
(1)=158h(10)=3187
h
(2)=264h(11)=-951
h(3)=-290h(12)=-1406
h(4)=-1406h(13)=-290
h(5)=-951h(14)=264
h(6)=3187h(15)=158
h(7)=9287h(16)=0
h(8)=12272
2、编写FIR数字滤波器的汇编程序
;
一个FIR滤波器源程序fir.asm
.mmregs
.globalstart
.defstart,_c_int00
INDEX.set1
KS.set256;
模拟输入数据缓冲区大小
N.set17
COFF_FIR.sect"
COFF_FIR"
;
FIR滤波器系数
.word0
.word158
.word264
.word-290
.word-1406
.word-951
.word3187
.word9287
.word12272
.word260
.data
INPUT.copy"
firin.inc"
;
模拟输入在数据存储区0x2400
OUTPUT.space1024;
输出数据在数据区0x2500
COFFTAB.usect"
FIR_COFF"
N
DATABUF.usect"
FIR_BFR"
BOS.usect"
STACK"
0Fh
TOS.usect"
1
.text
.asgAR0,INDEX_P
.asgAR4,DATA_P;
输入数据x(n)循环缓冲区指针
.asgAR5,COFF_P;
FIR系数表指针
.asgAR6,INBUF_P;
模拟输入数据指针
.asgAR7,OUTBUF_P;
FIR滤波器输出数据指针
_c_int00
bstart
nop
start:
SSBXFRCT
STM#COFFTAB,COFF_P
RPT#N-1;
将FIR系数从程序存储器移动
MVPD#COFF_FIR,*COFF_P+;
到数据存储器
STM#INDEX,INDEX_P
STM#DATABUF,DATA_P
RPTZA,#N-1
STLA,*DATA_P+;
将数据循环缓冲区清零
STM#(DATABUF+N-1),DATA_P;
数据缓冲区指针指向x[n-(N-1)]
STM#COFFTAB,COFF_P;
FIR_TASK:
STM#INPUT,INBUF_P
STM#OUTPUT,OUTBUF_P
STM#KS-1,BRC
RPTBDLOOP-1
STM#N,BK;
FIR循环缓冲区大小
LD*INBUF_P+,A;
装载输入数据
FIR_FILTER:
STLA,*DATA_P+%
RPTZA,N-1
MAC*DATA_P+0%,*COFF_P+0%,A
STHA,*OUTBUF_P+
LOOP:
ENDBEEND
.end
3、编写FIR滤波器链接命令文件
对应以上汇编程序的链接命令文件fir.cmd如下:
fir.obj
-mfir.map
-ofir.out
MEMORY
{
PAGE0:
ROM1(RIX):
ORIGIN=0080H,LENGTH=100H
PAGE1:
INTRAM1(RW):
ORIGIN=2400H,LENGTH=0200H
INTRAM2(RW):
ORIGIN=2600H,LENGTH=0100H
INTRAM3(RW):
ORIGIN=2700H,LENGTH=0100H
B2B(RW):
ORIGIN=0070H,LENGTH=10H
}
SECTIONS
.text:
{}>
ROM1PAGE0
.data:
INTRAM1PAGE1
FIR_COFF:
INTRAM2PAGE1
FIR_BFR:
INTRAM3PAGE1
.stack:
B2BPAGE1
4、实验步骤及结果
(1)在CCS上建立fir工程并运行fir.out程序。
建立fir工程,将fir.asm和fir.cmd添加到工程中,对汇编程序进行汇编、链接;
如果有错误则进行修改、调试,当汇编、链接成功后,加载并运行fir.out程序。
注意,将fir.asm、fir.cmd、firin.inc文件和fir.pjt工程文件放在同一文件夹下。
(2)观察输入信号的波形及频谱。
单击View→Graph→Time/Frequency命令,按
照如图3-4所示改变各选项。
其中,由.cmd可知输入信号的数据放在数据区
0x2400开始的256个单元中。
图3-4Graph属性设置窗口
单击OK按钮,则显示输入信号的时域波形如图3-5所示。
其波形是频率为1000Hz和2500Hz正弦信号的合成信号。
图3-5输入信号的时域波形
将图3-4中的DsiplayType项改为FFTMagnitude,则显示输入信号的频谱图,如图3-6所示。
图3-6输入信号的频谱图
3、观察输出信号的波形及频谱。
单击View→Graph→Time/Frequency命令,按照如图3-7所示改变各选项。
其中,由.cmd可知输出信号的数据放在数据区0x2500开始的256个单元中。
图3-7Graph属性设置窗口
单击OK按钮,将显示滤波器输出信号时域波形,如图3-8所示。
图3-8输出信号的时域波形
图3-9输出信号的频谱图
5、系数对换FIR滤波器的实现
系数对换FIR滤波器由于具有线性相位,因此应用很广。
一个N=8的FIR滤波器,若h(n)=h(N-1-n),就是对换FIR滤波器,其输出方程为:
总共有8次乘法和7次加法。
如改写成:
变成4次乘法和7次加法,乘法运算次数减少了一半,特别是当阶数较高时,利用系数对称的特点,可以明显减少运算量。
(1)FIR滤波器设计
在MATLAB下输入:
B=fir1(15,1500/8000*2);
H=round(b*2^15);
将系数转换为Q15的定点小数形式
则滤波器系数为:
h(0)=62h(8)=11439
h
(1)=188h(9)=6202
h
(2)=86h(10)=625
h(3)=-764h(11)=-1453
h(4)=-1453h(12)=-764
h(5)=625h(13)=86
h(6)=6202h(14)=188
h(7)=11439h(15)=62
系数对称FIR数字滤波器汇编程序如下:
输入样本数据个数
N.set16;
FIR滤波器阶数
COEF_FIR.sect"
COEF_FIR"
.word62
.word188
.word86
.word-764
.word-1453
.word625
.word6202
.word11439
.data
INPUT.copy"
输入数据在数据区0x2400
x_new.usect"
DATA1"
N/2
x_old.usect"
DATA2"
size.setN/2
bstart
SSBXFRCT;
设置FRCT(小数方式)位
STM#x_new,AR2;
AR2指向New缓冲区第一个单元
STM#x_old+(size-1),AR3;
AR3指向Old缓冲区最后一个单元
STM#-1,AR0
STM#INPUT,AR4;
模拟输入数据指针初始化
STM#OUTPUT,AR5;
滤波器输出数据指针初始化
STM#KS-1,BRC
STM#size,BK;
循环缓冲区块大小BK=size
LD*AR4+,A
STLA,*AR2
ADD*AR2+0%,*AR3+0%,A
RPTZB,#size-1
FIRS*AR2+0%,*AR3+0%,COEF_FIR
STHB,*AR5+
MAR*+AR2
(2)%
MAR*AR3+%
MVDD*AR2,*AR3+0%
ENDBEND
链接命令文件如下:
fir2.obj
-mfir2.map
-ofir2.out
ROM1(RIX):
ORIGIN=0080H,LENGTH=1000H
INTRAM1(RW):
INTRAM2(RW):
INTRAM3(RW):
B2B(RW):
.text:
COEF_FIR:
ROM1PAGE0
DATA1:
DATA2:
四、实验仪器设备
1.计算机
2.DES-320PP—A教学实验系统
五、思考题
1.实现系数对称FIR数字滤波器
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 DSP FIR 数字滤波器 设计 实验 汇编语言