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'.

Методы

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

Позвольте изменения значения свойства Системного объекта

Примеры

свернуть все

Компенсируйте смещение частоты на 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).

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

Основанные на БПФ алгоритмы могут использоваться, чтобы оценить смещение частоты для всех типов модуляции. Два изменения используются в коммуникации. 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® Transactions на Коммуникациях. Издание 43, № 2, 3, 4, февраль/март/апрель 1995, стр 1169–1178.

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

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

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

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

Введенный в R2015b