なぜ、TFESTIMATE 関数で入出力信号からシステムの周波数応答を求めようとしても期待した応答が得られないのですか?
7 ビュー (過去 30 日間)
古いコメントを表示
MathWorks Support Team
2016 年 11 月 29 日
回答済み: MathWorks Support Team
2016 年 11 月 29 日
実験データから得られた入出力信号を TFESTIMATE 関数に与え周波数応答を求めようとしています。入力信号と出力信号についてそれぞれ PWELCH 関数で周波数応答を求めてみると、出力の振幅応答は入力の振幅応答の100倍程度の大きさが得られています。しかしながら、TFESTIMATE 関数で見積もってみると、せいぜい数倍程度の振幅応答しか得られません。期待した応答を得る方法を教えてください。
採用された回答
MathWorks Support Team
2016 年 11 月 29 日
PWELCH は、あくまでも一定周期でサンプリングされた離散信号をフーリエ変換を行いパワースペクトル推定を行った結果となります。TFESTIMATE では、内部でパワースペクトル密度を推定するために、PWELCH を利用しておりますが、実際に伝達関数を求める式は、入力と出力信号のクロスパワースペクトル密度と入力のパワースペクトル密度の比から求められるものとなり、TFESTIMATE 関数も下記(1)式を用いて推定されます。
T_xy(f) = P_yx(f) / P_xx(f) --- (1)
通常求められる伝達関数 T_xy(f) は、必ずしも信頼性のあるものとは限らず、そのため、伝達関数の信頼度というものを評価する必要があり、その時、用いられるのがコヒーレンス関数となります。
コヒーレンスの値は、0 ~ 1 までの値を取り、1の場合は、その周波数において、系の出力が全ての測定入力に起因していることを示しますが、0の場合は、出力は測定入力とは全く関係のない信号や系内部で生じるノイズ、系の非線形などがあると考えられるということになり、その周波数における推定される周波数応答は信頼性は低いということになります。
なお、TFESTIMATE 関数は、次の2つの条件を満たす必要があります。
1) 入力信号が 広域定常(Wide-Sense Stationary)であること
2) システムが、線形時不変であること
適用する入出力信号が上記を満たしていない場合は、上手く見積もれないことが予想されます。
該当の非線形システムによっては、出力応答が安定しなくて求められないケースもあると思われますが、下記関連ソリューションのように、非線形システムに単一周波数の正弦波を入力し、出力応答が落ち着いた時点で、入出力の振幅比から振幅応答を求め、入出力の位相差から位相応答を求め、これを周波数を切り替えながら求めていくという方法が一つの方法として考えれます。
0 件のコメント
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で スペクトル解析 についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!