デジタルフィルター設計 戻る
振動・波動

デジタルフィルター設計 — 周波数応答シミュレーター

バターワース(IIR)またはウィンドウFIRを選び、フィルタータイプ・次数・カットオフ周波数をスライダーで調整。振幅(dB)・位相応答を対数スケールでリアルタイム確認できます。

フィルター設定
フィルタータイプ
設計手法
サンプリング周波数 fs
Hz
カットオフ fc₁
Hz
フィルター次数 N
統計サマリー
計算結果
fc₁ (Hz)
Nyquist (Hz)
次数 N
振幅応答 [dB] — 対数周波数軸
磁場
位相応答 [度]
位相
ブロック図
ブロック線図
理論・主要公式

デジタルフィルター設計とは

🙋
デジタルフィルターって何ですか?アナログのフィルターと何が違うんですか?
🎓
大まかに言うと、コンピュータで信号を加工するソフトウェア的なフィルターだね。アナログは抵抗やコンデンサで作るけど、デジタルは数値計算で実現する。例えば、エンジンの振動データから特定の回転数(周波数)のノイズだけを消したい時、このシミュレーターで設計したフィルターをプログラムに組み込むんだ。まずは上の「フィルタータイプ」を「ローパス」に、「設計手法」を「バターワース」にしてみて。スライダーでカットオフ周波数を動かすと、どの周波数から減衰するかがリアルタイムで見えるよ。
🙋
え、そうなんですか!「バターワース」と「ウィンドウFIR」って、どっちを使えばいいんですか?
🎓
実務では目的で使い分けることが多いね。バターワース(IIR)は少ない「次数N」で急激に減衰するのが特徴で、計算が軽い。逆にFIRは「窓関数」を選べて、位相が歪まない(線形位相)のが強み。音声処理では位相歪みが気になるからFIRが多いかな。シミュレーターで「次数N」を同じ値にして、両方の振幅応答を比べてみ。バターワースの方が減衰が急なのがわかるはずだよ。
🙋
「窓関数」にハミングやハニングがあるけど、これは何を変えてるんですか?
🎓
FIRフィルターの設計で、いかに「理想」に近づけるかを決めるんだ。ハミング窓はサイドローブ(不要なこぼれ)を小さく抑えるから、ノイズをしっかり除去したい通信分野でよく使う。ハニング窓はメインローブが広い代わりに、周波数分解能を上げたい分析向きだ。シミュレーターでFIRを選び、「窓関数」を切り替えながらグラフを確認してみて。減衰の仕方(サイドローブの大きさ)が変わるのがわかるよ。

よくある質問

バターワース(IIR)は帰還構造を持ち、少ない次数で急峻な減衰が得られますが、位相応答が非線形になります。ウィンドウFIRは帰還がなく、常に線形位相を保つため波形歪みが少ないですが、同じ減衰特性を得るにはより高い次数が必要です。用途に応じて選択してください。
次数を上げると、振幅応答の減衰傾斜が急峻になり、通過域と阻止域の境界がより明確になります。ただし、IIRの場合は高次で不安定になりやすく、FIRの場合は計算負荷が増えます。位相応答も次数に応じて変化するので、リアルタイムで確認しながら調整してください。
カットオフ周波数は、通過域と阻止域の境界を決める値です。例えばローパスフィルターでは、この周波数より低い信号を通し、高い信号を減衰します。サンプリング周波数の半分(ナイキスト周波数)を超えない範囲で、スライダーを動かしながら振幅応答の変化を確認して最適値を決めてください。
-3dBの点は、信号の電力が半分(約0.707倍の振幅)になる周波数で、一般的にフィルターのカットオフ周波数として定義されます。このツールでは、設定したカットオフ周波数付近で振幅が-3dBになるかを確認することで、フィルター設計が意図通りかを検証できます。

実世界での応用

振動・騒音(NVH)解析:自動車や航空機の開発では、エンジン振動や走行風切音から特定周波数成分を抽出・除去します。回転数に同期した次数成分を追跡するため、カットオフ周波数を可変とするフィルター設計が重要です。

生体信号処理:心電図(ECG)や脳波(EEG)の計測データには、筋電ノイズや商用電源ノイズ(50/60Hz)が混入します。ノッチフィルター(狭帯域除去フィルター)やローパスフィルターを用いて、診断に有用な信号成分だけを取り出します。

オーディオ・音響処理:音楽制作や音声通信では、特定の周波数帯域をブーストまたはカットするイコライザー、高音域のノイズを除去するデエッサーなどがフィルターの応用例です。FIRフィルターの線形位相特性は、音の歪みを防ぐために不可欠です。

通信システム:無線通信では、所望のチャネル(周波数帯)のみを通し、隣接チャネルを強く遮断する帯域通過フィルターが必須です。高い選択性(急峻な遮断特性)が要求されるため、最適なフィルタータイプと次数の選択が設計課題となります。

よくある誤解と注意点

まず、「次数Nが高いほど良いフィルター」という誤解があります。確かに次数を上げると遮断特性は急峻になりますが、計算量が増え、リアルタイム処理では遅延が問題になります。例えば、マイコンで処理する場合、バターワースIIRでN=8を超えると、係数の量子化誤差の影響で発散するリスクも。実務では「必要十分な性能」を見極め、ローパスならN=4〜6で設計することが多いです。

次に、カットオフ周波数$f_c$の設定ミスです。シミュレーター上では$f_c$を自由に動かせますが、実際の信号処理ではサンプリング定理を忘れてはいけません。サンプリング周波数$f_s$が10kHzの場合、理論上扱える最高周波数は5kHz(ナイキスト周波数)です。ここで$f_c$を4.8kHzに設定すると、折り返し歪み(エイリアシング)の危険地帯に突入します。安全マージンをとり、$f_c$は$f_s$の1/4以下(この例なら2.5kHz以下)に抑えるのが定石です。

最後に、フィルター適用による信号の「頭出し」問題です。フィルターは過去のデータに依存するため、適用開始直後の出力は不安定です。例えば、振動データの最初の0.1秒はフィルターが定常状態に達しておらず、信頼できません。実務では、この過渡応答期間を除外するか、双方向フィルタリング(filtfilt処理)で位相歪みを消す工夫が必要です。