老古开发网首页
导航:老古开发网首页文章索引索引第2220页文章分类DSP数字信号处理第23页→[TI C54xx DSP 十天速成讲义 <八>]
| -文章搜索 - 最新文章 - |

第1657篇:TI C54xx DSP 十天速成讲义 <八>

发布时间:2006年6月18日 点击次数:1120
来源:   作者:
 
实验7.2 IIR
.mmregs
.global codestart
K_DATA_SIZE .set 256 ;输入数据个数
K_BUFFER_SIZE .set 8 ;缓冲大小,需是2的整数次幂,并大于a、b的个数
K_STACK_SIZE .set 256 ;堆栈大小
K_A .set 3 ;a向量个数
K_B .set 4 ;b向量的个数
K_CIR .set 4 ;>=a、b的长度,也可以设为K_BUFFER_SIZE-1

STACK .usect "stack",K_STACK_SIZE
SYSTEM_STACK .set K_STACK_SIZE+STACK

.data
DATA_DP:
.align K_BUFFER_SIZE
bufferdatax: .space K_BUFFER_SIZE*16 ;size in bits
bufferdatay: .space K_BUFFER_SIZE*16 ;size in bits
inputdata: .word 0
filterdata: .word 0

.text
.asg AR2, ORIGIN
.asg AR3, INPUT
.asg AR4, FILTER
.asg AR5, OUTPUT


codestart:
SSBX FRCT
SSBX INTM
LD #DATA_DP,DP
STM #SYSTEM_STACK, SP
CALL filter_start
NOP
NOP
NOP

LOOP:
B LOOP

.def b0,b1,b2,b3,a1,a2,a3;
.def filter_start
b0 .set 1456H ;b1=0.1589 *2^15
b1 .set 3D07H ;b2=0.4768
b2 .set 3D07H ;b3=0.4768
b3 .set 1456H ;b4=0.1589
a1 .set -103AH ;a1=-0.1268
a2 .set 430FH ;a2=0.5239
a3 .set -1016H ;a3=-0.1257

;=================================================================
;滤波子程序:filter_start
;=================================================================
.text
filter_start:
STM #K_CIR,BK ;设置环形buffer的大小
STM #1,AR0 ;和步长
STM #inputdata,ORIGIN ;AR2
STM #bufferdatax,INPUT ;AR3
STM #bufferdatay,FILTER ;AR4
STM #filterdata,OUTPUT ;AR5
;初始化
RPT #K_B-1-1 ;
ST #0,*INPUT+0% ;x(-1)、x(-2)、x(-3)设为0
RPT #K_A-1
ST 0,*FILTER+% ;y(-1)、y(-2)、y(-3)设为0
STM #bufferdatay,FILTER

STM #K_DATA_SIZE-1,BRC ;块循环次数,头三个值已经直接通过了
RPTB filter_end-1 ;块循环结束位置
;可以把块循环改成中断调用,有新数据就中断一次。
nop ;数据从件导入点,加nop保证数据在使用前导入
nop
MVDD *ORIGIN,*INPUT ;新数据
MAR *+INPUT(-K_B+1)%
MPY *INPUT+0%,#b3,B ;B=x(n-3)*b3, i=i+1
LD B,A
MPY *INPUT+0%,#b2,B ;B=x(n-2)*b2, i=i+1
ADD B,A
MPY *INPUT+0%,#b1,B ;B=x(n-1)*b1, i=i+1


ADD B,A
MPY *INPUT+0%,#b0,B ;B=x(n)*b0, i=i+1


ADD B,A
MPY *FILTER+0%,#a3,B ;B=y(n-3)*a3, j=j+1 j=n-3为y的指针



ADD B,A
MPY *FILTER+0%,#a2,B ;B=y(n-2)*a2, j=j+1


ADD B,A
MPY *FILTER+0%,#a1,B ;B=y(n-1)*a1, j=j+1


ADD B,A
STH A,*FILTER ;传送y(n)至y区, ;16位小数相乘得到的是32位小数
STH A,*OUTPUT ;传送y(n)至结果区 ;取前16位就行了
MAR *+FILTER(-K_A+1)%
nop
nop ;数据文件导出点,加nop保证数据在导出前已更新
filter_end: NOP ;循环结束
RET
.end

欢迎进入老古论坛进行讨论
[DSP数字信号处理] 相关文章:
TI C54xx DSP 十天速成讲义 <七>
简介:
实验7.1 FIR ;============================================================= ; fir4.asm ;用用循环缓冲区和双操作数寻址方法实现FIR滤波器 ;先用matlab,选择80点汉明窗设计一个截止频率为0.2π的低通滤波器 ; 本例与前不同的是系数直接引用程序存储器的系数表 ;N=5 y(n)=h0*x(n)+h1*x(n-1)+h2*x(n-2)+h3*x(n-3)+h4*x(n-4) ;================......

ISP1362 USB OTG控制芯片及其应用[转]
TMS320VC5402通用I/O资源及其应用
32位CPU架构具有DSP指令和JAVA引擎
温控芯片解决处理器发热量激增问题
 
下一个:[显示技术]韩国三星SDI公司开发新的3D技术
简介:
  全球等离子电视显示屏巨头韩国三星SDI公司日前宣布,他们已经开发出一种新的技术,可以在手机或者其他的移动设备上展示三维图相。   该公司声称,他们是第一家开发被称为下一代显示技术的“主动矩阵有机发光二极体面板”(AMOLED)的公司,新的产品在展示3D图相方面要比目前的液晶显示器快得多,他们开发的适用于手机的10.9厘米“主动矩阵有机发光二极体面板”被认为在3D图相显示方面是世界上清晰度最高的。该公司的负责人表示,他们分级开发应用于笔记本电脑以及电视的新产品,他同时指出:“在未......

上一个:[DSP数字信号处理]TI C54xx DSP 十天速成讲义 <五>

老古开发网版权所有 2006年9月 asp.Net V2.0 设计:老古
页面缓存:30分钟 执行时间:47毫秒