OFDM Modulator Baseband
OFDM 法を使用した変調
ライブラリ:
Communications Toolbox /
Modulation /
Digital Baseband Modulation /
OFDM
説明
OFDM Modulator Baseband ブロックは、直交周波数分割多重 (OFDM) 法を使用して周波数領域信号を変調します。詳細については、直交周波数分割多重を参照してください。出力は、OFDM 変調信号のベースバンド表現です。
このアイコンには、利用可能なすべての端子を使用したブロックが表示されています。
![]()
例
このモデルは、オーバーサンプリングされた OFDM 変調信号を、単入力単出力 (SISO) チャネルを通してフィルター処理します。また、チャネルでフィルター処理を行った後に信号を復調し、元のデータと復調後の出力を比較します。

cm_oversample_ofdm_siso モデルは以下を行います。
ランダムな整数データのシンボルとパイロット入力のシンボルを生成します。
データ シンボルとパイロット シンボルを 16-QAM 変調します。
QAM 変調された信号を OFDM 変調します。OFDM の変調器と復調器のペアは、シンボルごとにパイロット サブキャリア インデックスとサイクリック プレフィックス長が異なる 3 つのシンボルを処理します。OFDM 信号には、モデルによって 4 倍のサンプル レートで生成されたデータとパイロットが含まれています。
SISO AWGN チャネルを経由して OFDM 変調された信号をフィルター処理します。
OFDM 復調を実行し、データ信号とパイロット信号を別々に出力します。
16 QAM 復調を実行し、データ シンボルとパイロット シンボルを取得します。
Error Rate Calculationブロックを使用して、データ信号とパイロット信号のシンボル エラー レートを計算します。
モデルは、コールバック関数 PreLoadFcn を使用して、ブロック パラメーターの構成に使用する変数を初期化します。詳細については、モデル コールバック (Simulink)を参照してください。
データ シンボルとパイロット シンボルのエラー レートを表示します。
The data had a 0.014533 symbol error rate for 126126 samples. The pilots had a 0.014902 symbol error rate for 12012 samples.
RMSブロックは、FFT のサイズに対するアクティブ サブキャリア数の比を表す値によってスケーリングされた OFDM 変調信号を測定し、信号強度がほぼ 1 であることを確認します。
The measured RMS value is 0.98499.
拡張例
端子
入力
入力ベースバンド信号。NDataSC-by-NSym-by-NStreams の配列として指定します。
NDataSC はデータ サブキャリアの数。NDataSC = NFFT − NleftG − NrightG − NDCNull − NPilot − NCustNull で計算される。
NFFT はサブキャリアの数。[FFT 長] によって指定される。
NleftG は左側ガード バンドのサブキャリアの数。[ガード バンド数] の最初の要素によって指定される。
NrightG は右側ガード バンドのサブキャリアの数。[ガード バンド数] の 2 番目の要素によって指定される。
NDCNull は DC null に含まれるサブキャリアの数。[DC null を挿入] の選択に基づいて
0または1として指定される。NPilot は各シンボルに含まれるパイロット サブキャリアの数。
[パイロット入力端子] を選択した場合、NPilot =
size([パイロット サブキャリア インデックス],1)。[パイロット入力端子] を選択しなかった場合、NPilot =
0。
NCustNull はカスタム null に使用されるサブキャリアの数。カスタム null を使用する場合、[パイロット サブキャリア インデックス] を 3 次元配列として指定しなければならない。
NSym はシンボルの数。[OFDM シンボル数] によって指定される。
NStreams は送信ストリームの数です。[送信アンテナ数] によって指定されます。送信アンテナの物理的な数以下でなければなりません。
詳細については、サブキャリアの割り当て、ガード バンド、およびガード インターバルを参照してください。
データ型: double | single
複素数のサポート: あり
パイロット信号。NPilot×NSym×NStreams の配列として指定します。
NPilot は各シンボルに含まれるパイロット サブキャリアの数。
size([パイロット サブキャリア インデックス],1) によって決まる。NSym は OFDM シンボルの数。[OFDM シンボル数] によって指定される。
NStreams は送信ストリームの数です。[送信アンテナ数] によって指定されます。送信アンテナの物理的な数以下でなければなりません。
詳細については、サブキャリアの割り当て、ガード バンド、およびガード インターバルを参照してください。
依存関係
この端子は [パイロット入力端子] を選択した場合に表示されます。
データ型: double | single
複素数のサポート: あり
出力
OFDM 変調されたベースバンド信号。入力信号と同じデータ型の (osf × NOut)-by-NStreams の行列として返されます。
osf は、
OversamplingFactorによって決定されるオーバーサンプリング係数です。[サイクリック プレフィックス長] がスカラーである場合、NCP =
CyclicPrefixLengthおよび NOut = NSym × (NFFT + NCP)。[サイクリック プレフィックス長] が行ベクトルである場合、NCPTotal =
sum([サイクリック プレフィックス長]) および NOut = (NSym × NFFT) + NCPTotal。NSym はシンボルの数。[OFDM シンボル数] によって指定される。
NFFT はサブキャリアの数。[FFT 長] によって指定される。
NStreams は送信ストリームの数。[送信アンテナ数] によって指定される。送信アンテナの物理的な数以下でなければならない。
パラメーター
ブロック パラメーターを対話的に編集するには、プロパティ インスペクターを使用します。Simulink® ツールストリップの [シミュレーション] タブの [準備] ギャラリーで [プロパティ インスペクター] を選択します。
FFT 点の数。正の整数スカラーとして指定します。FFT の長さは、8 以上で、かつサブキャリアの数と等しくなければなりません。
左保護帯域と右保護帯域に割り当てられたサブキャリアの数。2 行 1 列の整数値ベクトルとして指定します。左右のガードバンド サブキャリアの数 [NleftG; NrightG] は、[0,⌊NFFT/2⌋ − 1] の範囲内でなければなりません。ここで、NFFT は、OFDM 信号に含まれるサブキャリアの総数で、[FFT 長] によって指定されます。詳細については、サブキャリアの割り当て、ガード バンド、およびガード インターバルを参照してください。
このパラメーターを選択すると、DC サブキャリアで null 値が挿入されます。挿入した null DC サブキャリアは、周波数帯域の中心に配置され、次のインデックス値をもちます。
NFFT が偶数の場合、(NFFT / 2) + 1。
NFFT が奇数の場合、(NFFT + 1) / 2。
NFFT は、OFDM 信号に含まれるサブキャリアの総数で、[FFT 長] によって指定されます。
パイロット サブキャリア入力端子を追加するには、このパラメーターを選択します。このパラメーターを設定する場合、次のようになります。
off— 入力データ端子 In にはパイロット情報が組み込まれることがありますが、ブロックがパイロット サブキャリアのインデックスを割り当てることはありません。on— ブロックは、入力端子 Pilot におけるパイロット信号を変調するため、[パイロット サブキャリア インデックス] で指定されたサブキャリアを割り当てます。
パイロット サブキャリアの位置を表すインデックス。次の範囲の整数要素値から成る列ベクトル、行列、または 3 次元配列として指定します。
ここで、NFFT はサブキャリアの総数で、[FFT 長] によって指定されます。また、NleftG と NrightG は左右のガード バンドで、[ガード バンド数] によって指定されます。
NPilot 個のパイロット キャリア インデックスを、各シンボルについて同じサブキャリアに割り当てることも、NSym 個の異なるサブキャリアに割り当てることもできます。また、このインデックスを NStreams 個の送信ストリームに割り当てることができます。
パイロット インデックスがすべてのシンボルと送信ストリームで同じである場合、パラメーターの次元は NPilot-by-1 になります。
パイロット インデックスがシンボルによって異なる場合、パラメーターの次元は NPilot-by-NSym になります。
Pilot 端子にシンボルが 1 つだけ含まれるが、ブロックの構成では複数の送信ストリームが割り当てられている場合、パラメーターの次元は NPilot-by-1-by-NStreams になります。
インデックスがシンボルの数と送信ストリームの数によって異なる場合、パラメーターの次元は NPilot-by-NSym-by-NStreams となります。
ヒント
複数の送信ストリームによる送信間の干渉を最小限にするため、各シンボルに割り当てるパイロット インデックスをストリーム間で一意にしなければなりません。
依存関係
このパラメーターは、[パイロット入力端子] を選択した場合に適用されます。
各 OFDM シンボルのサイクリック プレフィックス長。正の整数値スカラー、または [OFDM シンボル数] 個の要素から成る行ベクトルとして指定します。サイクリック プレフィックス長は、[0, NFFT] の範囲内でなければなりません。ここで、NFFT は、OFDM 信号に含まれるサブキャリアの総数で、[FFT 長] によって指定されます。サイクリック プレフィックス長を指定する場合、次のようになります。
スカラー — サイクリック プレフィックス長はすべてのストリームのすべてのシンボルで同じになります。
行ベクトル — サイクリック プレフィックス長をシンボルごとに変えることができますが、ストリームごとに変えることはできません。
このパラメーターを選択すると、OFDM シンボル間にレイズド コサイン ウィンドウ処理が適用されます。
スペクトル再成長によって生じる帯域外サブキャリアの強度を弱めるには、ウィンドウ処理を適用します。詳細については、OFDM レイズド コサイン ウィンドウ処理を参照してください。
レイズド コサイン ウィンドウの長さ。正の整数スカラーとして指定します。この値は、[サイクリック プレフィックス長] で指定される最小サイクリック プレフィックス長以下でなければなりません。たとえば、サイクリック プレフィックス長が 12、14、16 および 18 である 4 つのシンボルの構成の場合、ウィンドウの長さは 12 以下でなければなりません。
依存関係
このパラメーターは、[OFDM シンボル間にレイズド コサイン ウィンドウ処理を適用] を選択した場合に適用されます。
オーバーサンプリング係数。正のスカラーとして指定します。オーバーサンプリング係数は次の制約を満たさなければなりません。
([オーバーサンプリング係数]×[FFT 長]) は整数値でなければなりません。
([オーバーサンプリング係数]×[サイクリック プレフィックス長]) は整数値でなければなりません。
[OFDM シンボル間にレイズド コサイン ウィンドウ処理を適用] を選択した場合、([オーバーサンプリング係数]×[ウィンドウの長さ]) は整数値でなければなりません。
ヒント
オーバーサンプリング係数を整数ではない有理数に設定する場合は、小数値ではなく分数値を指定します。たとえば、FFT 長が 12 で、オーバーサンプリング係数が 4/3 の場合、その積は整数の 16 となります。しかし、オーバーサンプリング係数の設定時に 4/3 を 1.333 に丸めると、その積が非整数の 15.9960 になり、このコードはエラーとなります。
時間周波数グリッド内の OFDM シンボルの数。正の整数スカラーとして指定します。
送信ストリームの数。64 以下の正の整数スカラーとして指定します。この値は送信アンテナの物理的な数以下でなければなりません。
実行するシミュレーションのタイプ。[コード生成] または [インタープリター型実行] として指定します。
コード生成— 生成された C コードを使用してモデルをシミュレートします。シミュレーションの初回実行時、Simulink は対象ブロックの C コードを生成します。このモデルは、モデルが変更されない限り以降のシミュレーションで C コードを再利用します。このオプションを使用すると、シミュレーションの起動時間は長くなりますが、以降のシミュレーションの速度は[インタープリター型実行]オプションを使用した場合よりも速くなります。インタープリター型実行— MATLAB® インタープリターを使用してモデルをシミュレートします。このオプションを使用すると、起動時間が短縮されますが、以降のシミュレーションの速度は[コード生成]オプションを使用した場合よりも遅くなります。このモードで、ブロックのソース コードをデバッグできます。
詳細については、インタープリター型実行とコード生成 (Simulink)を参照してください。
ブロックの特性
データ型 |
|
多次元信号 |
|
可変サイズの信号 |
|
アルゴリズム
OFDM は、マルチキャリア変調スキームのクラスに属しています。この演算では複数のキャリアを同時に送信できるため、単一キャリアの変調と比べて OFDM に与えるノイズの影響は小さくなります。
OFDM 演算は、送信周波数帯を個別に変調された複数の連続するサブキャリアに分解して、高レートのデータ ストリームを低レートのデータ サブストリームに分割します。この一連の並列で直交するサブキャリアは、広帯域チャネルとほぼ同じ帯域幅を占有するデータ ストリームを伝送します。狭帯域の直交サブキャリアを使用して、OFDM 信号は周波数選択性フェージング チャネルでロバスト性を獲得し、隣接サブキャリアの干渉を排除します。低データ レートのサブストリームはチャネル遅延拡散よりシンボル区間が大きいため、符号間干渉 (ISI) が低減されます。
次のイメージは、OFDM 波形における直交サブキャリアの周波数領域表現を示したものです。

送信機は、逆高速フーリエ変換 (IFFT) を一度に N 個のシンボルに適用します。通常、IFFT の出力は、N 個の直交正弦波の和です。
ここで、{Xk} はデータ シンボル、および T は OFDM シンボル時間です。データ シンボル Xk は通常複素数で、任意のデジタル変調アルファベット (QPSK、16-QAM、64-QAM など) に基づくものになります。
メモ
離散フーリエ変換の MATLAB 実装では、IFFT の出力が 1/N で正規化されます。詳細については、ifft リファレンス ページのベクトルの離散フーリエ変換を参照してください。
サブキャリア間隔は Δf = 1/T で、サブキャリアはシンボル周期ごとに必ず直交します。
OFDM 変調器は、シリアルからパラレルへの変換で構成され、それぞれが各 OFDM サブキャリアに対応する一連の N 個の複素数変調器が続きます。

個々の OFDM サブキャリアは、データ、パイロット、または null サブキャリアとして割り当てられます。
以下に示すように、サブキャリアは、データ サブキャリア、DC サブキャリア、パイロット サブキャリア、またはガードバンド サブキャリアとして指定されています。

データ サブキャリアは、ユーザー データを送信します。
パイロット サブキャリアは、チャネル推定に使用されます。
null サブキャリアは、データを送信しません。データをもたないサブキャリアは、DC null を提供し、OFDM リソース ブロック間のバッファーとして機能します。
null DC サブキャリアは、周波数帯域の中心であり、
nfftが偶数の場合は (nfft/2 + 1)、nfftが奇数の場合は ((nfft+ 1) / 2) のインデックス値をもちます。ガード バンドでは、隣り合う帯域内の隣接する信号間にバッファーを提供することで、スペクトル漏れによって発生する干渉を低減します。
null サブキャリアでは、さまざまな 802.11 形式や LTE、WiMAX などの特定の規格またはカスタム割り当ての保護帯域と DC サブキャリアの位置をモデル化できます。null サブキャリア インデックスのベクトルを割り当てることで、null の位置を割り当てることができます。
ガード インターバルは、ガード バンドと同様に、符号間干渉を低減して OFDM 送信信号の整合性を確保します。
保護間隔の割り当ては、保護帯域の割り当てに似ています。保護間隔をモデル化して、OFDM シンボル間に時間的な区切りを設けることができます。保護間隔は、時間分散チャネルを介して信号を渡した後にシンボル間の直交性を保持するうえで役立ちます。ガード インターバルを作成するには、サイクリック プレフィックスを使用します。サイクリック プレフィックスの挿入では、OFDM シンボルの最後部が次の OFDM シンボルの最前部としてコピーされます。

サイクリック プレフィックスの挿入が OFDM に与える効果は、時間分散のスパンがサイクリック プレフィックスの期間を超えない限り有効です。
サイクリック プレフィックスはデータ送信に使用される可能性のある帯域幅を占めるため、サイクリック プレフィックスの挿入によりユーザー データのスループットがわずかに低下します。
OFDM レイズド コサイン ウィンドウ処理は、スペクトル再成長を制限するため、[3]に記載されている手法を適用し、あるシンボルの最後のサンプルから次のシンボルの最初のサンプルへの円滑な移行を実現します。
サイクリック プレフィックスは時間領域で保護期間を作成して直交性を保持しますが、OFDM シンボルの場合、直前の OFDM シンボルの最後に示された振幅と位相で開始されることはほとんどありません。これによりスペクトル再成長が発生し、そのため相互変調歪みによる信号帯域幅の拡散が発生します。このスペクトル再成長を制限するには、巡回サフィックスとレイズド コサイン ウィンドウ処理を使用して、あるシンボルの最後のサンプルから次のシンボルの最初のサンプルへの円滑な移行を実現します。
このセクションの説明と図では、オーバーサンプリング係数が 1 であると仮定しています。この演算は、サイクリック サフィックスを作成するため、あるシンボルの最初の NWIN 個のサンプルをそのシンボルの最後に付加します。ただし、この演算では、IEEE® 802.11g 規格に準拠するため、シンボル長を任意に延長するといったことはできません。逆に、巡回サフィックスは時間的にオーバーラップしなければならず、次のシンボルのサイクリック プレフィックスと実質的に合計されます。この演算は、数学的に逆の関係にある 2 つのウィンドウを、このオーバーラップしたセグメントに適用します。1 つ目のレイズド コサイン ウィンドウは、k 番目のシンボルの巡回サフィックスに適用され、区間中に 1 から 0 へと減少します。2 つ目のレイズド コサイン ウィンドウは、k+1 番目のシンボルのサイクリック プレフィックスに適用され、区間中に 0 から 1 へと増加します。このプロセスによって、あるシンボルから次のシンボルへの円滑な移行が実現します。
時間領域におけるレイズド コサイン ウィンドウ w(t) は、次の式で表すことができます。
ここで、
T は、保護間隔を含む OFDM シンボル区間です。
TW はウィンドウの間隔です。
ウィンドウの長さを設定することにより、巡回サフィックスの長さを調整します。サフィックスの長さは、1 から最小サイクリック プレフィックス長までの範囲内に設定します。ウィンドウ処理によってスペクトル再成長が緩和されますが、シンボル間の移行を円滑にするにはガード バンドのサンプル値を変更する必要があり、これによってガード バンドの冗長性が低下するため、マルチパス フェージング耐性が低下します。

参照
[1] Dahlman, E., S. Parkvall, and J. Skold. 4G LTE/LTE-Advanced for Mobile Broadband. London: Elsevier Ltd., 2011.
[2] Andrews, J. G., A. Ghosh, and R. Muhamed. Fundamentals of WiMAX. Upper Saddle River, NJ: Prentice Hall, 2007.
[3] Agilent Technologies, Inc., "OFDM Raised Cosine Windowing", https://helpfiles.keysight.com/csg/n7617/Content/Main/ofdm_raised_cosine_windowing.htm.
[4] Montreuil, L., R. Prodan, and T. Kolze. "OFDM TX Symbol Shaping 802.3bn", https://www.ieee802.org/3/bn/public/jan13/montreuil_01a_0113.pdf. Broadcom, 2013.
[5] IEEE Standard 802.16-2017. "Part 16: Air Interface for Broadband Wireless Access Systems." March 2018.
拡張機能
C/C++ コード生成
Simulink® Coder™ を使用して C および C++ コードを生成します。
バージョン履歴
R2014a で導入OFDM Modulator Baseband は、オーバーサンプリングをサポートするようになりました。
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)
