exponenta event banner

коммуникация. CoarseFrequencyCompensator

Компенсация сдвига частоты для PAM, PSK или QAM

Описание

CoarseFrequencyCompensator Система object™ компенсирует сдвиг частоты принимаемых сигналов.

Для компенсации сдвига частоты сигнала PAM, PSK или QAM:

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

  2. Звонить step для компенсации сдвига частоты сигнала PAM, PSK или QAM в соответствии со свойствами comm.CoarseFrequencyCompensator. Поведение step относится к каждому объекту на панели инструментов.

Примечание

Начиная с R2016b, вместо использования step для выполнения операции, определенной объектом System, можно вызвать объект с аргументами, как если бы это была функция. Например, y = step(obj,x) и y = obj(x) выполнять эквивалентные операции.

Строительство

CFC = comm.CoarseFrequencyCompensator создает объект компенсатора грубого сдвига частоты, CFC. Этот объект использует метод с разомкнутым контуром для оценки и компенсации сдвига несущей частоты в принятом сигнале.

CFC = comm.CoarseFrequencyCompensator(Name,Value) создает объект компенсатора грубого сдвига частоты, CFC, с указанным свойством Name установить в указанное значение Value. Можно указать дополнительные аргументы пары имя-значение в любом порядке как Name1,Value1,...,NameN,ValueN.

Свойства

Modulation

Тип модуляции

Укажите тип модуляции сигнала как BPSK, QPSK, OQPSK, 8PSK, PAM, или QAM. Значение по умолчанию: QAM. Это свойство не настраивается.

Algorithm

Алгоритм, используемый для оценки смещения частоты

Укажите алгоритм оценки как один из FFT-based или Correlation-based. Значение по умолчанию: FFT-based. Это свойство не настраивается.

В таблице показаны допустимые комбинации типа модуляции и алгоритма оценки.

МодуляцияАлгоритм на основе БПФАлгоритм на основе корреляции
BPSK, QPSK, 8PSK, PAM
OQPSK, QAM 

Используйте алгоритм на основе корреляции для реализаций HDL и для других ситуаций, в которых вы хотите избежать использования FFT.

Это свойство появляется, когда Modulation является 'BPSK', 'QPSK', '8PSK', или 'PAM'.

FrequencyResolution

Частотное разрешение (Гц)

Задайте разрешение частоты для оценки частоты смещения как положительный, реальный скаляр типа данных double. Это свойство устанавливает длину БПФ, используемую для выполнения спектрального анализа, и должно быть меньше частоты дискретизации. Значение по умолчанию: 0.001. Это свойство не настраивается.

MaximumFrequencyOffset

Максимальный измеряемый сдвиг частоты (Гц)

Укажите максимальное измеряемое смещение частоты как положительный, реальный скаляр типа данных double.

Значение этого свойства должно быть меньше fsamp/M, где fsamp - частота дискретизации, а M - порядок модуляции. В качестве наилучшей практики, набор MaximumOffset менее r/( 4M). Это свойство применяется только в том случае, если Algorithm является Correlation-based. Значение по умолчанию: 0.05. Это свойство не настраивается.

SampleRate

Частота дискретизации (Гц)

Укажите частоту дискретизации в выборках в секунду как положительный, реальный скаляр типа данных double. Значение по умолчанию: 1. Это свойство не настраивается.

SamplesPerSymbol

Образцы на символ

Укажите число выборок на символ s в качестве действительного положительного конечного целого скаляра, например s ≥ 2. Значение по умолчанию: 4. Это свойство не настраивается.

Это свойство появляется, когда Modulation является 'OQPSK'.

Методы

информацияХарактеристическая информация о компенсаторе грубой частоты
шагКомпенсация смещения частоты
Общие для всех системных объектов
release

Разрешить изменение значения свойства объекта системы

reset

Сброс внутренних состояний объекта System

Примеры

свернуть все

Скомпенсировать сдвиг частоты 4 кГц, наложенный на шумный сигнал QPSK.

Задайте параметры примера.

nSym = 2048;       % Number of input symbols
sps = 4;           % Samples per symbol
nSamp = nSym*sps;  % Number of samples
fs = 80000;        % Sampling frequency (Hz)

Создайте квадратный корень с увеличенным косинусным фильтром передачи.

txfilter = comm.RaisedCosineTransmitFilter(...
    'RolloffFactor',0.2, ...
    'FilterSpanInSymbols',8,   ...
    'OutputSamplesPerSymbol',sps);

Создайте объект фазового сдвига частоты, чтобы ввести сдвиг частоты 4 кГц.

freqOffset = comm.PhaseFrequencyOffset(...
    'FrequencyOffset',-4000, ...
    'SampleRate',fs);

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

freqComp = comm.CoarseFrequencyCompensator(...
    'Modulation','QPSK', ...
    'SampleRate',fs, ...
    'FrequencyResolution',1);

Генерируют символы QPSK, фильтруют модулированные данные, пропускают сигнал через канал AWGN и применяют сдвиг частоты.

data = randi([0 3],nSym,1);
modData = pskmod(data,4,pi/4);
txSig = txfilter(modData);
rxSig = awgn(txSig,20,'measured');
offsetData = freqOffset(rxSig);

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

[compensatedData,estFreqOffset] = freqComp(offsetData);

Отображение оценки смещения частоты.

estFreqOffset
estFreqOffset =

  -3.9999e+03

Вернуться к информации о freqComp объект. Для получения длины FFT необходимо вызвать freqComp перед вызовом info способ.

freqCompInfo = info(freqComp)
freqCompInfo = 

  struct with fields:

    FFTLength: 131072
    Algorithm: 'FFT-based'

Создайте объект анализатора спектра и постройте график смещенных и компенсированных спектров. Убедитесь, что компенсированный сигнал имеет центральную частоту 0 Гц и что сигнал смещения имеет центральную частоту -4 кГц.

specAnal = dsp.SpectrumAnalyzer('SampleRate',fs,'ShowLegend',true, ...
    'ChannelNames',{'Offset Signal' 'Compensated Signal'});
specAnal([offsetData compensatedData])

Исправьте сдвиг фазы и частоты в шумном КАМ-сигнале с помощью синхронизатора несущей. Затем корректируют смещения, используя как синхронизатор несущей, так и компенсатор грубой частоты.

Задайте параметры примера.

fs = 10000;           % Symbol rate (Hz)
sps = 4;              % Samples per symbol
M = 16;               % Modulation order
k = log2(M);          % Bits per symbol

Создайте модулятор QAM и канал AWGN.

channel = comm.AWGNChannel('EbNo',20,'BitsPerSymbol',k,'SamplesPerSymbol',sps);

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

constdiagram = comm.ConstellationDiagram(...
    'ReferenceConstellation',qammod(0:M-1,M), ...
    'SamplesPerSymbol',sps, ...
    'SymbolsToDisplaySource','Property','SymbolsToDisplay',4000, ...
    'XLimits',[-5 5],'YLimits',[-5 5]);

Введите сдвиг частоты 400 Гц и сдвиг фазы 30 градусов.

phaseFreqOffset = comm.PhaseFrequencyOffset(...
    'FrequencyOffset',400,...
    'PhaseOffset',30,...
    'SampleRate',fs);

Генерировать случайные символы данных и применять 16-QAM модуляцию.

data = randi([0 M-1],10000,1);
modSig = qammod(data,M);

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

txfilter = comm.RaisedCosineTransmitFilter('OutputSamplesPerSymbol',sps, ...
    'Gain',sqrt(sps));
txSig = txfilter(modSig);

Примените сдвиг фазы и частоты, а затем передайте сигнал через канал AWGN.

freqOffsetSig = phaseFreqOffset(txSig);
rxSig = channel(freqOffsetSig);

Примените точную коррекцию частоты к сигналу с помощью синхронизатора несущей.

fineSync = comm.CarrierSynchronizer('DampingFactor',0.7, ...
    'NormalizedLoopBandwidth',0.005, ...
    'SamplesPerSymbol',sps, ...
    'Modulation','QAM');
rxData = fineSync(rxSig);

Отображение диаграммы созвездий последних 4000 символов.

constdiagram(rxData)

Даже со временем схождения спиральный характер графика показывает, что синхронизатор несущей еще не компенсировал большой сдвиг частоты. Смещение 400 Гц составляет 1% от частоты дискретизации.

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

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

coarseSync = comm.CoarseFrequencyCompensator('Modulation','QAM','FrequencyResolution',1,'SampleRate',fs*sps);

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

syncCoarse = coarseSync(rxSig);
rxData = fineSync(syncCoarse);

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

constdiagram(rxData)

Полученные данные теперь выравниваются с опорной совокупностью.

Алгоритмы

Корреляция на основе

Алгоритм оценки на основе корреляции, который может быть использован для оценки сдвига частоты для сигналов PSK и PAM, описан в [1]. Для определения сдвига частоты Δf алгоритм выполняет оценку максимального правдоподобия (ML) комплексного колебания exp(j2πΔft). Наблюдаемый сигнал, rk, представлен как

rk = ej (2íΔfkTs + start), 1≤k≤N,

где Ts - интервал дискретизации, λ - неизвестная случайная фаза, а N - число выборок. Оценка максимального правдоподобия сдвига частоты эквивалентна поиску максимума функции правдоподобия Λ (Δf),

Λ (Δf) ≈|∑i=1Nrie−j2πΔfiTs|2=∑k=1N∑m=1Nrkrm*e−j2πΔfTs (k m).

После упрощения проблема выражается как дискретное преобразование Фурье, взвешенное параболической оконной функцией. Выражается как

Im{∑k=1N−1k (N k) R (k) ej2πΔf ^ Ts} = 0,

где R (k) обозначает оцененную автокорреляцию последовательности rk и представлен как

R (k) ≜1N−k∑i=k+1Nri ri k *, 0≤k≤N−1.

Термин k (N-k) является параболической оконной функцией. В [1] показано, что R (k) является плохой оценкой автокорреляции rk, когда k = 0 или когда k близок к N. Следовательно, оконная функция может быть выражена как прямоугольная последовательность 1 s для k = 1, 2,..., L, где L ≤ N - 1. Результаты представляют собой модифицированную стратегию оценки ML, в которой

Im{∑k=1LR (k) e j2πΔf ^ kTs} = 0.

Это приводит к оценке Δf ^, в которой

Δf^≅fsampπ (L + 1) arg{∑k=1LR (k)}.

Частота дискретизации, fsamp, является обратной для Ts. Количество элементов, используемых для вычисления автокорреляционной последовательности, L, определяется как

L = круглый (fsampfmax) − 1,

где fmax - максимальное ожидаемое смещение частоты и round - ближайшая целочисленная функция. Оценка сдвига частоты улучшается, когда L ≥ 7, и приводит к рекомендации fmax fsamp/( 4M).

На основе БПФ

Алгоритмы на основе БПФ могут использоваться для оценки сдвига частоты для всех типов модуляции. Два варианта используются в comm.CoarseFrequencyCompensator.

  • Для BPSK, QPSK, 8PSK, PAM, или QAM модуляция используемого алгоритма на основе БПФ описана в [2]. Алгоритм оценивает Δf ^ с использованием периодограммы m-й мощности принимаемого сигнала и приводится в виде

    Δf^=fsampN⋅margmaxf|∑k=0N−1rm (k) e j2.dkt/N |, (−Rsym2≤f≤Rsym2),

    где m - порядок модуляции, r (k) - принимаемая последовательность, Rsym - скорость передачи символов, а N - число выборок. Алгоритм ищет частоту, которая максимизирует среднее по времени значение m-й мощности принимаемого сигнала, умноженное на различные частоты в диапазоне [-Rsym/2, Rsym/2]. Поскольку формой алгоритма является определение дискретного преобразования Фурье rm (t), поиск частоты, которая максимизирует среднее время, эквивалентен поиску пиковой линии в спектре rm (t). Количество точек, требуемых для БПФ, равно

    N=2⌈log2 (fsampfr) ⌉,

    где fr - желаемое разрешение по частоте.

  • Для OQPSK модуляция используемого алгоритма на основе БПФ описана в [4]. Алгоритм ищет спектральные пики на +/- 200 кГц вокруг частоты символов. Этот метод определяет требуемые пики в присутствии помех от спектрального содержания вокруг частот основной полосы частот вследствие фильтрации.

Ссылки

[1] Луизе, М. и Р. Реджаннини. «Восстановление несущей во всех цифровых модемах для передачи в пакетном режиме». Транзакции IEEE ® по коммуникациям. том 43, № 2, 3, 4, февраль/мар/апрель, 1995, стр. 1169-1178.

[2] Ван, Я., К. Ши и Э. Серпеди. «Оценщики смещения несущей частоты без передачи данных для созвездий QAM: нелинейный подход с наименьшими квадратами». Журнал EURASIP по прикладной обработке сигналов. 2004:13, стр 1993–2001.

[3] Накагава, Т., М. Мацуи, Т. Кобаяси, К. Исихара, Р. Кудо, М. Мидзогути и Я. Миямото. «Устройство оценки частотного сдвига без помощи данных для оптических когерентных приемников QAM». Конференция и экспозиция оптоволоконной связи (OFC/NFOEC), 2011 год, и Национальная конференция инженеров оптоволоконной связи. Март 2011, стр. 1-3.

[4] Олдс, Джонатан. «Проектирование демодулятора OQPSK».

Расширенные возможности

.
Представлен в R2015b