没有相位信息的信号转移

信息处理 matlab IFFT
2022-01-28 04:14:30

我有一个化学光谱,轴上有振幅,Y轴上有波数X,采样间隔我认为这是1.510赫兹。我想通过执行信号来重建原始信号的幅度/时间表示,ifft但是我没有相位信息。由于信息随着时间的推移是不变的(恒定的),我不认为相位信息对于重建原始信号是必要的。在这种情况下,我可以将相位信息设置为零并仍然重建信号吗?如何将采样间隔合并到 matlab ifft 例程中以进行准确的频率计算?

这是我认为我应该使用的

sig = abs(ifftshift(ifft(complex(data.YData))));

谢谢

戴夫

3个回答

人类对声音的感知不太依赖于相位,这曾经在 VOCODER 中用于压缩长途电话通信。

所以你的一般想法应该有效,只是信号的形状是任意的。

您能否查看文档,会认为在 ifft 之前应用 ifftshift 以反映在 fft 之后应用 fftshift。

但可能您需要另一种准备:假设 Y[k] 表示频率的幅度

X[k]=k/N*fs/2, k=0,...,N-1, 

其中 N 是数组的长度,fs 是采样频率。然后你需要将 Y 的长度加倍并设置

Y[N+k]=Y[N-1-k], k=0,...,N-1. 

这肯定可以使用数组操作更有效地表示,将 Y 及其反向连接以形成新的 Y。然后直接应用 ifft,而不使用 ifftshift,以获得具有给定频谱的信号。


更新 14.1.:如果频率数量相当少,则显式评估为

k:Y[k]0Y[k]sin(cX[k]t)

可能更容易实现。因子 c 应以这样的方式固定,即结果在可听频谱中。

这很棘手。相位信息对时域形式影响很大。例如,白噪声和增量脉冲具有完全相同的幅度谱,唯一的区别在于相位。

没有任何进一步的假设或额外的知识,这是无法做到的。例如,如果您知道信号是静止的,您可以尝试随机相位。如果是因果系统的脉冲响应,您可以尝试最小相位。

除非您对信号做出进一步的假设,否则您无法在没有相位信息的情况下重建时域信号。一组假设是信号是最小相位还是最大相位 - 通过这些假设,您可以唯一地重建信号。

虽然特定频率分量的相位可能并不重要,但重要的是不同频率分量之间的相位关系。如果您以不同的频率改变相位,您最终会得到截然不同的时域响应。考虑以下信号:

s(t)=sin(2πf1t)+0.5sin(2πf2t+ϕ)

如果你想有一个表盘可以改变ϕ,那么当你改变它时,产生的信号也会改变。当您添加多个不同频率的正弦波并且每个正弦波都有自己的相位时,情况会变得更加复杂。