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

📄 fir5.asm

📁 系数对称的FIR滤波器设计 * *N=8,h(n)=h(N-1-n) * *y(n)=h0*[x(n)+x(n-7)]+h1*[x(n-1)+x(n-6)] * * +h2*[x(n-
💻 ASM
字号:
*************************************************
*系数对称的FIR滤波器设计			*
*N=8,h(n)=h(N-1-n)				*
*y(n)=h0*[x(n)+x(n-7)]+h1*[x(n-1)+x(n-6)]	*
*     +h2*[x(n-2)+x(n-5)]+h3*[x(n-3)+x(n-4)]	*
*************************************************
	.title	"fir5.asm"
	.mmregs
	.def	start
	.bss	y,1
x_new	.usect	"DATA1",4
x_old	.usect	"DATA2",4
size	.set	4
PA0	.set	0
PA1	.set	1
	.data
COEF	.word	1*32768/10,2*32768/10	;系数对称,只给出N/2=4个
	.word	3*32768/10,4*32768/10
	
	.text
start:	LD	#x_new,DP
	SSBX	FRCT
	STM	#x_new,AR2		;AR2指向新缓冲区第一个单元
	STM	#x_old+(size-1),AR3	;AR3指向老缓冲区最后一个单元
	STM	#size,BK		;循环缓冲区长度=size
	STM	#-1,AR0			;仿效*ARn-%
	PORTR	PA1,@x_new		;输入x(n)
FIR:	ADD	*AR2+0%,*AR3+0%,A	;AH=x(n)+x(n-7)(第一次)
	RPTZ	B,#(size-1)		;B=0,下条指令执行size次
	FIRS	*AR2+0%,*AR3+0%,COEF	;B=B+AH*h0,AH=x(n-1)+x(n-6)...
	STH	B,@y			;保存结果
	PORTW	@y,PA0			;输出结果
	MAR	*+AR2(2)%		;修正AR2,指向新缓冲区最新的数据
	MAR	*AR3+%			;修正AR3,指向老缓冲区的最老的数据库
	MVDD	*AR2,*AR3+0%		;新缓冲区向老缓冲区传送一个数
	BD	FIR
	PORTR	PA1,*AR2		;输入新数据到新缓冲区
	.end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -