6

私の図には 2 つの軸があります。1 つ目は信号の時系列で、2 つ目はifft信号です。信号のスペクトログラムを含む 3 番目の軸を追加したいと思います。これどうやってするの?

% Create the raw signal
fs = 40;
t = 0:( 1/fs ):4;
y1 = [ sin( 2*pi*5*t( t<=2 ) ), sin( 2*pi*10*t( t>2 ) ) ];

% Compute the ifft of the signal
Fy1 = abs(ifft(y1));
N = numel(t);
idx = 1:numel(Fy1) / 2;
f = fs*(0:(N-1)) / N;

% Plot the raw signal as a time series
subplot(311);
plot(t,y1,'k');
xlabel('Time (s)');
ylabel('Amplitude');

% Plot the spectrum of the signal
subplot(312);
plot(f(idx),2*Fy1(idx),'k')
xlabel('Frequency (cycles/second)');
ylabel('Amplitude');

関数を使用してみましたがspectrogram、結果を図として解釈するのに苦労しています。スペクトログラムを計算して、x 軸に沿って時間を実行し、y 軸に沿って振幅を計算するにはどうすればよいですか?

4

1 に答える 1

8

により多くの入力引数を提供する必要がありますspectrogram。必要な関数の形式は次のとおりです。

[S,F,T]=spectrogram(x,window,noverlap,F,fs)

http://www.mathworks.com/help/signal/ref/spectrogram.html完全なドキュメントを参照してください。ただし、基本的には以下を定義する必要があります。

  • windows: 各スペクトル推定計算に使用するサンプル数
  • noverlap: スペクトル N-1 の計算からスペクトル N に含めるサンプルの数
  • F: スペクトルを評価する周波数
  • fs: 信号のサンプリング周波数。

次に、スペクトログラムを次のようにプロットします。

subplot(313);
imagesc( T, F, log(S) ); %plot the log spectrum
set(gca,'YDir', 'normal'); % flip the Y Axis so lower frequencies are at the bottom

: スペクトログラムの品質解釈可能性は、関数への正しい入力の使用に依存しspectrogramます。

于 2012-12-13T14:31:19.890 に答える