comm.OFDMDemodulator

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

Описание

The 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/ 21] где вы задаете левую, N левую G и правую, N правую G, защитные полосы независимо в векторе-столбце 2 на 1. Значения по умолчанию [6; 5].

RemoveDCCarrier

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

PilotOutputPort

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

PilotCarrierIndices

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

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

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

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

demod = comm.OFDMDemodulator;

Применить showResourceMapping способ.

showResourceMapping(demod)

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

Удалите поднесущую постоянного тока.

demod.RemoveDCCarrier = true;

Отображение сопоставления ресурсов после удаления поднесущей постоянного тока.

showResourceMapping(demod)

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

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

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 с помощью операции БПФ, которая приводит к N параллельных потоков данных.

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

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

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

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

Избранная библиография

[1] Дальман, Э., С. Парквалл и Дж. Сколд. 4G LTE/LTE-Advanced for Mobile Broadband.London: Elsevier Ltd., 2011.

[2] Andrews, J. G., A. Ghosh, and R. Muhamed, Fundamentals of WiMAX, Upper Saddle River, NJ: Prentice Hall, 2007.

[3] I. E. E. E. ", стандарт IEEE 802.16TM-2009.”

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

.
Введенный в R2014a