这个程序我想看输入波形和滤波后的波形,,在哪设置输出关联文件 ;我老看不到输出波形 ,会的帮我一下 QQ 2606454510 谢
*******************************************************************
*用循环缓冲区和双操作数寻址方法实现FIR滤波器
*N=80,y(n)=h0*x(n)+h1*x(n-1)+...+h78*x(n-78)+h79*x(n-79)
*先用matlab,选择80点汉明窗设计一个截止频率为0.2pi的低通滤波器
******************************************************************
.title "fir4.asm"
.mmregs
.def start
.bss y,1 ;y
xn .usect "xn",80 ;xn
h .usect "h",80 ;h
;yn .usect "yn",80
PA0 .set 0002H ;数据输出端口
PA1 .set 0008H ;数据输入端口
.bss indata,1
.bss outdata,1
.data
table:
.word -1,-4,-8,-12,-18,-25,-33,-42
.word -52,-63,-75,-86,-96,-103,-108,-107
.word -102,-89,-69,-39,0,49,109,179
.word 260,350,449,555,667,782,898,1014
.word 1126,1232,1330,1417,1492,1552,1596,1622
.word 1631,1622,1596,1552,1492,1417,1330,1232
.word 1126,1014,898,782,667,555,449,350
.word 260,179,109,49,0,-39,-69,-89
.word -102,-107,-108,-103,-96,-86,-75,-63
.word -52,-42,-33,-25,-18,-12,-8,-4
start:
SSBX FRCT ;小数乘法
STM #xn,AR1
RPT #79
ST #0,*AR1+ ;把x(n)-x(n-79)赋始值0
STM #h,AR1
RPT #79
MVPD #table,*AR1+ ;把参数表复制到数据存储区
STM #xn+79,AR3 ;AR3-->x(n-79)
STM #h+79,AR4 ;AR4-->h(n-79)
STM #80,BK ;循环缓冲区大小80
STM #-1,AR0 ;指针调整值-1
LD #xn,DP ;DP指向xn所在页
PORTR PA1,@xn ;输入数据
LD #y,DP ;DP指向y所在页
FIR:
NOP
MVKD indata,*AR3+0%
RPTZ A,#79
MAC *AR3+0%,*AR4+0%,A ;A=(AR3)*(AR4)+A, AR3=AR3+AR0,AR4=AR4+AR0
STH A,@outdata
NOP
STH A,@y ;保存计算结果
PORTW @y,PA0 ;输出结果
BD FIR ;延时跳转
PORTR PA1,*AR3+0% ;新数据覆盖了最旧的数据
.end |