802.15.4 (ZigBee) システムの EVM 測定
この例では、シミュレートされた IEEE® 802.15.4 [ 1 ] 送信機のエラー ベクトル振幅 (EVM) を、comm.EVM
System object™ を使用して測定する方法を示します。EVM 測定では、エラーのない変調基準波形と劣化波形の差を測定することにより、送信機の変調精度を定量化します。IEEE 802.15.4 では、ZigBee® 無線パーソナル エリア ネットワークに使用するためのプロトコルを規定しています。IEEE® 802.15.4 [ 1 ] の Section 6.7.3.1 では、次のように規定されています。"...IEEE 802.15.4 送信機は、1000 チップ測定した場合の EVM 値が 35% 未満である必要があります。エラーベクトル測定は、基準受信機システム経由で復元した後にベースバンド I/Q チップで行う必要があります。基準受信機は、測定の際、キャリア ロック、シンボル タイミング再生、および振幅調整を実行する必要があります。..."。ここでは、シミュレーションで適用される劣化が加法性ホワイト ガウス ノイズ (AWGN) のみであるため、キャリア ロック、シンボル タイミング再生、および振幅調整を受信機で処理する必要はありません。
システム パラメーターの定義
868 MHz 帯域対応の 802.15.4 システムのシステム パラメーター、チップ変調用の 2 位相偏移変調 (BPSK) があるダイレクト シーケンス スペクトル拡散 (DSSS)、およびデータ シンボル符号化用の差分符号化を定義します。
BPSK bit-to-chip マッピングは、14 チップ シーケンスで各入力ビットを拡散します。値が 0
の入力ビットは chipValues
パラメーターで表現され、値が 1
の入力ビットは (1-chipValues)
で表現されます。送信信号にオーバーサンプル レート 4 を使用し、フィルター スパンに 8 つのシンボルを使用します。送信機とテスト ハードウェアにおける信号劣化をシミュレートするために、60 dB の SNR を使用します。
dataRate = 20e3; % Bit rate in Hz M = 2; % Modulation order (BPSK) chipValues = ... % Chip values for 0-valued input bits [1;1;1;1;0;1;0;1;1;0;0;1;0;0;0]; numSymbols = 1000; % Number of symbols required to measure EVM numFrames = 100; % Number of frames nSamps = 4; % Oversample rate filtSpan = 8; % Filter span in symbols SNR = 60; % Simulated signal-to-noise ratio in dB
1 つの EVM 測定値を取得するために必要な拡散ゲイン、チップ レート、最終サンプル レート、およびビット数を計算します。フィルター遅延を加味するために、送信シンボルのシミュレーションではビットを 1 つ多く含めます。
gain = length(chipValues); % Spreading gain (chips per symbol) chipRate = gain*dataRate; % Chip rate sampleRate = nSamps*chipRate; % Final sampling rate numBits = ... % Bits for one EVM measurement ceil((numSymbols)/gain)+1;
初期化
0 ~ +1 および 1 ~ -1 の簡単なマッピングを使用して、BPSK 変調されたシンボルを取得します。行列演算の使用を有効にして効率的な MATLAB® コードを記述するには、bit-to-chip 変換前に変調を適用できるようにチップ値をマッピングします。ZigBee 用に規定されたパルス整形フィルターを適用するには、ロールオフ係数が 1 のルート レイズド コサイン フィルターのペアを定義します。
chipValues = 1 - 2*chipValues; % Map chip values rctFilt = comm.RaisedCosineTransmitFilter( ... RolloffFactor=1, ... OutputSamplesPerSymbol=nSamps, ... FilterSpanInSymbols=filtSpan); rcrFilt = comm.RaisedCosineReceiveFilter( ... RolloffFactor=1, ... InputSamplesPerSymbol=nSamps, ... FilterSpanInSymbols=filtSpan, ... DecimationFactor=nSamps);
EVM 測定の構成
IEEE® 802.15.4 の 6.7.3 節で定義されている EVM の計算方法では、測定された I サンプルと Q サンプルの平均誤差をシンボルの強度で正規化します。BPSK システムの場合、両方のコンスタレーション シンボルの強度は同じであるため、ピーク コンスタレーション電力の正規化を使用するように EVM 測定オブジェクトを構成します。EVM の計算方法および正規化オプションの詳細については、comm.EVM
System object のリファレンス ページを参照してください。
evm = comm.EVM(Normalization='Peak constellation power');
送受信のシミュレーション
ランダム データ ビットを生成し、comm.DifferentialEncoder
System object を使用してこれらのビットを差分符号化し、BPSK 変調を適用します。マップされたチップ値で行列乗算を行って、変調されたシンボルを拡散します。拡散シンボルはパルス整形フィルター経由で渡します。
EVM オブジェクトでは、受信シンボルおよび基準シンボルは同期されており、かつ同じレートでサンプリングされると想定されています。受信信号はダウンサンプリングされ、基準信号と同期されなければなりません。
十分な平均化を確保するために、各フレームに 1000 個のシンボルを含む 100 個のフレームをシミュレートします。最大 EVM 測定値を保存し、EVM 35% の要件を満たしているかチェックします。
送信フィルターと受信フィルターは同一であり、各々の遅延はフィルター スパンの半分に等しいため、合計遅延は 1 つのフィルターのスパンと等しくなります。
refSigDelay = rctFilt.FilterSpanInSymbols; diffenc = comm.DifferentialEncoder; simNumSymbols = numBits*gain; % Number of symbols in a frame peakRMSEVM = -inf; % Initialize peak RMS EVM value
for-
ループを使用して、伝送フレームを処理します。送信側では、ランダム データを生成し、差動符号化を適用し、BPSK 変調を適用し、チップを拡散し、パルス整形を適用し、送信信号にノイズを付加します。受信側では、信号をダウンサンプリングしてフィルター処理し、信号遅延を加味し、EVM を測定し、ピーク EVM を更新して、測定された最大値を保存します。データのすべてのフレームを処理した後、最大 EVM 値を表示します。
for p=1:numFrames % Transmit side b = randi([0 M-1],numBits,1); d = diffenc(b); x = 1-2*d; % Modulate c = reshape(chipValues*x',simNumSymbols,1); % Spread data cUp = rctFilt(c); r = awgn(cUp,SNR,"measured"); % Receive side rd = rcrFilt(r); % Downsample and filter rmsEVM = evm( ... complex(rd(refSigDelay+(1:numSymbols))), ... complex(c(1:numSymbols))); % Update peak RMS EVM calculation if (peakRMSEVM < rmsEVM) peakRMSEVM = rmsEVM; end end % Display results fprintf(' Worst case RMS EVM (%%): %1.2f\n',peakRMSEVM)
Worst case RMS EVM (%): 0.19
その他の調査
関数iqimbal2coef
を使用して、IQ 不平衡などの劣化要因を送信信号に追加できます。他の例と詳細については、変調精度の測定およびRF 劣化要因の可視化のトピックを参照してください。
参考文献
1.IEEE Standard 802.15.4, Wireless Medium Access Control (MAC) and Physical Layer (PHY) Specifications for Low-Rate Wireless Personal Area Networks, 2003.