メインコンテンツ

Phase Noise

受信側の位相ノイズの複素ベースバンド信号への適用

  • Phase Noise block

ライブラリ:
Communications Toolbox / RF Impairments and Components

説明

Phase Noise ブロックは位相ノイズを複素信号に追加します。このブロックは無線通信の送信機または受信機のローカルの発振器によって生じた劣化要因をエミュレートします。ブロックは、指定されたスペクトル マスクに従ってフィルター処理された位相ノイズを生成し、それを入力信号に追加します。位相ノイズ モデリングについては、アルゴリズムを参照してください。

すべて展開する

16-QAM 信号に位相ノイズ ベクトルと周波数オフセット ベクトルを追加します。コンスタレーションを表示します。

slex_PhaseNoise16QAM モデルはランダム データを生成し、データに 16-QAM 変調を適用して、信号に位相ノイズを追加します。Phase Noise ブロックは、位相ノイズ レベルが 100 Hz で -40 dBc/Hz、200 Hz で –70 dBc/Hz のスペクトル マスクを指定します。

コンスタレーション ダイアグラムは、基準 16-QAM コンスタレーションと、位相ノイズによって劣化した信号サンプルを示しています。

この例では、スペクトルおよび位相ノイズが 100 kHz 正弦波に与える影響について説明します。

slex_phasenoise モデルは、Sine Waveブロックを使用して 100 kHz の tone を生成し、Phase Noiseブロックを使用してこれらの周波数に位相ノイズを付加します。

  • 1e3 Hz の周波数オフセットで -85 dBc/Hz

  • 9.5e3 Hz の周波数オフセットで -118 dBc/Hz

  • 19.5e3 Hz の周波数オフセットで -125 dBc/Hz

  • 195e3 Hz の周波数オフセットで -145 dBc/Hz

スペクトルと位相ノイズを解析するために、モデルには dBW/Hz ビュー用に構成された 3 つのスペクトル アナライザーブロックが含まれています。

  • Pure Tone, RBW=1 Hz — 1 Hz の分解能帯域幅

  • Noisy Tone, RBW=1 Hz — 1 Hz の分解能帯域幅

  • Noisy Tone, RBW=10 Hz — 10 Hz の分解能帯域幅

このモデルには、RMS 位相ノイズを計算するサブシステムも含まれています。RMS 位相ノイズを計算するサブシステムは、純粋正弦波とノイズのある正弦波との間の位相誤差を検出します。その後 RMS 位相ノイズを度単位で計算します。一般に、位相誤差を正確に求めるには、純粋な信号がノイズ信号と時間で整列されなければなりません。しかし、このモデルでは正弦波の周期性によりこの手順が不要です。

このモデルは信号スペクトルを表示し、計算された位相ノイズの平均を出力します。計算された位相ノイズは、Phase Noise ブロックで定義されたスペクトルに達します。

このモデルを実行すると、信号のスペクトルが表示され、計算された位相ノイズの平均が出力されます。計算された位相ノイズは、Phase Noise ブロックで定義されたスペクトルに達します。

分解能帯域幅を 1 Hz に設定すると、スペクトル アナライザーの dBW/Hz ビューには 0 dBW/Hz における tone が表示されます。分解能帯域幅を 10 Hz に設定すると、スペクトル アナライザーの dBW/Hz ビューには -10 dBW/Hz における tone が表示されます。同じトーン エネルギーは、ここで 1 Hz の代わりに 10 Hz に広がり、そのため正弦波 PSD レベルは 10 dB 減少します。10 Hz の分解能帯域幅でも、計算された位相ノイズの表示上の平均は、まだ Phase Noise ブロックで定義された位相ノイズに達しています。

Spectrum Analyzer ブロックは、より広い分解能帯域幅でより優れたスペクトル平均化を達成します。詳細については、ウィンドウを参照してください。

The calculated average phase noise is 0.37 degrees.

さらに調べるには、Phase Noise ブロックで [Phase noise level (dBc/Hz)] パラメーターを変更し、モデルを再実行して、スペクトル形状がどのように変化するかに注目します。ノイズが増えるほどサイド ローブの振幅が増加します。位相ノイズが増えるにつれて、100 Hz 信号は不明確になり、測定される RMS 位相ノイズが増加します。

拡張例

端子

入力

すべて展開する

入力信号。NS 行 1 列の数値ベクトルとして指定するか、または NSM 列の数値行として指定します。NS は、サンプルの数を表します。M は、チャネルの数です。

データ型: double | single
複素数のサポート: あり

出力

すべて展開する

出力信号は複素数値信号として返され、データ型とサイズは入力信号と同じです。

パラメーター

すべて展開する

ブロック パラメーターを対話的に編集するには、プロパティ インスペクターを使用します。Simulink ツールストリップの [シミュレーション] タブの [準備] ギャラリーで [プロパティ インスペクター] を選択します。

ヘルツあたりの搬送波に対するデシベル単位の位相ノイズ レベル (dBc/Hz)。負のスカラーのベクトルとして指定します。[Phase noise level (dBc/Hz)] パラメーターおよび [Frequency offset (Hz)] パラメーターは同じ長さでなければなりません。

Hz 単位の周波数オフセット。正の増加する値のベクトルとして指定します。最大周波数オフセット値は FS / 2 未満でなければなりません。ここで、FS[Sample rate (Hz)] パラメーター値を表します。

[Phase noise level (dBc/Hz)] パラメーターおよび [Frequency offset (Hz)] パラメーターは同じ長さでなければなりません。

Hz 単位のサンプル レート。[Frequency offset (Hz)] パラメーターで指定した最大値の 2 倍より大きい正のスカラーとして指定します。

ノイズ ジェネレーターの初期シード。正のスカラーとして指定します。

このブロックは Random Source ブロックを使用してノイズを生成します。ブロックは、Ziggurat メソッド (V5 RANDN アルゴリズム) を使用して、乱数を生成します。シミュレーションを再実行するたびに、ブロックは同じ初期シードを再利用します。この方法で、シミュレーションを再実行するたびに、ブロックは同じ信号を出力します。

ブロックによって定義されたフィルターの振幅応答を表示します。

実行するシミュレーションのタイプ。[インタープリター型実行] または [コード生成] として指定します。

  • インタープリター型実行 — MATLAB® インタープリターを使用してモデルをシミュレートします。このオプションを使用すると、必要な起動時間が短縮されますが、以降のシミュレーションの速度は [コード生成] オプションを使用した場合よりも遅くなります。このモードで、ブロックのソース コードをデバッグできます。

  • コード生成 — 生成された C コードを使用してモデルをシミュレートします。シミュレーションの初回実行時、Simulink は対象ブロックの C コードを生成します。このモデルは、モデルが変更されない限り以降のシミュレーションで C コードを再利用します。このオプションを使用すると、シミュレーションの起動時間は長くなりますが、以降のシミュレーションの速度は [インタープリター型実行] オプションを使用した場合よりも速くなります。

詳細については、インタープリター型実行とコード生成 (Simulink)を参照してください。

ブロックの特性

データ型

double | single

多次元信号

なし

可変サイズの信号

なし

アルゴリズム

すべて展開する

出力信号 yk は、yk=xkejφk により入力シーケンス xk に関連付けられています。ここで、φk は位相ノイズです。位相ノイズはフィルター処理されたガウス ノイズで、次のようになります。φk=f(nk)。ここで、nk はノイズ シーケンスで、f はフィルター処理操作を表します。

Diagram showing phase noise applied to input signal

位相ノイズをモデル化するには、周波数オフセットと位相ノイズ レベルのスカラーまたはベクトルの値を指定することで、パワー スペクトル密度 (PSD) マスクの特性を定義します。

  • スカラー周波数オフセットと位相ノイズ レベルの仕様では、IIR デジタル フィルターがスペクトル マスクを計算します。スペクトル マスクは、指定された点を通過する 1 / f の特性をもちます。詳細については、IIR デジタル フィルターを参照してください。

  • ベクトル周波数オフセットと位相ノイズ レベルの仕様では、FIR フィルターがスペクトル マスクを計算します。スペクトル マスクは、log10(f) にわたって内挿されます。詳細については、FIR フィルターを参照してください。

参照

[1] Kasdin, N. J. "Discrete Simulation of Colored Noise and Stochastic Processes and 1/(f^alpha); Power Law Noise Generation." The Proceedings of the IEEE® 83, no. 5 (May, 1995): 802–27.

拡張機能

すべて展開する

C/C++ コード生成
Simulink® Coder™ を使用して C および C++ コードを生成します。

バージョン履歴

R2006a より前に導入

すべて展開する

参考

ブロック

関数

オブジェクト

アプリ

トピック