文本阅读:
第17章数字信号处理709
17.8.2德州仪器(Texas| nstruments)公司的代码德州仪器(Texas Instruments)公司生产的TMS320Xx芯片上运行的这个五系数FIR滤波器代码如下
端口获得新的输入数值XN
目乘
乘
与前面的步骤类似
把最
乘法的结果加到累加
把结果存到YN中
把响应输出到端
获取下一个采样点
我们特别感兴趣的是LTD指令,它把一个数值加载寄存器中,然后把最后一次乘
的结果加到累加器上,再把这个数值移位到下一个更高的内存地址第1行把一个输入数据字从一个VO端口移动到内存位置XN处。第2行令累加器归零。
第3行把最新的数值XNM4加载到T寄存器中。第4行用H4中的系数乘以T寄存器中的内容第5行和第
把ⅩNM3与H3乘在一起,并用LTD指令把第4行乘法的结果加到累加器上类似地,从第7-12行,滤波器的其他抽头也被相乘和累加把最后的乘法加到累
加器
因此累加器中就包含了经过滤波的输出值,它与第1行的输入值相对第14行
把这个输出传送到YN。第15行把内存位置YN中的内容传输到WO端口。第16行让程序返回到第1行,在那里会接收下一个输入数值。
当接收到一个新的输入时,过去的数值就被移
内存位置;XN被移动到XNM
被移动到XNM2,XNM2被移动到XNM3,XNM3被移动到XNM4,XNM4则被丢弃。如前所述,虽然这些移
用额外的指令完成,但LTD指令(这是体现并行处理威力的例子)会在每个数值被传输到T寄存器以后把它们移位到下一个更高的地