我是傅立叶变换的新手。我正在使用 AForge.Math FFT/DFT 算法(C#)。说我有这种情况:
我的信号:
采样:每秒 100 个样本。
这是光谱。DFT 找到我的信号的频率:1Hz 和 5Hz(以及恒定分量:0Hz)。
这里是逆变换。如您所见,结果与原始形状相似,但显然那里正在发生一些事情。
我的问题:
- 我可以更改哪些参数以获得更好的结果。
- 我是否应该期望完全能够从频谱中重新生成时域信号?
- IDFT可以用作信号发生器吗?在所需频率处创建峰值非常容易。
- 也许我需要去看书,但是,为什么 DFT 中总是有一个镜像频率,我应该如何解释它们?我没有任何 95Hz 和 99Hz 的频率。这是DFT的缺陷吗?
- 为什么初始点没有镜像?
- 频谱中峰值的幅度不正确:第一个应该是 1,第二个应该是 0.4。我听说频谱中的幅度并不重要,这是真的吗,如果是这样,为什么?无论如何,我认为知道正弦曲线的幅度是非常有用的,有没有办法做到这一点?
- 我可以扔掉对称部分吗?
- 如果是这样,我可以丢弃几乎为空的值,直到从中间开始的第一个频率?(在我的情况下,从 50Hz 到几乎 5Hz)。
编辑:
正如这里所指出的,我需要首先保留来自直接变换的实数/虚数数据,其次,调整该数据,因为我使用的是复杂的逆 DFT。
结果如下:
青色/紫色:Re/Im 零件
红色:最终结果。
X 间距是错误的,但这是另一天的故事。
谢谢大家。