2013-10-03 2 views
1

Рассмотрим следующий пример: (преобразование короткого времени Фурье)Об использовании функции спектрограммы в MATLAB

Fs = 40;% sampling frequency 
x = 0:(1/Fs):4;% time domain 
y = [sin(2 * pi * 5 * x(x <= 2)), sin(2 * pi * 10 * x(x > 2))];% signal 

    N = length(x);      % Length of signal 

    NFFT = 2^nextpow2(N); % Next power of 2 from length of y 
    Y = fft(y,NFFT)/N; 
    f = Fs/2*linspace(0,1,NFFT/2+1); 

    % Generate the plot, title and labels. 
    fh = figure(1); 
    % set(fh,'color','white','visible','off'); 
    subplot(311); 
    plot(x,y,'k'); 
    xlabel('Time (s)','FontName','Times New Roman','fontsize',10); 
    ylabel('Amplitude','FontName','Times New Roman','fontsize',10); 
    set(gca,'FontName','Times New Roman','fontsize',10); 

    % # Frequency domain plots 
    subplot(312); 
    plot(f,2*abs(Y(1:NFFT/2+1))) 
    xlabel('Frequency (cycles/second)','FontName','Times New Roman','fontsize',10); 
    ylabel('Amplitude','FontName','Times New Roman','fontsize',10); 
    set(gca,'FontName','Times New Roman','fontsize',10); 

    subplot(313); 
    window = x(1:10:end); 
    [S,F,T] = spectrogram(y,window); 
    pcolor(T,F,abs(S));shading interp; 
    xlabel('Time (s)'); 
    ylabel('Frequency (cycles/second)'); 

STFT здесь не демонстрирует то, что я ожидал. Я бы ожидал, что ось y будет такой же, как xaxis в подзаголовке (312), и xaxis будет такой же, как xaxis в подзаголовке (311).

ответ

3

Проблема с осью x состоит в том, что вы не указываете частоту выборки при вызове spectrogram. Попробуйте

[S,F,T] = spectrogram(y,window,[],[],Fs); 

Кроме того, я думаю, вы искажая window аргумент. Это относится к форме окна (кстати, вы ее определяете, может быть, вы думаете, что он определяет положение окна?). Поэтому я бы использовал что-то вроде

window = ones(1,10); 

(или попробуйте окна, отличные от прямоугольных).

Что касается оси y, в 313 ось y является (мгновенной) частотой, тогда как в 312 это спектральная амплитуда. Поэтому они не сопоставимы. В принципе, вы можете сравнить цвет (ось z) 313 с осью y 312, так как оба являются спектральной амплитудой; однако их нормализация, вероятно, различна.

Смежные вопросы