comm.CoarseFrequencyCompensator

Компенсируйте смещение частоты для PAM, PSK или QAM

Описание

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

Компенсировать смещение частоты PAM, PSK или сигнала QAM:

  1. Задайте и настройте свой крупный объект компенсатора частоты. Смотрите Конструкцию.

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

Примечание

Запуск в R2016b, вместо того, чтобы использовать step метод, чтобы выполнить операцию, заданную Системным объектом, можно вызвать объект с аргументами, как будто это была функция. Например, 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 и для других ситуаций, в которых вы хотите избегать использования БПФ.

Это свойство появляется когда 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

Сбросьте внутренние состояния Системного объекта

Примеры

свернуть все

Компенсируйте смещение частоты на 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 объект. Чтобы получить длину БПФ, необходимо вызвать 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])

Правильный для фазы и смещения частоты в шумном сигнале QAM использование синхронизатора несущей. Затем правильный для смещений с помощью и синхронизатора несущей и крупного компенсатора частоты.

Установите параметры в качестве примера.

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);

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

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);

Отобразите схему созвездия последних 4 000 символов.

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+θ),1kN,

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

Λ(Δf)|i=1Nriej2πΔfiTs|2=k=1Nm=1Nrkrm*ej2πΔfTs(km).

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

Im{k=1N1k(Nk)R(k)ej2πΔf^Ts}=0,

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

R(k)1Nki=k+1Nririk*,0kN1.

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

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

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

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

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

L=round(fsampfmax)1,

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

Основанный на БПФ

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

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

    Δf^=fsampNmargmaxf|k=0N1rm(k)ej2πkt/N|,(Rsym2fRsym2),

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

    N=2log2(fsampfr),

    где fr является желаемым разрешением частоты.

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

Ссылки

[1] Луиза, M. и Р. Реджаннини. “Восстановление несущей в полностью цифровых модемах для передач пакетного режима”. IEEE® Транзакции на Коммуникациях. Издание 43, № 2, 3, 4, февраль/март/апрель 1995, стр 1169–1178.

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

[3] Накагава, T., М. Мацуи, Т. Кобаяши, К. Исихара, Р. Кудо, М. Мизогачи и И. Миямото. “Не Данные помогли Широкодиапазонному Средству оценки Смещения Частоты для Оптических Когерентных Приемников QAM”. Коммуникационная Конференция по Оптоволокну и Выставка (OFC/NFOEC), 2011 и Национальная Оптическая Конференция Инженеров. Март 2011, стр 1–3.

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

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

Введенный в R2015b