フィルター処理後のス​ペクトラム表示がうま​くいかない

12 views (last 30 days)
Cir 2t
Cir 2t on 15 Sep 2020
Commented: takemoto on 16 Sep 2020
平素よりお世話になっております。
処理がうまくいかず、助けていただけると幸いです。
192kHzで取得した音源を、0.5Hzのカットオフ周波数,78dB/octでハイパスフィルターにかけたうえで、スペクトグラムを出そうと思うのですが、何も表示されない状況です。
dataOutの中身を見てみると、NaNと出てるので、ここがおかしいのだろうと思っているのですが、解決手段がわからないです。どなたかご指導いただけると幸いです。
%ハイパスフィルター処理
x=0.5/96000
[b,a] = butter(13,x,'high');%zは次数、aは正規化されたカットオフ周波数。matlab
%では、周波数/サンプリング周波数ではなく、周波数/ナイキスト周波数が正規化された
%周波数となる。ローパスとハイパスでは、次数が1につき6dB/octです。
%したがって、2次では12dB/oct、8次なら48dB/octということになります。
freqz(b,a)
dataIn =HCS;
dataOut = filter(b,a,dataIn);
spectrogram(dataOut,hann(256),128,256,192000,'yaxis');
colorbar;
  1 Comment
takemoto
takemoto on 15 Sep 2020
解析対象のサンプリングレートに対して、解析点数が少なすぎるのが原因ではないかと考えられます。256点のfft点数をspectrogramの設定として与えていますが、解析対象が192kHzのサンプリングの場合、周波数分解能は192e3/256=750Hzとなりそうですが、いかがでしょうか?

Sign in to comment.

Accepted Answer

Cir 2t
Cir 2t on 15 Sep 2020
ありがとうございます。
うまくいきそうです。
ちなみに、もう一つ質問なのですが、spectrogramで出したfigureを.jpgや.tiffで保存しようとすると色が抜けてしまって、うまく保存できないのですが。。。。。
これは、どうすればうまく保存できるでしょうか?
  1 Comment
takemoto
takemoto on 16 Sep 2020
同様の現象が再現できていないのですが、例えば以下の処理で生成されるtif、jpgファイルは、当方の環境では「色が抜ける」ことはない様ですが、いかがでしょうか?
load mtlb
spectrogram(mtlb)
saveas(gcf,'aaa.tif')
saveas(gcf,'bbb.jpg')

Sign in to comment.

More Answers (0)

Categories

Find more on 時間-周波数解析 in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!