DSP实现FIR数字滤波器,用汇编语言如何编写程序

DSP实现FIR数字滤波器,用汇编语言如何编写程序,第1张

线性缓冲区实现FIR滤波器

程序清单:

.title “FIR1.ASM”

.mmregs

.def start

x .usect “x”,8

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

.text

start: SSBX FRCT

STM #x+7,AR2

STM #6,AR0

LD #x+1,DP

PORTR PA1,@x+1

FIR1: RPTZ A,#6

MACD *AR2-,COEF,A

STH A,*AR2

PORTW *AR2+,PA0

BD FIR1

PORTR PA1,*AR2+0

.end

用循环缓冲区实现FIR滤波器

程序清单:

.title “FIR2.ASM”

.mmregs

.def start

.bss y,1

xn .usect “xn”,7

b0 .usect “b0”型谨运,7

PA0 .set 0

PA1 .set 1

.data

table: .word 1*32768/10

.word 2*32768/10

.word 3*32768/10

.word 4*32768/10

.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,@xn

FIR2: RPTZ A,#6

MAC *AR2+0%,*AR3+0%,A

STH A,@y

PORTW @y,PA0

BD FIR2

PORTR PA1,*AR2+0%

.end

链接命令晌者文件

FIR2.obj

vectors.obj

-o FIR2.out

-m FIR2.map

-e start

MEMORY

{

PAGE0:

EPROM:org=0E000h,

len=1000h

VECS: org=0FF80h,

len=0080h

PAGE1:

SPRAM:org=0060h,

len=0020h

DARAM:org=0080h,

len=1380h

}

SECTIONS

{

.text:>EPROM PAGE 0

.data:>EPROM PAGE 0

.bss :>SPRAM PAGE 1

xn:align(8){}>DARAM PAGE 1

b0:align(8){}>DARAM PAGE 1

.vections:VECS PAGE 0

}

xiexie

可以的。

1、一般采用现成的DSP板(自己做板价格更高、而且还有风险),做算法还是配置高一些为好,推荐TMS320C6000系列DSP芯片。

2、接下来就是用C语言实现算法(这纤丛种程序可以搜一搜,下载,改改就是);

3、通过仿真器将程序下载至DSP板,调试,一般要用到CCS6000仿真程序;

4、调试成功后,将调试成功的程序写入裂锋DSP的肆竖晌FLASH存储器即可。

当然,说起来容易,调试起来可是要经验和耐心的。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12286230.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存