DSP广泛应用于通信、语音、雷达、仪器仪表等领域。针对不同应用,市场上有许多型号的DSP产品。以TI的产品为例,从用途上分,有C2000系列定点DSP,因为集成了大量外设资源,更多地用于控制领域;C5000系列定点低功耗DSP,主要用于消费产品和通信领域;还有C6000高速高性能DSP,主要用于网络和图像处理。
面对众多型号,拿到一个项目时要选择何种DSP呢?运算速度、功耗、结构、价格等都是需要考虑的地方,但运算速度无疑是首要考虑的,只有满足运算速度的前提下,选择能够适应其他要求的产品才是最合理的。下面就以实例讨论一下如何计算运算速度。
DSP处理的是数字信号,往往来源于前端模拟信号采样。如果信号为50Hz的正弦信号,每周期要采80个点才能满足后续算法精度要求,那么采样频率为4000Hz,采样点的时间间隔为250μs。即所有相关运算必须在250μs的时间内完成。假设采样点需要进行FFT这样的乘加运算,假定DSP执行一次乘加运算的时间只有1个指令周期,那么在两个采样点之间需要完成4096个乘加运算时,指令周期则必须小于250μs/4096=61.2ns,否则不能实现实时处理(在这里还没有考虑获取采样点的时间)。
有些DSP具有DMA模块,可以在没有CPU的参与下完成采集。例如语音编码算法,一桢信号为30ms,而一桢信号处理算法程序必须要在30ms内完成。若DSP的指令周期为20ns,则一桢时间内DSP能够提供的最大运算量为150万条指令。因此,一桢信号对应的算法程序不能超过150万条指令,否则就要更换速度更快的DSP了。
用户63077 2008-9-2 15:42
用户14172 2007-7-26 22:09
楼上果然很强。
我是看到有一本书上写到这样的内容。
整理了以前的思路,写出来的。
所以会很相似。
但例子确实是我以前项目中实际用过的。
50Hz的例子是用于电力系统测试的。
30ms那个是电子耳蜗项目。