音のパワースペクトラム解析

9 visualizaciones (últimos 30 días)
Cir 2t
Cir 2t el 20 de Ag. de 2020
Comentada: takemoto el 24 de Ag. de 2020
192kHzで取得した音源のパワースペクトラムの解析を行っているのですが、予想と違う結果になり困っています。
他のアプリでは、うまく取れているように見えたので、おそらく下記の私のmatlabコードに問題があるとは思うのですが。。。。。
おかしい個所を修正していただけると非常に助かります。
どうかご指導宜しくお願い致します。
%移動平均
a = 10;
b = ones(1,10);
y2 = filter(b,a,y);
y3=y2(1,192000:30000000);
data=y3(1,:);%yの構造データのうち、1行目のベクトルデータをdata変数に収納
fftdata=fft(data);%dataをfftにかける。その結果を、fftdata変数に収納。
%スペクトラム強度の図示。
pow_fftdata=abs(fftdata).^2/length(fftdata);
figure(1);
plot(pow_fftdata);
Fs=192000
freq=0:192000/(length(pow_fftdata)-1):192000/2;%周波数解像度の設定
singlePow=[pow_fftdata(1),2*pow_fftdata(2:length(freq))];%????
%ゲインをdBに変換
ydb = mag2db(singlePow);
figure(2);
plot(freq,singlePow);%横軸がfreqで、縦軸がsinglePow
xlabel('Freqency [kHz]');
ylabel('Power [dB]');
xlim([0,100]);
  2 comentarios
takemoto
takemoto el 20 de Ag. de 2020
ざっと拝見したところ特に問題はなさそうですが、具体的にどの様な結果を期待されていて、他のアプリとはどの様に異なりますか?
Cir 2t
Cir 2t el 21 de Ag. de 2020
ありがとうございます。
とりあえず、解決できそうです。
ご迷惑おかけしました。

Iniciar sesión para comentar.

Respuesta aceptada

Shoumei
Shoumei el 21 de Ag. de 2020
Signal Processing Toolboxをお持ちであれば、以下のコマンドを実行して期待した結果が得られませんか?
data = y2(192000:30000000);
periodogram(data)
  2 comentarios
Cir 2t
Cir 2t el 21 de Ag. de 2020
ありがとうございます。
このコマンドで、できそうな気がします。
まだ、完璧ではないのですが。
ちなみにで申し訳ないのですが、線の色を黒にする方法はありますか?
今、青線でプロットされていまして、できれば黒にしたいと思いまして。
調べたのですが、うまく修正できないで困っております。
takemoto
takemoto el 24 de Ag. de 2020
線のハンドルを取得することで、プロット上の線の属性を編集することができます。
periodogramでスペクトルを表示させた後、以下の処理を追加することで
線の色を変えられると思います。
h1 = gca; % 座標軸のハンドル取得
h2 = h1.Children; % "線"のハンドル(座上軸の子ハンドル)取得
h2.Color = 'black'; % 線ハンドルに対して、”黒”を設定

Iniciar sesión para comentar.

Más respuestas (0)

Community Treasure Hunt

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

Start Hunting!