DSP好难啊,搞得一头雾水,求高手们介绍学习方法。

2024-11-24 00:27:08
推荐回答(1个)
回答1:

数字信号处理器的特点
分开的程序存储器和数据存储器(哈佛结构)。
用于单指令流多数据流(SIMD)作业的特殊指令集。
可进行并行处理,但不支援多任务。
用于宿主环境时可作为直接内存存取(DMA)设备运作。
从模拟数字转换器(ADC)获得数据,最终输出的是由数字模拟转换器(DAC)转换为模拟信号的数据。
模拟信号输入到——ADC到——dsp(数字数据处理)到——DAC到——模拟信号输出

数字信号的处理
数字信号的处理可由通用微处理器完成。可能的优化为:
数据运算指令
使用饱和算法,在这种方式中,会产生溢出的运算将累积至寄存器可容纳的最大(或最小)值,而不是按环绕方式(环绕方式是很多通用CPU采取的方式。在环绕方式中,寄存器的数值到达最大值后再加一则会绕回到最小值;而使用饱和算法时则不会发生这种环绕,运算结果仍将保持为最大值)。有些情况下可使用不同的粘滞位运算模式。
使用乘积累加(MAC)运算,这会提高各种矩阵运算的效率(例如卷积运算、点积运算、乃至矩阵多项式的求值运算;参看Horner scheme和积和熔加运算)。由于在许多DSP中都必然地使用了单周期的MAC部件,因此也自然沿袭了下面所述的许多性质(尤其是哈佛结构和指令流水线(Instruction Streamline))。
在使用同余寻址方式操作循环缓冲器、以及在使用逆位序寻址模式处理快速傅立叶变换交叉参照时,都可使用专门的指令实现。
程序流程
使用深层流水线技术,这种情况下,因错误的预测产生的跳转会造成更大的(效率)成本。
使用通过动态表或硬编码的零开销循环实现的分支预测。为减少执行高频度的内层循环时跳转造成的(效率)影响,有些处理器提供了这个特性。该技术包括两种类型的操作:单指令的重复操作和多指令的循环操作。
预取指令使用指令流水线方式。
流水线作业方式可减少总体的处理时间,增加系统的产出效率。
流水线可以分为若干层级。