⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fir1.asm

📁 基于matlab和DSP的IIR/FIR 滤波器
💻 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 + -