プロが教えるわが家の防犯対策術!

首記についてご質問させて頂きます。
あるデジタル信号の周波数解析を行う前の最適な窓関数を設計しております。

その際、メインローブとサイドローブを見る必要があると思います。
添付画像(Wikipediaより抜粋)のようなグラフです。

https://ja.wikipedia.org/wiki/%E7%AA%93%E9%96%A2 …


お恥ずかしいお話ですがこれの求め方がよく分かっておりません。


C#のシステム内に組み込む予定なので、求め方はプログラミングを考えています。

データ長Nの実数配列をFFTし、複素数配列に変換するメソッドはすでに実装してあるので、早速、データ長N窓関数配列をFFTした(以下、W[N])のですが、この後どのようにするかが分からず困っております。

W[N]について、パワースペクトル(実部虚部の平方和)、振幅スペクトル(複素数の絶対値)等試しに求めてみましたが、上記Wikipediaのようなグラフにはなってくれませんでした。


ソースコードを下さいとは言いませんので、回答を見て手で実装できる程度の粒度で構いませんので、詳しいお方がいらっしゃいましたら、何卒ご教授の程宜しくお願い申し上げます。

「【デジタル信号処理】窓関数のメインローブ」の質問画像

質問者からの補足コメント

  • ご回答ありがとうございます。

    私もそう思い試してみたのですが、うまくいきませんでした。
    矩形窓はw[n]のnによらず値が1ですので直流波形と言えると思います。
    これに対しFFTを実行しパワースペクトルを求めると、直流成分にのみスペクトルが立ち、それ以外は0になってしまうのです。

    そもそもFFTを実行するのが間違っているのでしょうか…。

    No.1の回答に寄せられた補足コメントです。 補足日時:2016/02/18 09:16

A 回答 (2件)

矩形窓の幅を短めに取ってみるとか。

窓の外の点もないと窓にならないから。
手元に良いプログラム環境がないのでExcelのFFTで試してみたけど、0,...,0,1,...,1,0,..,0と全512データでやっても少しはそれっぽくなったし。
ただFFT結果そのままだと負のDFT binsは出てこないので、周期性を利用して結果の後半を負のDFT binsとみなすようにしないといけませんね。
    • good
    • 0
この回答へのお礼

助かりました

ご回答ありがとうございます。

窓の外の点を付け加えましたところ、無事に作成することができました。
大変助かりました。
ありがとうございました!

お礼日時:2016/02/19 19:47

まずWikipediaの図は矩形窓のパワー・スペクトルと書いてあるので、この例は矩形窓ですね。


ついでにパワースペクトルはデシベル(dB)単位なので、図はパワースペクトルを最大値で割って対数を取って10倍した値ですね。
求めたパワースペクトルをp[n],n=0,...,N-1としたとき、
  y[n]=10*log10(p[n]/max(p)) n=0,...,N-1
としてyのグラフを描いてください。
この回答への補足あり
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!