Правильный для смещений синхронизации и Доплера символа

Восстановитесь с синхронизации символа и ошибок смещения частоты при помощи объектов comm.SymbolSynchronizer и comm.CarrierSynchronizer.

Сконфигурируйте пример

Задайте выборки на параметр символа. Создайте совпадающую пару повышенных объектов фильтра косинуса.

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 Гц.

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)

Смотрите также

|

Для просмотра документации необходимо авторизоваться на сайте