最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

シンボル タイミングおよびドップラー オフセットの補正

comm.CarrierSynchronizer オブジェクトと comm.SymbolSynchronizer オブジェクトを使用して、シンボル タイミングおよび周波数オフセットのエラーを修復します。

構成例

シンボルあたりのサンプル数パラメーターを指定します。レイズド コサイン フィルター オブジェクトの対応するペアを作成します。

sps = 8;
txfilter = comm.RaisedCosineTransmitFilter('FilterSpanInSymbols',10, ...
    'OutputSamplesPerSymbol',sps,'Gain',sqrt(sps));
rxfilter = comm.RaisedCosineReceiveFilter('FilterSpanInSymbols',10, ...
    'InputSamplesPerSymbol',sps,'DecimationFactor',sps/2,'Gain',sqrt(1/sps));

PhaseFrequencyOffset オブジェクトを作成し、100 Hz のドップラー シフトを導入します。

doppler = comm.PhaseFrequencyOffset('FrequencyOffset',100, ...
    'PhaseOffset',45,'SampleRate',1e6);

可変遅延オブジェクトを作成し、タイミング オフセットを導入します。

varDelay = dsp.VariableFractionalDelay;

キャリア同期装置オブジェクトとシンボル同期装置オブジェクトを作成し、ドップラー シフトとタイミング オフセットをそれぞれ補正します。

carrierSync = comm.CarrierSynchronizer('SamplesPerSymbol',2);
symbolSync = comm.SymbolSynchronizer(...
    'TimingErrorDetector','Early-Late (non-data-aided)', ...
    'SamplesPerSymbol',2);

コンスタレーション ダイアグラム オブジェクトを作成し、結果を表示します。

refConst = qammod(0:15,16,'UnitAveragePower',true);

cdReceive = comm.ConstellationDiagram('ReferenceConstellation',refConst, ...
    'SamplesPerSymbol',sps,'Title','Received Signal');

cdDoppler = comm.ConstellationDiagram('ReferenceConstellation',refConst, ...
    'SamplesPerSymbol',2,'Title','Frequency Corrected Signal');

cdTiming = comm.ConstellationDiagram('ReferenceConstellation',refConst, ...
    'SamplesPerSymbol',2,'Title','Frequency and Timing Synchronized Signal');

主処理ループ

以下の操作を行います。

  • ランダムなシンボルを生成し、QAM 変調を適用します。

  • 変調した信号をフィルター処理します。

  • 周波数とタイミングのオフセットを加えます。

  • AWGN チャネルを通して送信された信号を渡します。

  • ドップラー シフトを補正します。

  • 受信した信号をフィルター処理します。

  • タイミング オフセットを補正します。

for k = 1:15
    data = randi([0 15],2000,1);
    modSig = qammod(data,16,'UnitAveragePower',true);
    txSig = txfilter(modSig);

    txDoppler = doppler(txSig);
    txDelay = varDelay(txDoppler,k/15);

    rxSig = awgn(txDelay,25);

    rxFiltSig = rxfilter(rxSig);
    rxCorr = carrierSync(rxFiltSig);
    rxData = symbolSync(rxCorr);
end

可視化

受信した信号、周波数を補正した信号および周波数とタイミングを同期した信号のコンスタレーション ダイアグラムをプロットします。特定のコンスタレーション点は、受信した信号内では識別できず、周波数が補正された信号内で一部が識別できるのみですが、タイミングと周波数を同期した信号は予想された QAM コンスタレーション点に並びます。

cdReceive(rxSig)

cdDoppler(rxCorr)

cdTiming(rxData)

参考

|