Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

アプリにより生成されるブロックを使用した Simulink でのワイヤレス波形の生成

この例は、無線波形発生器アプリで使用可能な [Simulink にエクスポート] 機能を使用して生成されたブロックを構成および使用する方法を示します。

はじめに

"無線波形発生器" アプリは、波形の作成、劣化要因の追加、可視化、およびエクスポートを行うための対話型のツールです。ワークスペース、.mat または .bb ファイルに波形をエクスポートできます。また、実行可能な MATLAB® スクリプトまたは Simulink® ブロックに波形生成パラメーターをエクスポートできます。エクスポートした Simulink ブロックを使用して、Simulink で波形を再現できます。この例では、アプリの "Simulink にエクスポート" 機能を使用する方法と、エクスポートしたブロックを構成して Simulink で波形を生成する方法を説明します。

この例では OFDM 波形のエクスポートを取り上げていますが、サポートされているすべての波形タイプに同じプロセスを適用できます。

Simulink へのワイヤレス波形構成のエクスポート

[アプリ] タブの [信号処理と通信]無線波形発生器アプリのアイコンをクリックし、このアプリを開きます。あるいは MATLAB コマンド プロンプトで wirelessWaveformGenerator と入力します。

[Waveform Type] セクションで [OFDM] をクリックして OFDM を選択します。アプリの左端のペインで、選択した波形のコンフィギュレーション パラメーターを調整します。次にアプリ ツールストリップの [Export] をクリックし、[Export to Simulink] を選択して、構成をエクスポートします。

[Export to Simulink] オプションにより Simulink ブロックが作成されます。このブロックは、Simulink モデルの実行時に選択された波形を出力します。開いているモデルがない場合、このブロックは新しいモデルにエクスポートされます。

modelName = 'WWGExport2SimulinkBlock';
open_system(modelName);

"Form output after final data value by" ブロック パラメーターは、指定されたすべての信号サンプルの生成後の出力を指定します。このパラメーターの値は Cyclic repetition および Setting to zero です。Cyclic repetition オプションでは、信号の最後のサンプルに到達後、最初から信号が繰り返されます。Setting to zero オプションでは、ブロックは信号の最後のフレームを生成後、シミュレーションの間、ゼロ値の出力を生成します。"波形のサンプル レート (Fs)" および "波形長" ブロック パラメーターは、[マスク エディター] ダイアログ ボックスの [コード] タブで使用可能な波形構成から導出されます。ブロック パラメーターの詳細については、Waveform From Wireless Waveform Generator Appを参照してください。この図は、エクスポートしたブロックのパラメーターを示しています。

close_system(modelName);

エクスポートしたブロックに Spectrum Analyzer ブロックを接続します。

modelName = 'WWGExport2SimulinkModel';
open_system(modelName);

モデルをシミュレーションし、現在の構成を使用して波形を可視化します。

sim(modelName);

Spectrum Analyzer ブロックは [Waveform sample rate (Fs)] パラメーター (64 MHz) を継承します。

close_system(modelName);

ワイヤレス波形の構成の変更

Simulink モデルを実行すると、エクスポートされたブロックによって、ブロックの [マスク エディター] ダイアログ ボックスの [コード] タブで生成された波形が出力されます。このタブで波形を初期化する MATLAB コードは、ブロックをエクスポートする前に無線波形発生器アプリで選択した構成に対応しています。波形の構成を変更するには、次のオプションのいずれかを選択します。

  • 無線波形発生器アプリを開き、構成を選択し、新しいブロックをエクスポートする。このオプションでは、MATLAB コードの代わりにアプリ インターフェイスを操作し、パラメーター化プロセスでパラメーター範囲を検証し、Simulink モデル実行前に波形を可視化できます。

  • エクスポートしたブロックの [マスク エディター] ダイアログ ボックスの [コード] タブで使用できるコンフィギュレーション パラメーターを更新する。このオプションの場合、このタブで使用できる MATLAB コードを変更する必要があります。これにより、変更適用時にのみパラメーター範囲の検証が行われるようになります。このオプションでは、Simulink モデル実行前の波形の可視化は行われません。選択した波形を生成する MATLAB コードを熟知していない場合には、このオプションを使用して波形パラメーターを変更することは推奨されません。

マスク エディターの [コード] タブで構成を更新できます。マスク エディターを開くには、エクスポートされたブロックをクリックし、"Ctrl+M" を押します。

[コード] タブで使用可能な MATLAB コードを使用して、必要なパラメーターを更新します。たとえば、サブキャリア間隔 scs を 1,500,000 Hz に設定します。

[OK] をクリックし、変更を適用して [マスク エディター] ダイアログ ボックスを閉じます。モデルをシミュレーションし、更新後の波形を可視化します。

modelName = 'WWGExport2SimulinkModelSCSModified';
sim(modelName);

Spectrum Analyzer ブロックにはサンプル レート 96 MHz が表示されます。これは予期されるとおり、前のサンプル レートの 1.5 倍です。

モデルのその他のブロックとのワイヤレス波形構成の共有

読み取り専用のブロック パラメーターと波形コンフィギュレーション パラメーターにアクセスするには、UserData 共通のブロック プロパティを使用します。このプロパティは次のフィールドからなる構造体です。

  • WaveformConfig:波形の構成

  • WaveformLength:波形の長さ

  • Fs:波形のサンプル レート

関数 get_param を使用することで、エクスポートしたブロックのユーザー データにアクセスできます。

get_param([gcs '/OFDM Waveform Generator'],'UserData')
ans = 

  struct with fields:

    WaveformConfig: [1x1 comm.OFDMModulator]
    WaveformLength: 8000
                Fs: 96000000

コールバックで InitFcn を使用して、ユーザー データで使用可能な構造体をベース ワークスペース変数に保管します。InitFcn コールバックは、モデルの更新およびシミュレーション中に実行されます。このコールバックを使用するには、[モデル化] タブをクリックし、[モデル設定] ドロップダウン、[モデル プロパティ] オプションの順にクリックします。[コールバック] ペインで、InitFcn コールバックを選択します。ユーザー データを新しいベース ワークスペース変数 (cfg など) に割り当てます。

エクスポートしたブロックのユーザー データで使用可能なパラメーターは、[コード] タブで構成変更を適用するたびに更新されます。

OFDM 波形を復調するには、OFDM Demodulator ブロックをモデルに追加します。OFDM Waveform Generator ブロックと OFDM Demodulator ブロックの間に AWGN Channel ブロックを接続して、入力信号にホワイト ガウス ノイズを付加します。また Constellation Diagram ブロックを追加して、復調されたシンボルをプロットします。

modelName = 'WWGExport2SimulinkModelWithDemod';
open_system(modelName);

OFDM Demodulator ブロックの構成に必要なパラメーターは、エクスポートしたブロックを構成するために使用されるパラメーターと一致している必要があります (一致していない場合、復調が失敗します)。エクスポートしたブロックのコンフィギュレーション パラメーターにアクセスするには、変数 cfg を使用します。この図は、OFDM Demodulator ブロックのパラメーターを示しています。

OFDM Demodulator ブロックには復調する OFDM 波形全体が必要であるため、エクスポートしたブロックの [Samples per frame] パラメーターを cfg.WaveformLength に設定します。モデルをシミュレートします。

sim(modelName);

OFDM Demodulator ブロックを使用して OFDM 波形を復調した後、Constellation Diagram ブロックによって、結果の QAM シンボルが表示されます。

マルチキャリア波形の生成

マルチキャリア生成では、すべての波形のサンプリング レートが同じでなければなりません。波形を搬送波オフセットにシフトして集約するには、Multiband Combiner ブロックを使用できます。

modelName = 'WWGExport2SimulinkMulticarrier';
open_system(modelName);

波形を周波数でシフトするには、サンプリング レートを上げる必要がある場合があります。Multiband Combiner ブロックは、入力波形をシフトして結合する前にその入力波形をオーバーサンプリングするオプションを提供します。この図は、Multiband Combiner ブロックのパラメーターを示しています。

モデルをシミュレーションし、-80、20、および 100 MHz を中心とする波形を可視化します。

sim(modelName);

参考

アプリ

ブロック

関連するトピック