Spectrum Scope ブロックで計算した結果を MATLAB Workspace 上に保存できますか?

조회 수: 1 (최근 30일)
MathWorks Support Team
MathWorks Support Team 2013년 10월 25일
답변: MathWorks Support Team 2013년 10월 25일
Spectrum Scope ブロックで計算した結果を MATLAB Workspace 上に保存できるか教えてください。

채택된 답변

MathWorks Support Team
MathWorks Support Team 2013년 10월 25일
Spectrum Scope ブロックからは、スペクトルデータを直接 Workspace 上に出力できませんが、 Signal Processing Blockset のSignal Processing Sinks ライブラリ内にある、''Signal To Workspace ブロック'' をSpectrum Scope ブロック内に追加することにより可能です。
ブロック追加の手順は以下の通りです。
0) [R2012a のみ] Spectrum Scope ブロックを右クリックし、「ロックされたリンクのオプション」→「ライブラリブロックに移動」で表示されるライブラリ側のモデルにて以下の操作を行います。
- 「編集」→「ライブラリのロックを解除」
- 「編集」→「ライブラリへのリンクのロックを解除する」
- ライブラリ側モデルよりシミュレーションモデルへとインポート
- インポートされたモデルで Spectrum Scope を置き換え
1) Spectrum Scope ブロックを右クリックし、「リンクオプション」→「リンクを使用不可能にする」を選択します。
2) Spectrum Scope ブロックを右クリックし、「マスクブロックのモデル表示」を選択します。
3) Periodogram ブロックの出力に、 ''Signal To Workspace'' ブロックを追加します。
ブロックを追加した後、シミュレーションを実行すると、スペクトルデータが変数 yout としてワークスペース上に出力されます。(変数名は、Signal To Workspace ブロックのパラメータで設定可能です。)
なお、Signal To Workspace ブロックの代わりに、Simulink 基本モジュールの Sinks ライブラリ内にある ''To Workspace ブロック'' を使用することもできます。その際、To Workspaceブロックのパラメータで、[保存フォーマット]を「配列」に設定しておくと、上記と同等の結果を得ることができます。
なお、ここで Workspace 上に保存される変数 youtを Figure ウィンドウ上に表示する例を以下に示します。
Fs = 200;          % サンプリング周波数
yout = squeeze(yout);  % 1 の次元を削除
[n,m] = size(yout);    % yout のサイズ(n: FFT点数、m:総フレーム数)
f = Fs*(0:n/2)/n;     % 周波数ベクトルの作成
frn = 16;          % 観察したいフレーム
% ナイキスト周波数までをパワースペクトル表示
plot(f,yout(1:n/2+1,frn))
% デシベル表示
plot(f,10*log10(yout(1:n/2+1,frn)))
% 片対数スケールでデシベル表示
semilogx(f,10*log10(yout(1:n/2+1,frn)))

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 シミュレーション結果の表示と解析에 대해 자세히 알아보기

제품


릴리스

아직 릴리스를 입력하지 않았습니다.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!