インパルス応答の求め方は、解析的アプローチ(伝達関数からの逆ラプラス変換)と実験的アプローチ(測定によるシステム同定)の二つに大別されます。
理論的な設計段階では伝達関数を介した計算が使われ、実際のシステムでは測定データからのシステム同定が不可欠です。
本記事では、インパルス応答を求める主要な計算方法・手順・MATLAB/Pythonなどのツール活用・注意点について詳しく解説していきます。
目次
伝達関数からインパルス応答を求める方法
それではまず、伝達関数からインパルス応答を求める解析的な方法について解説していきます。
ラプラス変換と伝達関数の関係
線形時不変システムの微分方程式をラプラス変換すると、伝達関数H(s)が得られます。
伝達関数H(s)は、システムの入出力関係をs領域で表したものであり、インパルス応答h(t)とはラプラス変換対として対応します。
伝達関数とインパルス応答の関係
h(t) = L⁻¹{H(s)}(逆ラプラス変換)
H(s) = L{h(t)}(ラプラス変換)
例:1次ローパスフィルタの伝達関数
H(s) = ωc / (s + ωc)(ωc:カットオフ角周波数)
逆ラプラス変換:h(t) = ωc × exp(-ωct) × u(t)
部分分数展開を使った逆ラプラス変換
複雑な伝達関数の逆ラプラス変換には部分分数展開が使われます。
部分分数展開によるインパルス応答の計算手順
①H(s)を因数分解して極を求める
②部分分数に分解する
③各項の逆ラプラス変換(ラプラス変換表を参照)
④各項を足し合わせてh(t)を得る
例:H(s) = 1/(s²+3s+2) = 1/(s+1) – 1/(s+2)
h(t) = (e^(-t) – e^(-2t)) × u(t)
実験的なインパルス応答の測定方法
続いては、実際のシステムに対してインパルス応答を実験的に測定する方法について確認していきます。
インパルス信号による直接測定
理想的なインパルス(デルタ関数)は現実には生成できませんが、十分に短い時間幅のパルス信号(近似インパルス)を使って実用的な測定が行えます。
例えば、ハンマー試験(インパクトハンマーを使った機械システムの打撃加振試験)や、音響インパルス応答測定(スターターピストルや手拍子などを使った簡易測定)が代表的な手法です。
近似インパルスの周波数帯域が測定対象の帯域よりも十分広いことが、正確な測定の前提条件となります。
M系列信号・スイープサイン信号を使った測定
音響インパルス応答の高精度測定では、M系列信号(擬似ランダム雑音)やスイープサイン信号(チャープ信号)を入力として使い、相互相関計算によってインパルス応答を抽出する方法が広く使われています。
この方法はS/N比が高く、長時間測定による平均化効果が得られるため、コンサートホール・自動車車室・スタジオの音響インパルス応答測定に適しています。
デジタル信号処理でのインパルス応答の扱い
続いては、デジタル信号処理(DSP)におけるインパルス応答の扱いについて確認していきます。
離散時間インパルス応答とFIR・IIRフィルタ
デジタル信号処理では、連続時間のh(t)に対応する離散時間インパルス応答h[n]が使われます。
有限長のインパルス応答を持つフィルタをFIR(Finite Impulse Response)フィルタ、無限長のものをIIR(Infinite Impulse Response)フィルタと呼びます。
FIRフィルタは常に安定で位相特性が設計しやすく、IIRフィルタは少ない係数で急峻な遮断特性を実現できるという特徴があります。
MATLABやPythonでの計算例
MATLABでは「impulse()」関数、Pythonのscipy.signalライブラリでは「impulse()」または「lsim()」関数を使って伝達関数からインパルス応答を簡単に計算・プロットできます。
これらのツールを活用することで、複雑な高次システムのインパルス応答を手計算なしに求めることができ、設計の効率が大幅に向上します。
まとめ
本記事では、インパルス応答の求め方として、伝達関数からの逆ラプラス変換・実験的な測定方法・デジタル信号処理でのFIR・IIRフィルタとの関係について詳しく解説しました。
解析的な方法では伝達関数H(s)の逆ラプラス変換によってh(t)を求め、部分分数展開が複雑な系の計算に有効です。
実験的測定では近似インパルスやM系列・スイープサイン信号を用いた高精度測定が音響・制御分野で広く活用されています。
MATLABやPythonなどのツールを活用することで複雑なシステムの解析が効率化され、フィルタ設計・システム同定・音響解析の実務能力が大きく向上するでしょう。