FFTの結果をグラフ化する方法

92 vues (au cours des 30 derniers jours)
一秀 近藤
一秀 近藤 le 7 Déc 2022
Commenté : 一秀 近藤 le 12 Déc 2022
44100Hzの音声データをFFT関数を使ったのですが、
データの中身が虚数部と実数部に分かれておりグラフ化をしてもうまくいかないです。
①FFTの結果が虚数と実数部に分かれる理由、また何を意味について
②結果をHzとdbのきれいなグラフにする方法
基礎的な内容で申し訳ございませんが、ご教授いただきたいと存じます。

Réponse acceptée

Hernia Baby
Hernia Baby le 12 Déc 2022
①フーリエ変換の結果が複素数である理由は位相の成分が隠れているからです。
 周波数空間への変換といいつつ位相のズレ量がないと逆変換できません。
 複素数の実部と虚部は絶対値と位相として見なすことができます。
 として絶対値はで位相はとなります。
 絶対値と位相を各周波数であらわさず、ベクトルとしてコンパクトに書けるのが利点です。
②先にいった通り絶対値に直してやれば大丈夫です。
 手前ミソですが自分の記事を引用します。
適当な信号を作ります。
dt = 0.01;
L = 512;
t = 0:dt:dt*(L-1);
Fs = 1/dt; %サンプリング周波数
y = .5*sin(2*pi*10*t) + 2*sin(2*pi*30*t);
plot(t,y)
xlim([0 t(end)])
xlabel '時間[sec]'
ylabel '信号'
片側スペクトルをデシベルで計算します。
f = Fs*(0:(L/2))/L;
f = f(1:end-1);
cy = fft(y);
P = abs(cy(1:ceil(length(cy)/2)))./(length(y)/2);
plot(f,10*log10(P.^2))
hold on
xlabel '周波数[Hz]'
ylabel '20log_{10}P_1(f)'
  1 commentaire
一秀 近藤
一秀 近藤 le 12 Déc 2022
丁寧なご回答ありがとうございます。とても分かりやすく参考になりました。

Connectez-vous pour commenter.

Plus de réponses (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!