音のパワースペクトラム解析
11 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Cir 2t
am 20 Aug. 2020
Kommentiert: takemoto
am 24 Aug. 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 Kommentare
Akzeptierte Antwort
Shoumei
am 21 Aug. 2020
Signal Processing Toolboxをお持ちであれば、以下のコマンドを実行して期待した結果が得られませんか?
data = y2(192000:30000000);
periodogram(data)
2 Kommentare
takemoto
am 24 Aug. 2020
線のハンドルを取得することで、プロット上の線の属性を編集することができます。
periodogramでスペクトルを表示させた後、以下の処理を追加することで
線の色を変えられると思います。
h1 = gca; % 座標軸のハンドル取得
h2 = h1.Children; % "線"のハンドル(座上軸の子ハンドル)取得
h2.Color = 'black'; % 線ハンドルに対して、”黒”を設定
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu スペクトル測定 finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!