exponenta event banner

Настройка коэффициента демпфирования синхронизатора несущей для коррекции смещения частоты

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

Установите порядок модуляции, частоту дискретизации, сдвиг частоты и параметры отношения сигнал/шум.

M = 8;
fs = 1e6;
foffset = 1000;
snrdb = 20;

Создайте объект фазового сдвига частоты, чтобы ввести сдвиг частоты в модулированный сигнал. Создайте объект диаграммы созвездий.

pfo = comm.PhaseFrequencyOffset('SampleRate',fs, ...
    'FrequencyOffset',foffset);
constDiagram = comm.ConstellationDiagram( ...
    'ReferenceConstellation',pskmod(0:M-1,M,pi/M));

Создайте объект синхронизатора несущей для коррекции смещения частоты.

carriersync = comm.CarrierSynchronizer('Modulation','8PSK', ...
    'DampingFactor',0.05,'NormalizedLoopBandwidth',0.01);

Основной цикл обработки включает в себя следующие шаги:

  • Создание случайных данных.

  • Применить 8-PSK модуляцию.

  • Введите сдвиг частоты.

  • Передача сигнала по каналу AWGN.

  • Исправьте смещение частоты.

  • Отображение диаграммы созвездий.

for k = 1:200
    data = randi([0 M-1],1000,1);
    modSig = pskmod(data,M);
    txSig = pfo(modSig);
    rxSig = awgn(txSig,snrdb);
    syncOut = carriersync(rxSig);
    constDiagram(syncOut)
end

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

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

Определите нормализованный диапазон втягивания, максимальную задержку синхронизации частоты и максимальную задержку фазовой синхронизации с помощью info функция.

syncInfo = info(carriersync)
syncInfo = struct with fields:
    NormalizedPullInRange: 0.0044
    MaxFrequencyLockDelay: 78.9568
        MaxPhaseLockDelay: 130

Преобразуйте нормированный диапазон втягивания из радиан в циклы. Сравните нормализованное смещение частоты с диапазоном втягивания.

[foffset/fs syncInfo.NormalizedPullInRange/(2*pi)]
ans = 1×2
10-3 ×

    1.0000    0.7071

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

Изменение коэффициента демпфирования синхронизатора на 0.707.

carriersync.DampingFactor = 0.707;

Повторите основной цикл обработки.

for k = 1:200
    data = randi([0 M-1],1000,1);
    modSig = pskmod(data,M);
    txSig = pfo(modSig);
    rxSig = awgn(txSig,snrdb);
    syncOut = carriersync(rxSig);
    constDiagram(syncOut)
end

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

В настоящее время имеется восемь наблюдаемых кластеров, которые показывают, что смещение частоты было скорректировано.

Определите новый диапазон втягивания. Нормализованное смещение меньше диапазона втягивания. Это объясняет, почему синхронизатор несущей смог скорректировать смещение.

syncInfo = info(carriersync);
[foffset/fs syncInfo.NormalizedPullInRange/(2*pi)]
ans = 1×2

    0.0010    0.0100