коммуникация. 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)аргумент{k=1LR(k)}.

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

L=вокруг(fsampfmax)1,

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

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

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

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

    Δf^=fsampNmаргументmax f|k=0N1rm(k)ej2πkt/N|,(Rsym2fRsym2),

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

    N=2журнал2(fsampfr),

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

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

Ссылки

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

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

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

[4] Олдс, Джонатан. "Разрабатывая демодулятор OQPSK".

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

Введенный в R2015b

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