Spectrum Scope で周波数応答が表示されないのはなぜですか。
9 views (last 30 days)
Show older comments
MathWorks Support Team
on 25 Oct 2013
Answered: MathWorks Support Team
on 25 Oct 2013
Simulink上である信号の周波数特性を表示させたいと考えております。試しに
Sine Wave(10Hz) -> Zero-Order Hold -> Spectrum Scope
を接続した単純な Simulink モデルを作成して実行してみたのですが、
結果には何も表示されませんでした。
周波数応答を表示するため、どのように設定すればよいでしょうか。
Accepted Answer
MathWorks Support Team
on 25 Oct 2013
連続時間の離散化及び周波数ドメインにおける座標軸の設定の調整が必要と考えられます。以下の 3 点について調整が必要となります。
1. サンプリング定理に基づく離散化
Zero-Order Hold にて少し余裕を持ったサンプリング間隔で正弦波の離散化を行ってください。周波数 f = 10Hz の正弦波の場合、サンプリング周波数が 2f 以上となります。ただし、2f でサンプリングしますと、シミュレーションでは sin(n*pi) n = 0,1,2,... をサンプルとされてしまいますので、結果として正しい正弦波のサンプル値とはなりません。そうならないため、例えば 30Hz もしくそれより高い周波数でサンプリングを行ってください。Zero-Order Hold ブロックパラメータではサンプリングの設定を行うにはサンプル時間としてサンプリング周波数の逆数を設定します。
2. Spectrum Scope の座標軸の調整
Spectrum Scope にて Y 軸のデフォルト範囲が [-10, 10] となっております。ご検討中の正弦波における周波数応答の範囲はデフォルトの範囲を超えますので、Spectrum Scope の 座標軸 --> Autoscale を選択いただきますと、表示が可能となります。
3. サンプルベース信号における信号のバッファの必要性
解析対象の信号がサンプルベースの信号の場合、スカラの信号に対し、FFTを掛けることになってしまいます。
つまり、FFTの点数を1点としてフーリエ変換されますので、入力の信号がそのまま出力されることになってしまいます。
サンプルベース信号を入力される場合は、 [Scope Properties]タブの "Buffer input" にチェックを入れて、信号点数を溜めてからFFTすることになります。
0 Comments
More Answers (0)
See Also
Categories
Find more on シミュレーション結果の表示と解析 in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!