【问题标题】:signal synthesis analysis using STFT使用 STFT 进行信号合成分析
【发布时间】:2013-07-11 18:26:17
【问题描述】:

我需要将信号转移到频域,经过一些修改后,再次使用 STFT 和 ISTFT 转移回时域。通过使用相同的窗口进行分析和综合,将获得完美的重建。但是,如果我选择两个不同的窗口,我将无法完全重建。就我所观察到的而言,原始信号和重建信号的比例是帧提前的函数。 如果您能帮助我解决问题以获得完整的重建,那就太好了?

x             = sin(t)
Nfft          = 256;
Frame_advance = 0.5*Nfft;
window_a       = hann(1500);
window_s       = hann(Nfft);
X  = STFT(x,Nfft,Frame_advance,window_a)
x2 = ISTFT(X,Nfft,Frame_advance,window_s) % reconstructed 

【问题讨论】:

  • 为什么需要对数据应用窗口?你的信号本质上不是周期性的吗?

标签: signals dft frequency-analysis


【解决方案1】:

我不知道你的 STFT 和 ISTFT 函数,你也使用相位信息吗?

这里是我的示例一步一步(无窗口)

    %get some point for example 2048 points of signal
    x=signal(1:2048);
    %Make FFT
    y=fft(x);
    %Amplitude of the FFT
    mx=abs(y);
    %get Phase Information
    ma=angle(y);
    %back the signal to complex
    y2= mx .* ( cos(ma) + sqrt(-1) *(sin(ma)) );
    %Apply Inverse FFT
    x2=real(ifft(y2));

现在 x == x2

在您的示例中,您是否在信号中应用了一个 Hann 窗口,那么如果您应用窗口,则需要进行 OLA (Overlap and add) 进程以进行正确的重建...

但是为什么你需要不同的窗口大小呢?

【讨论】:

    猜你喜欢
    • 2013-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-22
    • 2013-04-07
    • 2016-02-05
    • 2015-09-04
    相关资源
    最近更新 更多