我正在寻找一本好书,简单地说明如何使用C语言编写代码,以完成所有主要的DSP方法。


高通滤波器。
自相关。
噪声处理。

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

例如,我有1000个样本,现在我想对其进行FFT计算,消除噪声,然后再回到时间轴。

评论

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

DFFT是错字吗?

是的,没有DFFT仅是FFT

#1 楼

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


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


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

我推荐的另一个主题是:


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


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


有两章介绍了傅里叶变换及其应用。


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

评论


$ \ begingroup $
和其他任何能力一样,从最简单的示例开始并进行足够的实践,最好地学习发明。因此,发明轮子总是有益的,不是因为它增加了成就价值,而是因为它使发明人能够对发明的本质建立必要的见识。
$ \ endgroup $
– Fat32
16 Mar 4 '16 at 16:32

$ \ begingroup $
我完全同意。但是,在我从事的99%的项目中,没有时间重新发明轮子。另一方面,当我在家中做自己的事情时,那么在99%的情况下,我会重新发明轮子以学习和改进当前的工具。
$ \ endgroup $
–jojek♦
16 Mar 4 '16 at 16:49

$ \ begingroup $
我认为,使用现有的库有点麻烦,不是因为它们全部都在一个框架中,而是必须依赖于它们中的每一个,而使用DSP时,您总是会有不同种类的输入,事情要复杂得多,然后要做一个那个那个黑匣子。
$ \ endgroup $
–谨慎
16 Mar 4 '16 at 17:06

$ \ begingroup $
@Curnelious即使您在某种程度上是正确的(对于某些库而言),我也不同意所有现有的库都是一团糟。我们必须承认我们都在使用它们。重点是哲学而不是现实。
$ \ endgroup $
– Fat32
16 Mar 4 '16 at 17:22

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

#2 楼

我建议S.J. Orfanidis。这是一本很棒的书,结合了理论和实践,还具有C和Matlab的代码示例。完成该步骤后,您将足够了解自己进行下去。

#3 楼

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

在我的MSC构建滤波器工作中很有用...尽管您可以使用Matlab编码器构建标头...。他的fft用复数代替,如果触发则更容易实现,

#4 楼

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

评论


$ \ begingroup $
这是一个冒险的过程。。。Matlab代码包含许多嵌套函数,很可能会完成对代码的反向工程。。做这个
$ \ endgroup $
–甘草
17年1月7日在5:58