comm.OFDMDemodulator

Демодулируйте использование метод OFDM

Описание

OFDMDemodulator объект демодулирует использование ортогонального метода демодуляции деления частоты. Выход представляет собой репрезентацию модулированного сигнала, который был введен в OFDMModulator сопутствующий объект.

Демодулировать сигнал OFDM:

  1. Задайте и настройте объект демодулятора OFDM. Смотрите Конструкцию.

  2. Вызовите step демодулировать сигнал согласно свойствам comm.OFDMDemodulator. Поведение step характерно для каждого объекта в тулбоксе.

Примечание

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

Конструкция

H = comm.OFDMDemodulator создает Системный объект демодулятора, H, это демодулирует входной сигнал при помощи ортогонального метода демодуляции деления частоты.

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

H = comm.OFDMDemodulator(hMod) создает объект демодулятора OFDM, H, чьи свойства определяются соответствующим объектом модулятора OFDM, hMod.

Свойства

FFTLength

Длина БПФ, БПФ N, эквивалентна количеству поднесущих, используемых в процессе модуляции. FFTLength должен быть ≥ 8.

Задайте количество поднесущих. Значением по умолчанию является 64.

NumGuardBandCarriers

Количество поднесущих защитной полосы выделяется левым и правым защитным полосам.

Задайте количество левых и правых поднесущих как неотрицательные целые числа в [0, N FFT/2− 1 ] где вы задаете левых, N leftG, и право, N rightG, защитные полосы независимо в векторе столбцов 2 на 1. Значениями по умолчанию является [6; 5].

RemoveDCCarrier

logical переменная это, когда true, удаление мандатов поднесущей DC. Значением по умолчанию является false.

PilotOutputPort

logical свойство, которое управляет, разделить ли экспериментальные сигналы и сделать их доступными в дополнительном выходном порту. Местоположение каждого экспериментального выходного символа определяется индексами пилотной поднесущей, заданными в PilotCarrierIndices свойство. Когда ложь, экспериментальные символы могут присутствовать, но быть встроены в данные. Значением по умолчанию является false.

PilotCarrierIndices

Если PilotOutputPort свойством является true, выведите отдельные экспериментальные сигналы, расположенные в индексах, заданных PilotCarrierIndices свойство. Если индексы являются 2D массивом, экспериментальные несущие через все передающие антенны на символ являются тем же самым. Если существует больше чем одна передающая антенна (эта информация не известна демодулятором), пилоты от различных передающих антенн могут вмешаться друг в друга. Чтобы избежать этого, задайте экспериментальные индексы несущей как трехмерный массив с различными экспериментальными индексами для каждого символа через антенны. Это избегает, чтобы интерференция между пилотами от различных передающих антенн, с тех пор, на базисе на символ, каждая передающая антенна имела различные экспериментальные несущие, и модулятор OFDM создает пользовательские пустые указатели в соответствующих местоположениях. Размер третьей размерности PilotCarrierIndices свойство дает количество передающих антенн.

CyclicPrefixLength

Свойство длины циклического префикса задает длину циклического префикса OFDM. Если вы задаете скаляр, длина префикса является тем же самым для всех символов через все антенны. Если вы задаете вектор-строку из длины N sym, длина префикса может варьироваться через символы, но остается та же длина через все антенны. Значением по умолчанию является 16.

NumSymbols

Это свойство задает количество символов, N sym. Задайте N sym как положительное целое число. Значением по умолчанию является 1.

NumReceiveAntennnas

Это свойство решает, что количество антенн, N R, раньше получало OFDM модулируемый сигнал. Задайте N R как положительное целое число. Значением по умолчанию является 1.

Методы

информацияПредоставьте информацию об определении размеров для метода OFDM
showResourceMappingПокажите отображение поднесущей символов OFDM, созданных Системным объектом демодулятора OFDM
шагДемодулируйте использование метод OFDM
Характерный для всех системных объектов
release

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

reset

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

При использовании reset, этот метод сбрасывает оконный суффикс от последнего символа в ранее обработанном кадре.

Примеры

свернуть все

Создайте Систему демодулятора OFDM object™ со свойствами по умолчанию. Измените некоторые свойства.

Создайте демодулятор OFDM.

demod = comm.OFDMDemodulator
demod = 
  comm.OFDMDemodulator with properties:

               FFTLength: 64
    NumGuardBandCarriers: [2x1 double]
         RemoveDCCarrier: false
         PilotOutputPort: false
      CyclicPrefixLength: 16
              NumSymbols: 1
      NumReceiveAntennas: 1

Измените количество поднесущих и символов.

demod.FFTLength = 128;
demod.NumSymbols = 2;

Проверьте что количество поднесущих и количество измененных символов.

demod
demod = 
  comm.OFDMDemodulator with properties:

               FFTLength: 128
    NumGuardBandCarriers: [2x1 double]
         RemoveDCCarrier: false
         PilotOutputPort: false
      CyclicPrefixLength: 16
              NumSymbols: 2
      NumReceiveAntennas: 1

Создайте Систему демодулятора OFDM object™ из существующего Системного объекта модулятора OFDM.

Создайте модулятор OFDM с помощью параметров по умолчанию.

mod = comm.OFDMModulator('NumTransmitAntennas',4);

Создайте соответствующий демодулятор OFDM из модулятора, mod.

demod = comm.OFDMDemodulator(mod);

Отобразите свойства модулятора и проверьте, что они совпадают с теми из демодулятора.

mod
mod = 
  comm.OFDMModulator with properties:

               FFTLength: 64
    NumGuardBandCarriers: [2x1 double]
            InsertDCNull: false
          PilotInputPort: false
      CyclicPrefixLength: 16
               Windowing: false
              NumSymbols: 1
     NumTransmitAntennas: 4

demod
demod = 
  comm.OFDMDemodulator with properties:

               FFTLength: 64
    NumGuardBandCarriers: [2x1 double]
         RemoveDCCarrier: false
         PilotOutputPort: false
      CyclicPrefixLength: 16
              NumSymbols: 1
      NumReceiveAntennas: 1

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

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

Создайте демодулятор OFDM.

demod = comm.OFDMDemodulator;

Примените showResourceMapping метод.

showResourceMapping(demod)

Figure OFDM Subcarrier Mapping for All Tx Antennas contains an axes object. The axes object with title OFDM Subcarrier Mapping for All Tx Antennas contains an object of type image.

Удалите поднесущую DC.

demod.RemoveDCCarrier = true;

Покажите ресурс, сопоставляющий после удаления поднесущей DC.

showResourceMapping(demod)

Figure OFDM Subcarrier Mapping for All Tx Antennas contains an axes object. The axes object with title OFDM Subcarrier Mapping for All Tx Antennas contains an object of type image.

Создайте модулятор OFDM со вставленным пустым указателем DC, семью поднесущими защитной полосы и двумя символами, которые имеют различные экспериментальные индексы для каждого символа.

mod = comm.OFDMModulator('NumGuardBandCarriers',[4;3],...
'PilotInputPort',true,'PilotCarrierIndices',cat(2,[12; 26; 40; 54],...
[11; 27; 39; 55]),'NumSymbols',2,'InsertDCNull',true);

Определите входные данные, пилота и размерности выходных данных.

modDim = info(mod)
modDim = struct with fields:
     DataInputSize: [52 2]
    PilotInputSize: [4 2]
        OutputSize: [160 1]

Сгенерируйте случайные символы данных для модулятора OFDM. Определите количество символов данных при помощи переменной структуры, modDim.

dataIn = complex(randn(modDim.DataInputSize),randn(modDim.DataInputSize));

Создайте экспериментальный сигнал, который имеет правильные размерности.

pilotIn = complex(rand(modDim.PilotInputSize),rand(modDim.PilotInputSize));

Примените модуляцию OFDM к данным и экспериментальным сигналам.

modSig = step(mod,dataIn,pilotIn);

Используйте объект модулятора OFDM создать соответствующий демодулятор OFDM.

demod = comm.OFDMDemodulator(mod);

Демодулируйте сигнал OFDM и выведите данные и экспериментальные сигналы.

[dataOut,pilotOut] = step(demod,modSig);

Проверьте, что входные данные и экспериментальные символы совпадают с выходными данными и экспериментальными символами.

isSame = (max(abs([dataIn(:) - dataOut(:); ...
    pilotIn(:) - pilotOut(:)])) < 1e-10)
isSame = logical
   1

Алгоритмы

Системный объект Демодулятора Ортогональной модуляции деления частоты (OFDM) демодулирует входной сигнал OFDM при помощи операции FFT, которая приводит к потокам данных параллели N.

Рисунок показывает демодулятор OFDM. Это состоит из банка корреляторов N с одним присвоенным к каждой OFDM поднесущей, сопровождаемой преобразованием параллельного кода в последовательный.

Защитные полосы и интервалы

Существует три типа OFDM поднесущих: данные, пилот и пустой указатель. Поднесущие данных используются для передачи данных, в то время как пилотные поднесущие используются для оценки канала. На пустых поднесущих нет никакой передачи, которые используются, чтобы обеспечить пустой указатель DC, а также обеспечить буферы между блоками ресурса OFDM. Эти буферы упоминаются как защитные полосы, цель которых состоит в том, чтобы предотвратить интерференцию межсимвола. Выделение пустых указателей и защитных полос варьируется в зависимости от стандарта, e.g., 802.11n отличается от LTE. Следовательно, объект модулятора OFDM позволяет пользователю присваивать индексы поднесущей как требуется.

Аналогичный концепции защитных полос, защитные интервалы поддержки объектов модулятора OFDM, которые обеспечивают временное разделение между символами OFDM так, чтобы сигнал не терял ортогональность из-за дисперсионных временем каналов. Пока защитный интервал более длинен, чем распространение задержки, каждый символ не вмешивается в другие символы. Защитные интервалы создаются при помощи циклических префиксов, в которые последняя часть символа OFDM копируется и вставляется как первая часть символа OFDM. Преимущество циклической префиксной вставки обеспечено, пока промежуток дисперсии времени не превышает длительность циклического префикса. Объект модулятора OFDM позволяет длине циклического префикса быть установленной. Недостаток в использовании циклического префикса увеличен наверху.

Выбранная библиография

[1] Дэхлмен, E., С. Парквол и Дж. Сколд. 4G LTE/LTE-Advanced для Мобильного Broadband.London: Elsevier Ltd., 2011.

[2] Эндрюс, J. G. А. Гош, и Р. Мухэмед, основные принципы WiMAX, верхний Сэддл-Ривер, NJ: Prentice Hall, 2007.

[3] "Стандарт IEEE 802.16™-2009". Нью-Йорк: IEEE, 2009.

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

Смотрите также

Объекты

Блоки

Функции

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