短時間フーリエ変換の解析方法について
11 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Ryosuke Takahashi
le 25 Juil 2017
Commenté : Ryosuke Takahashi
le 25 Juil 2017
短時間フーリエ変換について質問させていただきます。
フーリエ解析を行い、周波数が変化した時間とパワー変化を知りたいです。
今回モデル波形として、0.5Hz 1Hz 2Hz のsin波を用いてフーリエ解析を行ったところ、 広範囲に同じパワーの分布が見られました。 僕のイメージでは0.5Hz 1Hz 2Hzの部分に直線ラインができるのかと想像していました。 下記にコードを記載するので、spectogramの使用が間違っていたらご教示ください。
%%model wave
fs = 1000;% sample frequency(Hz)
model_timestep1 = (0:1/fs:10);
model_timestep2 = (10:1/fs:30);
model_timestep3 = (30:1/fs:40);
sinwave1 = sin(1*pi*0.5*model_timestep1);
sinwave2 = sin(1*pi*1*model_timestep2);
sinwave3 = sin(1*pi*2*model_timestep3);
S1 = horzcat(sinwave1(1:fs*10), sinwave2(1:fs*20), sinwave3(1:fs*10));
%%FFT
fftpt = fs*2; %FFTデータ長
win = fs/10;
overlap = 10;
spectrogram(S1,fftpt,win,overlap,fs,'yaxis')
axis([0,inf, -inf, 5])
0 commentaires
Réponse acceptée
Naoya
le 25 Juil 2017
Modifié(e) : michio
le 25 Juil 2017
win で窓の長さを指定していると思いますが、 サンプリング周波数の 1/10 のサンプル数(100サンプル分)しかない様です。
0.5 Hz を FFT で表現するためには、2sec分の窓を指定する必要があります。 (Fs = 1000 の場合は、 2000 サンプル分)
例えば、下記で所望のスペクトルが確認できます。
fs = 1000;
overlap = 3500;
nfft = 4000;
spectrogram(S1,hann(nfft),overlap,nfft,fs,'yaxis'),ylim([0 5])
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Discrete Fourier and Cosine Transforms dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!