【问题标题】:AForge Fourier transformAForge 傅里叶变换
【发布时间】:2012-08-03 12:43:58
【问题描述】:

如何使用这个方法:

public static void DFT (Complex[] data, Direction direction)

如果我的输入数组是short[] samples?我可以轻松地将 short 转换为 double 以将此值放入 Complex 结构。但是这个结构有两个字段ImRe。那么,这些值之一将是我的样本值,对吗?第二个值是多少?样品编号?

请帮我解决这个问题,因为我今天不睡觉。

【问题讨论】:

  • 复数有两个分量,虚数 (Im) 和实数 (Re)。您的样本值很可能是 Real 组件。
  • 我知道什么是复数,只是不明白这个函数(DFT)是如何工作的。无论如何,我开始测试它。

标签: c# fft aforge


【解决方案1】:

您应该使用示例数据填充每个 Complex 值的 real 部分,即使用 LINQ:

complexSamples = samples.Select(sample => new Complex((double)sample, 0.0)).ToArray();

执行DFT 后,您的complexSamples 将包含非零虚部(Im 非零)。然后,您是否需要访问这些虚构的组件取决于您的后续操作。

也许在维基百科上阅读更多DFTcomplex numbers 也是一个好主意...

【讨论】:

  • 那么输出的 Im 值将代表频谱?
  • 实际上,如果您执行正向变换,则频谱由复分量作为一个整体来表示。这取决于您想对图像做什么,但是如果您想应用低通滤波器,您可以进行正向变换,将较高索引的复数分量设置为零,然后执行逆变换。您在完成逆变换后收到的Re 部分将成为您的低通滤波图像。有一个直观的教程here
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-12
  • 2011-07-12
  • 1970-01-01
  • 2021-05-18
  • 1970-01-01
相关资源
最近更新 更多