我有一组歌曲,使用重叠频率为50%的汉明窗提取了幅度谱图。提取频谱图后,我使用主成分分析(PCA)进行了降维。将其降低到较低的维度后,我从较低的维度重构了频谱图。因此,现在,原始频谱图和重建频谱图之间将出现一些错误。我想将此频谱图转换回音频信号并播放它,这样我就能知道从较低尺寸重建时的声音声音。
Matlab中有可用的功能吗?将幅度频谱图转换为音频信号
2
您确实需要STFT和逆STFT。“频谱图”只是STFT幅度的热图的名称,仅幅度是不足以重建信号的。看看mathworks.com/matlabcentral/fileexchange/12902-dafx-toolbox/…吗?
—
endlith 2013年
为了扩展@endolith的评论,从STFT转到频谱图时您所缺少的是相位信息,它是信号频域表示的重要组成部分。
—
比约恩·罗奇
因此,这意味着如果我要重建原始音频信号,则需要STFT的幅度和相位?但通常是为了建立音频功能,| S | 使用的是复数no的幅度,并且相位信息被丢弃。我已经在其上作为我计算出的梅尔频谱执行PCA 男,是梅尔滤波器乘法矩阵。那么你如何重建提供的音频信号X,在近似X PCA后得到了什么?
—
user76170 2013年
@endolith:我尝试使用您给mathworks.com/matlabcentral/fileexchange/12902-dafx-toolbox/的链接。...我同时使用了相位和幅度信息,即(将用作上述函数的输入)。使用这个,我尝试播放信号,听起来震撼。为什么会这样?然后,我计算了原始信号与如上所述通过逆STFT过程获得的信号之间的范数,它显示出3.46 * 10 ^ 3的巨大值。知道为什么会这样吗?
—
user76170 2013年
@ user76170:断断续续是因为STFT将信号切成帧,有时是重叠的,并且您必须以与构造它们相同的方式来解构它们,否则每一个都会不连续。您是否从该链接使用了STFT和ISTFT函数? 查看震荡信号的波形,这样就可以看到问题所在。
—
endlith 2013年