是否存在信号到频谱图的等效变换,其中相位信息是结果图像的一部分?

信息处理 fft 阶段 频谱图 神经网络
2022-02-05 12:55:45

我正在从事一个研究项目,我们希望将卷积神经网络应用于信号的图像表示。但是,似乎如果我使用频谱图,我最终会丢失相位信息。结果,我的问题是:

是否存在信号到频谱图的等效变换,其中相位信息是结果图像的一部分?

非常感谢,祝你有美好的一天,马克西姆

来自https://en.wikipedia.org/wiki/Spectrogram

限制和再合成

从上面的公式可以看出,频谱图似乎不包含有关它所代表的信号的确切甚至近似相位的信息。出于这个原因,不可能逆转该过程并从频谱图中生成原始信号的副本。

2个回答

我想到了一个自制的解决方案,但我不知道它是否适合你。无论如何,我会写下来,因为它可能会有所帮助。

在 MATLAB 中,您可以执行以下操作:

[s,f,t] = spectrogram(x,window,noverlap,f,fs);

因此s将存储复数值。然后你可以找到它们的大小和角度

A = abs(s);
phi = angle(s);

然后你可以用imagesc. 对于幅度:

imagesc(time_vector,freq_vector,20*log10(A));

其中前两个输入是您可以定义以设置轴的向量。同样,对于阶段:

imagesc(time_vector,phase_vector,phi);

如果您创建体积(未展平的 3D)图像,您可以使用 3 维中的 2 层来表示幅度和相位,或复杂频谱图输出的实部和虚部。

在 2D 颜色光谱图中,您可以尝试使用正交颜色映射,例如,在 RGB 空间中,红色 + 绿色表示幅度,蓝色(或 delta blue)表示相位,或类似的实部和虚部,或使用 YUV 或 HSL颜色空间等