このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
サイクリック プレフィックスが先頭に追加されている場合の OFDM およびイコライズ
この例では、OFDM 変調された 16-QAM データの先頭にサイクリック プレフィックスを追加します。イコライズが有効になるように、サイクリック プレフィックス (CP) の長さはチャネルの長さ以上でなければなりません。
QAM 処理と OFDM 処理用の変数を定義します。シンボルを生成し、QAM 変調、OFDM 変調してから、CP を信号に追加します。複数の OFDM シンボルを同時に処理した後、シリアル化できます。
bps = 4; % Number of bits per symbol M = 2^bps; % Modulation order nFFT = 128; % Number of FFT bins nCP = 8; % CP length txsymbols = randi([0 M-1],nFFT,1); txgrid = qammod(txsymbols,M,UnitAveragePower=true); txout = ifft(txgrid,nFFT); % To process multiple symbols, vectorize the txout matrix txout = txout(:); txcp = txout(nFFT-nCP+1:nFFT); txout = [txcp; txout];
受信信号にノイズ、周波数依存性、および遅延を追加するチャネルを通して送信をフィルター処理します。
hchan = [0.4 1 0.4].'; rxin = awgn(txout,40); % Add noise rxin = conv(rxin,hchan); % Add frequency dependency channelDelay = dsp.Delay(1); % Could use fractional delay rxin = channelDelay(rxin); % Add delay
CP 長未満のランダムなオフセットを追加します。オフセットをゼロに設定すると、送信信号と受信信号の間の完全な同期をモデル化します。CP 長未満の任意のタイミング オフセットは、追加の線形位相によるイコライズによって補正できます。
offset = randi(nCP) - 1; % random offset less than length of CP % Remove CP and synchronize the received signal rxsync = rxin(nCP+1+channelDelay.Length-offset:end); rxgrid = fft(rxsync(1:nFFT),nFFT);
実際のシステムでは、信号再生プロセスの一部としてチャネルの推定が必要です。OFDM と CP の組み合わせにより、各周波数ビンの複素数スカラーへのイコライズが簡素化されます。レイテンシが CP 長の範囲内に収まっている限り、同期はチャネル推定器によって実行されます。以下のコントロールを使用すると、受信機のフロント エンドでイコライズを無効にして実験できます。送信信号と受信機出力を比較します。
useEqualizer = true; if useEqualizer hfchan = fft(hchan,nFFT); % Linear phase term related to timing offset offsetf = exp(-1i * 2*pi*offset * (0:nFFT-1).'/nFFT); rxgrideq = rxgrid ./ (hfchan .* offsetf); else % Without equalization errors occur rxgrideq = rxgrid; end rxsymbols = qamdemod(rxgrideq,M,UnitAveragePower=true); if max(txsymbols - rxsymbols) < 1e-8 disp("Receiver output matches transmitter input."); else disp("Received symbols do not match transmitted symbols.") end
Receiver output matches transmitter input.