Afficher commentaires plus anciens
たびたび失礼します。
両側スペクトルP2を出す所までは同じようにできるのですが、片側スペクトルP1が同じように出せません。
例題ではP2(1×1500 double) →P1 (1×751 double)になりますが、
自分のデータで行うと P2(1×222 double) →P1(1×3 double) になってしまい
最後のplot図が同じように描けません。
どのように対処すればいいか教えていただきたいです。
よろしくお願いします。
書いたコード↓
load 'x'
L = 5
Fs = 44100
Y = fft(x)
p2 = abs (Y/L)
p1 = p2(1:L/2+1)
p1(2:end-1) = 2*p1(2:end-1)
f = Fs*(0:(L/2))/L;
plot (f,p1)
使用しているデータを添付します。
よろしくお願い致します。
Réponse acceptée
Plus de réponses (1)
Hiro Yoshino
le 11 Nov 2019
離散フーリエ変換をするときにいくつか覚えておくべきことをまとめておきます。
- 離散フーリエ変換は線形変換で、変換後のデータ数は変換前の離散データ数(L)と同じ
- 周波数領域では、周波数は「正規化周波数」になっている。すなわち
ずつ周波数が増えます。なのでl番目のデータは
となる。これを使ってご自身のサンプリングレートに合わせて軸を作っているのが以下の部分です。
f = Fs*(0:(L/2))/L;
ディメンションチェックすると分かりやすいです:
1 commentaire
matsushita ryota
le 12 Nov 2019
Catégories
En savoir plus sur フーリエ解析とフィルター処理 dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!