本书推荐-用C语言编写DSP代码


12

我正在寻找一本不错的书,该书简单地展示了您如何实际使用C语言编写代码,以完成所有主要的DSP方法。

  1. FFT。
  2. 低通和高通滤波器。
  3. 自相关。
  4. 噪音处理。

以及DSP的所有基础知识,从理论到真正的C语言代码。

例如,我有1000个样本,现在我想对其进行FFT,去除噪声,然后返回时间轴。

有什么好东西可以涵盖所有这些吗?


1
好问题!我将标签更改为引用请求,因为它似乎正是您要的。
Peter K.

2
DFFT是错字吗?
吉尔斯

是的,没有仅DFFT FFT
Brethlosze

Answers:


13

我可以为您推荐两本有关DSP for C语言的书。

Embree PM- C语言用于数字信号处理的算法

它很旧了,您可以以合理的价格轻松获得二手。它几乎涵盖了您描述的所有4个主题。

我推荐的另一个是:

Malepati H.- 数字媒体处理:使用C的DSP算法

它涵盖了更多主题(包括纠错算法和图像/视频处理算法)。关于这一点的好处是,提供了测试信号来测试您的实现。


我刚刚想起我桌上的另一本书,其中包含一些用于DSP的C代码。

WH出版社- 数字食谱:科学计算的艺术

关于傅立叶变换及其应用有两章。


最后一个建议-如果可以,请使用现有的C库,而不要编写自己的工具。重新发明轮子没有意义。


4
与其他任何功能一样,从最简单的示例开始并充分实践,最好地学习发明。因此,发明轮子总是有益的,不是因为它增加了成就价值,而是因为它使发明人能够对发明的本质建立必要的见识。
Fat32

3
我完全同意。但是,在我从事的99%的项目中,没有时间重新发明轮子。另一方面,当我在家做自己的事情时,那么在99%的情况下,我会重新发明轮子以学习和改进当前的工具。
jojek

在我看来,使用现有库有点麻烦,不是因为它们全部都在一个框架中,而是必须依赖于它们中的每一个,而使用DSP时,您总是会有不同种类的输入,而事情就更多了。然后只是一个黑匣子就可以做到了。
Curnelious

@Curnelious即使您在某种程度上(对于某些库)是正确的,但我不能同意所有现有库都是一团糟。我们必须承认我们都在使用它们。重点是哲学而不是现实。
Fat32

使用知名库的一大好处是,用户可以或多或少地确定实际上对代码进行了审查。经常会有一些人们不会想到的极端情况,在某些非常特殊的情况下,这可能会带来很多问题。我现在无法想到DSP示例,但是一个非常常见的问题类型的示例是试图计算从过去某个日期到现在的分钟数。乍一看,它看起来很简单,只是获得天数,但是当时钟时间和日历更改生效时,它变得非常复杂。
AndrejaKo

7

我建议SJ Orfanidis撰写《信号处理简介》。这是一本很棒的书,结合了理论和实践,还具有C和Matlab的代码示例。一旦完成它,您将足够了解自己。


0

Embree PM-C语言用于数字信号处理的算法

在我的MSC工作中建立过滤器很有用...虽然您可以使用Matlab编码器来建立标头...。我只在实现他的fft时遇到问题,而fft是复杂的数字,而如果在现实生活中更容易实现则为trig 。


-1

您可以查看Matlab信号处理功能的openSAL和Octave源代码(不是C,但很有用)。这就是我所做的。


这是一个危险的过程.... Matlab代码包括这么多的嵌套函数,这是非常有可能完成逆向工程的代码....我想这在过去也没有我想凭着一个新手应该这么做
Brethlosze
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.