📄 fir1.asm
字号:
.mmregs
.def START1
K_DATA_SIZE .set 256
K_BUFFER_SIZE .set 16 ;输入数据的个数
K_SIZE .set 10
K_STACK_SIZE .set K_DATA_SIZE
STACK .usect "stack",K_BUFFER_SIZE
SYSTEM_STACK .set K_STACK_SIZE+STACK
DATA_DP .usect "filter_vars",0
filterdata .usect "filter_vars",K_DATA_SIZE
x_new .usect "DATA1",K_BUFFER_SIZE
x_old .usect "DATA2",K_BUFFER_SIZE
;N=256;F=1000;T=1/F; %抽样频率设置
;n=1:N;f1=300;f2=100; %信号的频率设置
;x=1.3*sin(2*pi*f1*n*T)+sin(2*pi*f2*n*T)+sin(2*pi*(f1+20)*n*T) %信号的产生:f1=300HZ,f2=100Hz,f3=320Hz
.data
.global inputdata
inputdata
.word 27290,-5836,-618,28064,-5878,-23059,8111,-5551,-25087,9511,16988,-6574,10313,19495
.word -9511,-11396,1812,-11850,-13424,5878,8419,4356,9574,9193,0,-9193,-9574,-4356
.word -8419,-5878,13424,11850,-1812,11396,9511,-19495,-10313,6574,-16988,-9511,25087,5551
.word -8111,23059,5878,-28064,618,5836,-27290,0,27290,-5836,-618,28064,-5878,-23059
.word 8111,-5551,-25087,9511,16988,-6574,10313,19495,-9511,-11396,1812,-11850,-13424,5878
.word 8419,4356,9574,9193,0,-9193,-9574,-4356,-8419,-5878,13424,11850,-1812,11396
.word 9511,-19495,-10313,6574,-16988,-9511,25087,5551,-8111,23059,5878,-28064,618,5836
.word -27290,0,27290,-5836,-618,28064,-5878,-23059,8111,-5551,-25087,9511,16988,-6574
.word 10313,19495,9511,-11396,1812,-11850,-13424,5878,8419,4354,9574,9193,0,-9193
.word -9574,-4356,-8419,-5878,13424,11850,-1812,11396,9511,-19495,-10313,6574,-16988,-9511
.word 25087,5551,-8111,23059,5878,-28064,618,5836,-27290,0,27290,-5836,-618,28064
.word -5878,-23059,8111,-5551,-25087,9511,16988,-6574,10313,19495,-9511,-11396,1812,-11850
.word -13424,5878,8419,4356,9574,9193,0,-9193,-9574,-4356,-8419,-5878,13424,11850
.word -1812,11396,9511,-19495,-10313,6574,-16988,-9511,25087,5551,-8111,23059,5878,-28064
.word 618,5836,-27290,0,27290,-5836,-618,28064,-5878,-23059,8111,-5551,-25087,9511
.word 16988,-6574,10313,19495,-9511,-11396,1812,-11850,-13424,5878,8419,4356,9574,9193
.word 0,-9193,-9574,-4356,-8419,-5878,13424,11850,-1812,11396,9511,-19495,-10313,6574
.word -16988,-9511,25087,5551,-8111,23059,5878,-28064,618,5836,-27290,0,27290,-5836
.word -618,28064,-5878,-23059
coef
.word -116,-665,-1043,-112,1379,584,-2392,-1975,5475,13951
.text
.asg AR1,INIT_P
.asg AR2,NEW_P
.asg AR3,OLD_P
.asg AR4,OUTPUT
.asg AR5,ORIGIN
.asg AR6,INPUT
START1: SSBX FRCT
SSBX INTM
LD #DATA_DP,DP
STM #STACK+K_BUFFER_SIZE,SP
CALL filter_start
NOP
NOP
NOP
LOOP: B LOOP
filter_start: STM #x_new,INIT_P ;使用0初始化输入数据地址单元(输入到混合缓冲区)
RPTZ A,#K_BUFFER_SIZE-1
STL A,*INIT_P+
STM #x_old,INIT_P ;使用0初始化输入数据单元(输入到自适应滤波器)
RPTZ A,#K_BUFFER_SIZE-1
STL A,*INIT_P+
STM #K_SIZE,BK
STM #-1,AR0
STM #inputdata,ORIGIN
STM #x_new,NEW_P
STM #x_old+(K_SIZE-1),OLD_P
STM #filterdata,OUTPUT
STM #K_DATA_SIZE-1,BRC
RPTB filter_end-1
ADD *NEW_P+0%,*OLD_P+0%,A
RPTZ B,#K_SIZE-1
FIRS *NEW_P+0%,*OLD_P+0%,coef
STH B,*OUTPUT+
MAR *+NEW_P(2)%
MAR *OLD_P+%
MVDD *NEW_P,*OLD_P+0%
MVDD *ORIGIN+,*NEW_P
filter_end: NOP
RET
.end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -