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

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

Настройка

Инициализируйте параметры симуляции.

M = 16;           % Modulation order
nSym = 2000;      % Number of symbols in a packet
sps = 2;          % Samples per symbol
spsFilt = 8;      % Samples per symbol for filters and channel
spsSync = 2;      % Samples per symbol for synchronizers
lenFilt = 10;     % RRC filter length

Создайте совпадающую пару Системных объектов фильтра корня повысил косинус (RRC) для передатчика и приемника.

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

Создайте Системный объект смещения частоты фазы, чтобы ввести эффект Доплера на 100 Гц.

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

Создайте переменный Системный объект задержки, чтобы ввести смещения синхронизации.

varDelay = dsp.VariableFractionalDelay;

Создайте поставщика услуг и Системные объекты синхронизатора символа, чтобы откорректировать для эффекта Доплера и синхронизации смещения, соответственно.

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

Создайте Системные объекты схемы созвездия, чтобы просмотреть результаты.

refConst = qammod(0:M-1,M,'UnitAveragePower',true);
cdReceive = comm.ConstellationDiagram('ReferenceConstellation',refConst, ...
    'SamplesPerSymbol',spsFilt,'Title','Received Signal');
cdDoppler = comm.ConstellationDiagram('ReferenceConstellation',refConst, ...
    'SamplesPerSymbol',spsSync,'Title','Frequency Corrected Signal');
cdTiming = comm.ConstellationDiagram('ReferenceConstellation',refConst, ...
    'SamplesPerSymbol',spsSync,'Title','Frequency and Timing Synchronized Signal');

Основной цикл обработки

Основной цикл обработки:

  • Генерирует случайные символы, и примените модуляцию QAM.

  • Фильтрует модулируемый сигнал.

  • Применяет частоту и синхронизирующие смещения.

  • Передает переданный сигнал через канал AWGN.

  • Фильтрует полученный сигнал.

  • Корректирует эффект Доплера.

  • Корректирует смещение синхронизации.

for k = 1:15
    data = randi([0 M-1],nSym,1);
    modSig = qammod(data,M,'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)

Figure Constellation Diagram contains an axes and other objects of type uiflowcontainer, uimenu, uitoolbar. The axes with title Received Signal contains 2 objects of type line. This object represents Channel 1.

cdDoppler(rxCorr)

Figure Constellation Diagram contains an axes and other objects of type uiflowcontainer, uimenu, uitoolbar. The axes with title Frequency Corrected Signal contains 2 objects of type line. This object represents Channel 1.

cdTiming(rxData)

Figure Constellation Diagram contains an axes and other objects of type uiflowcontainer, uimenu, uitoolbar. The axes with title Frequency and Timing Synchronized Signal contains 2 objects of type line. This object represents Channel 1.

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

|

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