バンドパスIIRフィルタの低域におけるエラー

このQ&Aのポイント
  • バンドパスIIRフィルタの低域においてナイキスト周波数に対して通過域が低域にありすぎるとエラーが起こります。
  • バンドパスIIRフィルタを使用してオクターブバンド分析を行う際に問題が発生しています。
  • 解決策としては、遮断帯域の差を縮めるためにサンプリング周波数を変更することが考えられます。
回答を見る
  • ベストアンサー

バンドパスIIRフィルタの低域におけるエラー

バンドパスIIRフィルタの低域におけるエラー 申し訳ないのですが教えて下さい。  波形データのオクターブバンド分析結果を出す為に、ScilabやOctaveなどMatlabクローンのソフトを使ってバンドパスIIRフィルタを使用して各バンドでフィルタを通過させるのですが、ナイキスト周波数に対して通過域が低域にありすぎるとエラーを起こすのか、結果が出てきません。サンプリング周波数の値を変えて遮断周波数との差を縮めればそのようなエラーは起きません。例えば、480Hzサンプリングでも、1Hzと2Hzの中心周波数のバンドパスフィルタは値が帰っていなかったり、波形がおかしかったりします。  フィルタ次数は4で行っていて、1などに下げればそのナイキスト周波数と遮断帯域の差ではエラーを起こさなくなりますが、もっと差が広がった場所では起きますし、JISで定めるオクターブフィルターの遮断性能を考えると次数を下げる訳にも行きません。  本家Matlabはもっていないので判りませんが、会社のLabviewですと問題はありません。解決策はデサンプリングしてエラーを起こす帯域ではサンプリング周波数を落とすしか無いのかな?と思うのですが、実際はどうなのでしょうか?お教え頂けると幸いです。 宜しくお願い致します。

  • 1take
  • お礼率75% (3/4)

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

#2です。 可能ならどんどんデシメーションしても良いですが、 デシメーション後に分析する周波数帯域のスペクトルが変化していては意味がありません。 FFT等でで分析する周波数帯域のスペクトルが変化しないことを確かめる必要があります。 つまりどれだけデシメーションできるかはデシメーションの精度によります。 分析帯域とナイキスト周波数が近ければ、デシメーションの精度が足りなくなるでしょう。 でも最終的にはJIS測定ができる装置で実機測定するんですよね?

1take
質問者

お礼

ありがとうございました。

1take
質問者

補足

回答ありがとうございます。助かります。  分析帯域が、ナイキスト帯域に近くても遠くても問題になる・・・難しいものですね。ナイキスト周波数の付近は折り返しの影響もありますから、サンプリングの段階でオクターブ分析帯域がナイキスト周波数に近くならないようにしています(評価したい帯域の2.4倍や2.56倍位以上でサンプリングしています)。  低域ではどこからdecimationするかは、Scilabでエラーを起こす帯域だけに絞るか、ただ振動の場合は同じレコーダーで騒音と一緒に収録して無意味にサンプリングが高い事もあり、どこのオクターブの帯域でエラーを起こすかはサンプリングによって違ってしまうので、機械的に例えばオクターブの帯域がナイキスト周波数の1/2より低ければdecimationしようかと思います。その辺はdecimation前と後でスペクトル分析して決めたいと思います。  オクターブバンド分析はJISで定められた試験法があるので、それに従って性能を確認します。また同じ波形データを使って、RION SA27等の実機や、会社で使用しているLabview等のデジタル分析ソフトと結果を比較して確認をした後は、Scilabで作成したプログラムの結果だけで評価していきたいと思っています。  実機は現場で直ぐに見たい場合は良いのですが、後処理でレコーダーに収録したデータを1chづつ分析したり、ペンレコーダで一旦書かせて、巻き戻してペンレコーダーの波形を目安に分析するのは、以前はそうしていましたが、最近はレコーダーのデータがデジタルファイルになっていたり、データをパソコンに取り込むだけで電圧出力の出来ないものもありますので、今後は後処理は分析ソフト上だけで賄いたいと思っています。

その他の回答 (2)

回答No.2

精度が足りないのでしょう。 普通はデシメーションします。 時間があれば、インパルス不変法とかでs-z変換してみれば 精度が足りない理由がわかります。

1take
質問者

補足

回答ありがとうございます。  お手数ですが、もう少し教えて頂きたいのですが、バンドパスの中心周波数がナイキスト周波数からどの程度離れていたらdecimationするのでしょうか?。それともdecimation可能ならどんどん行った方が良いのでしょうか。?。  参考書やネットで調べても、なかなか情報が見つかりませんでした。私の用途は、各1/3オクターブバンドのバンドパスフィルタを通して時定数をかけて、各バンドのレベル波形を求める事です。

  • hot-IC
  • ベストアンサー率87% (7/8)
回答No.1

次数が小さいからではないでしょうか? Labviewでは次数はいくつになっていますか? あと、Matlab centralなどを見ると、Matlab用のオクターブ分析のコードがいくつか あります。 http://www.mathworks.com/matlabcentral/fileexchange/69-octave 試してみたところOctaveでも一部動作するようです。 また、作者の方の論文も参考になりそうです。 http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.57.5728 JISは国際規格と互換性があるはずですが、細かいところはご自身で確認されたほうが良いと思います。

1take
質問者

お礼

回答ありがとうございます。  labviewでの次数は同じく4にしています。Scilab、Octave共に次数を上げるとよりナイキスト周波数に近い帯域もエラーになってしまいます。  ご紹介頂いたファイルの中身を見たら、低いOct帯域でdecimateしている記述があるので、私と同じ問題でそうしているのか、計算時間の短縮の為なのかは判りませんが、私もdecimateしてみます。ちなみにMatlabのFilter Design Toolboxには中心周波数と次数だけで結果が出てくる関数があるようなので、Labviewもそうですが流石に高いだけあると思います。しかしオクターブバンドフィルタは基本的にJISで定める計算式で中心周波数を出し、同じく計算式で上限下限遮断周波数を指定したバンドパスフィルタなので、苦労するとは思いませんでした。 どうもありがとうございました。

関連するQ&A

  • IIR型の低域通過フィルタについて

    次のような問題を出されたのですが、解き方がさっぱり分かりません。 どなたか解答例をお願いします。 遮断周波数がπ/3となるIIR型の低域通過フィルタを設計したい。 (a)アナログバタワースフィルタから、双1次z変換によってデジタルフィルタの設計をしたい。このとき、アナログフィルタにおける遮断周波数はどうなるか。 (b)上記の遮断周波数で設計した3次バタワースフィルタの伝達関数は添付画像の式のようになる。対応するデジタルフィルタの伝達関数H(z)を示せ。 (c)|H(z)|の周波数特性を求めよ。

  • IIR型の低域通過フィルタについて

    次のような問題を出されたのですが、中間試験に備えて解き方をマスターしたいと思っています。 どなたか解答例をお願いします。 遮断周波数がπ/3となるIIR型の低域通過フィルタを設計したい。 (a)アナログバタワースフィルタから、双1次z変換によってデジタルフィルタの設計をしたい。このとき、アナログフィルタにおける遮断周波数はどうなるか。 (b)上記の遮断周波数で設計した3次バタワースフィルタの伝達関数は添付画像の式のようになる。対応するデジタルフィルタの伝達関数H(z)を示せ。 (c)|H(z)|の周波数特性を求めよ。 どなたか、回答よろしくお願いします。

  • IIRフィルタの応答を高速にする方法

    入力信号をIIRフィルタに通すと、一般に、出力が落ち着くまで時間がかかります。 この時間を短縮する方法はありますでしょうか。 例えば、一定振幅 A Hz + B HzのSin波を、中心周波数がA Hzで帯域幅が狭く次数の高いIIR BPFに通すと、出力信号の振幅は、しばらく0が続き、途中からグワっと大きくなり、やがて一定のA Hzに落ち着きます。 帯域幅や次数を変えないで、信号を入れた直後から、振幅一定のA Hzの出力を得たい(応答を早める)のですが、可能でしょうか。 アドバイス、お願いいたします。

  • FIRフィルタの遅延量補正とIIRフィルタの安定性について教えて頂きた

    FIRフィルタの遅延量補正とIIRフィルタの安定性について教えて頂きたいのですが。  双一次z変換を用いていくつかのIIRフィルタを作る事が出来ました。Scilbが持つIIR関数と比較して同じ結果になっています。IIRフィルタがフィルタ係数によっては不安定=発信したりする、というのはScilab等の結果と同じになる→フィルタ係数も同じ→不安定にならない。と思ってよいのでしょうか?。例えばですが、あるサンプリング周波数の波形データをフィルタする為に、同じサンプリング周波数で作ったImplus波形をIIRフィルタに放り込んで周波数応答を確認したら、実際にフィルタする波形データの最初から最後までその周波数応答でフィルタされると私は理解しているのですが。  私のフィルタを使う用途の場合は、フィルタの計算速度は特に制限は無く、速いに越した事はありませんが得られた結果が正確な事が大切なので、安定性や係数誤差の事を考えるとIIRフィルタではなくFIRフィルタでも構わないのですが、FIRフィルタの場合だとタップ数が多くなるので波形の遅延量が無視出来ません。フィルタを通した波形は次定数fastのレベル波形にして100Hz位で出すとは言え、IIRよりは数秒かコンマ数秒遅延した結果になると思います。そのような場合、遅延量を補正するとしたらどうしたら良いのでしょうか?。個人的にはタップ数が(IIRの場合は次数が)遅延量と思っているのですが。  宜しくお願い致します。

  • IIRフィルタについて

    IIRフィルタで疑問があり、過去のページを調べてもわからなかった ので新たに質問を作りました。 今検討しているのは下記HPの図1のIIRフィルタの1次版(a1,b1,b0のみ) で伝達関数(Z領域)、サンプリング周波数、各係数が分かっています。 (逆に言うとこれしか分かってません) ここで上記の資産を流用して新たにサンプリング周波数 だけを変更して使いまわしたいのですが係数をどのように 変更したらよいのか分からずに困っています。 (アナログの伝達特性などはわかりません) どなたか分かる方、教えていただけないでしょうか。 よろしくお願いします。 http://adsp2191.hp.infoseek.co.jp/misc/009_difficult_sp.shtml もしくは http://www.ics.es.yamanashi.ac.jp/~hanawa/asp/ppt/asp-6.ppt(39枚目スライドの右図)

  • ローパスフィルタ

    デジタルフィルタでローパスフィルタを作っています。1.1Hzのノイズを取り出そうとして、サンプリング周波数100Hzで遮断周波数が1.1Hzとしたときフィルタをつくり、サンプリング周波数200Hzで遮断周波数が2.2Hzのフィルタを作ったとき、この二つのフィルタでそれぞれ1.1Hzのノイズを取り出そうとしたのですが、サンプリングが100Hzのときはほとんど取り出せたのですが、200Hzのときは、半分くらいしか取り出せませんでした。2.2Hzまで取り出せるはずなのに、わかる人いますか?

  • ローパスフィルタ

    今、ローパスフィルタを作っています。そこでわからないことがあります。サンプリング周波数と遮断周波数の差が大きくなるほどフィルタは機能しないのですか?今作っているのは、サンプリング周波数100Hz、遮断周波数1.1Hzの時は信号を通しているのに、サンプリング周波数500Hz、遮断周波数5.5Hzだと、ぜんぜん信号を通しません。

  • デジタルフィルタ(IIR)

    無限インパルス応答(IIRフィルタ)について、サルでもわかるようにメカニズム・カットオフ周波数について教えて下さい。又は、サルでもわかるように解説された書籍・HPなど御存知でしたら教えて頂けると幸いです。

  • デジタルフィルタ

    デジタルフィルタを設計して、サンプリング周波数1000Hz、カットオフ周波数100Hzに設定してフィルタ係数を計算して作製して、本当にカットオフ周波数100Hzになるか、サンプリング周波数1000Hzまで測定をして振幅特性や周波数特性を出したら、先生に、まだ理解していないと怒られました。理解してないところとはどこのことだと思いますか?私の見解はサンプリング周波数の1/2まで行くと、ひずみが発生すると言うことかなぁと思っているのですが。どうでしょうか?

  • ナイキスト周波数に関して

    ナイキスト周波数に関する質問です。 本に 「ナイキスト周波数は、最少標本化周波数である。」 ネットに 「ナイキスト周波数は、サンプリング周波数の1/2である。」 と書かれていました。 どちらも、成り立つのであるなら、 ナイキスト周波数が、原信号の帯域幅の2倍の周波数であるので、 標本化をする際、サンプリング周波数は帯域幅の4倍からしか取れなという事になるのですか? そんなはずは、ないと思うのですがどのように考えたら良いのでしょうか? よろしくお願いします。

専門家に質問してみよう