现代计算机与通讯系统电子设备中广泛使用了数字信号处理专用集成电路,它们主要用于数字信号传输中所必需的滤波、变换、加密、解密、编码、解码、纠检错、压缩、解压缩等操作。这些处理工作从本质上说都是数学运算。从原则上讲,它们完全可以用计算机或微处理器来完成。这就是为什么我们常用C、Pascal或汇编语言来编写程序,以研究算法的合理性和有效性的道理。
在数字信号处理的领域内有相当大的一部分工作是可以事后处理的。我们可以利用通用的计算机系统来处理这类问题。如在石油地质调查中,我们通过钻探和一系列的爆破,记录下各种地层的回波数据,然后用计算机对这些数据进行处理,去除噪声等无用信息,最后我们可以得到地层的构造,从而找到埋藏的石油。因为地层不会在几年内有明显的变化,因此花几十天的时间把地层的构造分析清楚也能满足要求。这种类型的数字信号处理是非实时的,用通用的计算机就能满足需要。
还有一类数字信号处理必须在规定的时间内完成,如在军用无线通信系统和机载雷达系统中我们常常需要对检测到的微弱信号增强、加密、编码、压缩,在接收端必须及时地解压缩、解码和解密并重现清晰的信号。我们很难想象用一个通用的计算机系统来完成这项工作,因此,我们不得不自行设计非常轻便小巧的高速专用硬件系统来完成该任务。
有的数字信号处理对时间的要求非常苛刻,以至于用高速的通用微处理器芯片也无法在规定的时间内完成必须的运算。我们必须为这样的运算设计专用的硬线逻辑电路,这可以在高速FPGA器件上实现或制成高速专用集成电路。这是因为通用微处理器芯片是为一般目的而设计的,运算的步骤必须通过程序编译后生成的机器码指令加载到存贮器中,然后在微处理器芯片控制下,按时钟的节拍,逐条取出指令、分析指令,然后执行指令,直至程序的结束。微处理器芯片中的内部总线和运算部件也是为通用的目的而设计,即使是专为信号处理而设计的通用微处理器,因为它的通用性,也不可能为某一个特殊的算法来设计一系列的专用的运算电路,而且其内部总线的宽度也不能随意改变,只有通过改变程序,才能实现这个特殊的算法。因而其运算速度就受到限制。
夏老师的著作就不详细介绍了。下载链接回复可见。
——回复可见内容——