• ベストアンサー

デジタルフィルタとアナログフィルタ

アナログフィルタでハイパスフィルタをCRで組んだ場合、 DC成分がコンデンサによってカットされると思います。 デジタルフィルタについては、現在勉強中ではありますが、 計測関係のソフトウェアで、FIRフィルタのハイパスが設計 でき、実際にUSB経由でのデータを取り込みながら、試しに 使用してみましたが、DC成分がカットされませんでした。 デジタルフィルタでは、DC成分がカットされるような 設計はできないものと考えてよろしいのでしょうか? (イメージ的にはデジタルオシロのACカップリング時の 動きを期待していましたが・・・) 識者の方のご意見・ご回答をお願い致します。

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

  • ベストアンサー
  • tadys
  • ベストアンサー率40% (856/2135)
回答No.1

フィルタの係数としてはどんな値を使用したのですか? 入力のDCレベルはいくらで出力のDCレベルはいくらなのですか? どんな理由でDC成分がカットされないという判断をしたのですか? デジタルフィルタのHPFでもちゃんと直流分はカットされますよ。 直流分が完全にゼロになるかと言うと、係数の桁数打ち切りによる誤差でゼロにならない事もあります。 コンピュータの内部は2進数で処理しますので10進数で誤差がゼロでも2進数では誤差がゼロにならない事もあります。 浮動小数点では非常に大きな数に非常に小さい数を足す場合には正しい結果が得られない事が有ります。 例えば、手元の電卓(カシオfx-350MS)では(1e11+123)-1e11=123、(1e12+123)-1e12=120、(1e14+123)-1e14=0 となります。 固定小数点ではオーバーフローに対する処理をしないと誤差が出ることがあります。 例えば2ビットの2の補数表現では 0x7F+0x7F=0xFE となり、10進数では128+128=-2となってしまいます。 デジタルフィルタの計算では桁落ち、オーバーフロー等への対策が必要になります。 変数が表現できる数値の範囲や、計算の順序を考慮する必要が有ります。 石川高専のホームページを紹介しておきます。 http://momiji.i.ishikawa-nct.ac.jp/dfdesign/

scheimpflug
質問者

お礼

ご回答いただき、ありがとうございました。 紹介していただいたホームページで係数を 求めさせていただきましたが、同じくDC成分を 取り除くことができなかったです。 ちなみに、0.1Hz以上を通すフィルタを考えて おるのですが、サンプリングが200Hzなので 結構厳しいようです…

その他の回答 (2)

  • tadys
  • ベストアンサー率40% (856/2135)
回答No.3

#1です。 私の質問に対する回答は無いのですね。 不十分な情報に基づいた質問にはそれ相応の回答しか得られませんよ。 -0.25、0.5、-0.25を係数とするフィルタを通せばDC成分をゼロには出来ます。 それであなたの希望する特性のフィルターになるかどうかは知りません。 サンプリングが200Hzで、0.1Hz以下をカットですか。 0.1Hzの1周期の時間は10秒ですから0.1Hzである事を認識するには10秒間以上のデータが必要です。 サンプリングが200Hzですから2000タップ以上のフィルターが必要になるでしょう。

scheimpflug
質問者

お礼

ご回答、ありがとうございました。 0.1Hzを認識するのに10秒以上のデータが必要とのことと、2000タップ以上のフィルターが必要とのことで、デジタルフィルタのぼんやりしていた部分が、理解できました。

  • foobar
  • ベストアンサー率44% (1423/3185)
回答No.2

#1さん回答にあるようにデジタルフィルタでも直流カットはできます。 一度FIRの係数の総和を計算してみる必要があるかと思います。 これが0になっていれば、出力の直流分は計算誤差の範囲内に収まるかと思います。 逆に、フィルタの設計条件などのために、総和が0になっていなければ、その分だけ直流分が残留することになるかと思います。

scheimpflug
質問者

お礼

非常に有効な情報をありがとうございました。 同じデータであれば Σan*xnのxnがすべて同じとなるので、 n * x (a1 + a2 + .... + an)とすると、0になりますよね^^ でも、係数のみの総和で0にはならなかったです。 サンプリング周波数とカットオフ周波数の関係でしょうか。

関連するQ&A

  • ディジタルフィルタの設計

    線形位相(直線位相)を持つハイパスフィルタを設計したいのですが、どういう手順でやれば良いでしょうか? 最終的にはプログラムとして実現しますが、現段階はそのアルゴリズムを考え中です。 このようなディジタルフィルタを実際に設計したことのある方などいましたら、ご教授ください。

  • IIRフィルタとFIRフィルタ

    無限インパルス応答(IIR)フィルタと有限インパルス応答(FIR)フィルタとはアナログでいう、バンドパスフィルタやローパスフィルタ、ハイパスフィルタのデジタル版みたいなものであることは分かるのですが、 無限、有限というのは何を表しているのでしょうか? Wikipediaなどに解説はしてあるのですが、どうしても理解することが出来ません。 どなたか易しく説明して頂けないでしょうか?

  • ハイパスフィルタ

    ハイパスフィルタに関して質問があります。 発振器を用いた実験をしているのですが、その出力に若干のDCオフセットが乗っており、困っています。ちなみに、発振器の出力は50mV~100mVppの振幅で周波数は2~7kHzの範囲で使用しており、オフセットは10mV程度出ています。 そこで、簡単なCRハイパスフィルタ(ACカップリング回路)を通してDCオフセットを除去することにしたのですが、設計に関して疑問点が出てきました。フィルタのカットオフ周波数はCRの積で決まりますが、ということはCとRの選び方に自由度が出てきます。計算上は、例えば、400Hz程度の設計の場合、R=1kΩ、C=0.4uFでもよいですし、R=100Ω、C=4uFでも良いことになると思います。 あまり回路実装の経験がないのですが、このような場合通常何を考慮してRやCを決定するのでしょうか。また、コンデンサの種類でおすすめのものがあれば合わせて教えていただけますでしょうか。 よろしくお願いいたします。

  • オペアンプを用いたフィルタ回路の入出力インピーダンスに関する質問です

    オペアンプを用いたフィルタ回路の入出力インピーダンスに関する質問です 回路初心者なので基本がわかっていません。 1. 例えばSallen-Key型3次ハイパスフィルタの入出力インピーダンスは   どのように求めるのでしょうか?伝達関数は求めてあります 2. 能動フィルタの利点の1つにマッチングが不要とありました。   これは入出力インピーダンスに関わる話なのでしょうか?   もしそうだとすれば能動フィルタの場合、入出力インピーダンスは考えなくてもよいのでしょうか? 3. そもそも入出力インピーダンスとはどの単位で回路を区切って考えるものなのでしょうか?   大規模であれ、小規模であれその基準がわかりません。   また、入出力インピーダンスとは何のために考える必要があるのでしょうか?     4. 実際の回路で例えば上記Sallen-Key型3次ハイパスフィルタの   前段、後段にカップリングコンデンサを入れる場合。このカップリングコンデンサは   単に入れたらフィルタの初段コンデンサと直列に挿入されますが、これでは   求めた特性に狂いがでると思います。どのように対応するのでしょうか?

  • FIRフィルタ

    FIRフィルタの設計に関して、ホワイトノイズを入力信号として使用すると、各周波数成分が独立に増減しているか確認できない、つまり、別の周波数成分に影響を与えていないことを確認できないようなのですが、どのように実験すればよいのでしょうか?

  • デジタルフィルタの設計

    はじめてデジタルフィルタの設計をすることになりました。 決まっている事項は以下のようになります。 ・25msごと(40Hz)にA/D変換されたデータが出力されます。 ・出力データを使って波形を描きます。 ・描く波形はおよそ周波数は0~10Hzのものです。 ・係数を算出して、C言語のプログラムに組み込みます。 今のところ決まっているのはこのくらいです。 自分でも勉強していますが、 FIRは計算が比較的簡単で、安定しているが、次数が多くなる。 IIRは複雑で、不安定になることもあるが、次数が少なくてよい。 FIRでは、窓関数やREMEZ法などリプルを小さくする方法がある。 IIRでは、バタワース、チェビシェフ、ベッセルなどの方法がある。 程度のことしかわかっていません。 どのように設計していけばいいかわかりません。 経験のある方、良いアドバイスをお願いします。 また何かフリーツールで設計できるものがあれば教えてください。

  • 低ノイズのハイパスフィルタの作り方について

    一度質問させて頂いたのですが、質問の意図がつかみにくそうなので少し質問を変えさせて下さい。 とくかく、直流成分だけをカットした低ノイズのハイパスフィルタを作りたいと考えています。 アクティブフィルタだと必ず電源のノイズが入るので、パッシブフィルタを考えているのですが、 CRフィルタやLCフィルタはノイズはほとんどないと考えて良いのでしょうか? 何かアドバイスがありましたら教えて下さい。 よろしくお願い致します。

  • フィルタをするには???

    電子回路においてフィルタをかけるには、コンデンサを加えると、ノイズなど直流じゃない成分などをカットするといった機能を果たすと勉強しましたが、一体どういった動作原理でそのようになるのでしょうか??誰か分かる方いませんでしょうか?よろしくおねがいします。

  • 非定常波形のフィルタリング

    構造物の振動計測で加速度波形を測定します。アナログ波形を200Hzほどでデジタルサンプリングします。計測対象周波数帯域は5Hz以上なのですが、測定データには2Hz以下の低周波成分が混じります。高価な計測機器であればハイパスフィルタで3Hz未満をカットしてしまえばいいのですが、あいにく手持ちの機器には10Hz以上を通すハイパスの設定しかありません。 そこでAD変換をしてサンプリングした後に後処理で3Hz以下をカットしたいと思います。手始めに全体をFFTして低周波成分の係数を除いて逆変換してみました。ところが低周波ノイズは非定常で、すなわち時刻暦波形の中で低周波ノイズが入っている部分と入っていない部分があります。それを全体一括で扱うと言うのは無理があります。ハードウェアでアナログフィルタをかけるように波形の中のその場その場でフィルタをかけて低周波成分が混じっている部分のみカットするということが出来ればうれしいです。 1.こういう場合、どのような手法が取られるのでしょうか? 2.あるいは10万円程度以下のソフトでこういった処理の出来るソフトはありませんか?   振動に限らず、音声や通信など他分野のソフトでも結構です。 よろしくお願いします。

  • マイク用DCカットハイパスフィルタについて。

    マイク用DCカットハイパスフィルタについて。 カットオフ周波数の計算ですが、レコーダには入力インピーダンスがありますよね。 ローカット=1/2×π×C×入力インピーダンスとパラに入る抵抗の合成抵抗 計算式はこれで合ってますか?