ofdmmod

Модулируйте сигнал частотной области, использующий ортогональное частотное разнесение (OFDM)

Описание

пример

ofdmSig = ofdmmod(inSym,nfft,cplen) выполняет модуляцию OFDM на поднесущих входных данных частотного диапазона, inSym, использование размера БПФ задано nfft и длина циклического префикса задана cplen. Для получения информации см. Модуляцию OFDM.

пример

ofdmSig = ofdmmod(inSym,nfft,cplen,nullidx) вставляет пустые поднесущие в сигнал входных данных частотного диапазона до выполнения модуляции OFDM. Пустые поднесущие вставляются в местоположениях индекса от 1 до nfft, как задано nullidx. Для этого синтаксиса, количества строк во входе inSym должен быть nfftдлина (nullidx). Используйте пустых поставщиков услуг с учетом поднесущих DC и защитных полос. Для получения информации смотрите Выделение Поднесущей, Защитные полосы и Интервалы охраны.

пример

ofdmSig = ofdmmod(inSym,nfft,cplen,nullidx,pilotidx,pilots) вставляет пустые и экспериментальные поднесущие в символы входных данных частотного диапазона до выполнения модуляции OFDM. Пустые поднесущие вставляются в местоположениях индекса, заданных nullidx. Экспериментальные поднесущие, pilots, вставляются в местоположениях индекса, заданных pilotidx. Для этого синтаксиса, количества строк во входе inSym должен быть nfftдлина (nullidx)длина (pilotidx). Функция принимает, что экспериментальные местоположения поднесущей являются тем же самым через каждый символ OFDM и передают антенну.

Примеры

свернуть все

OFDM-модулируйте полностью упакованный вход более чем две антенны передачи.

Инициализируйте входные параметры, сгенерируйте случайные данные и выполните модуляцию OFDM.

nfft  = 128;
cplen = 16;
nSym  = 5;
nt    = 2;
dataIn = complex(randn(nfft,nSym,nt),randn(nfft,nSym,nt));

y1 = ofdmmod(dataIn,nfft,cplen);

Примените модуляцию OFDM, присваивающую пустые поднесущие.

Инициализируйте входные параметры и сгенерируйте случайные данные.

M = 16; % Modulation order for 16QAM
nfft  = 64;
cplen = 16;
nSym  = 10;
nullIdx  = [1:6 33 64-4:64]';
numDataCarrs = nfft-length(nullIdx);
inSig = randi([0 M-1],numDataCarrs,nSym);

QAM модулируют данные. Выполните модуляцию OFDM.

qamSym = qammod(inSig,M,'UnitAveragePower',true);
outSig = ofdmmod(qamSym,nfft,cplen,nullIdx);

Выполните модуляцию OFDM, чтобы ввести сигнал данных о частотном диапазоне, различная длина циклического префикса применилась к каждому символу.

Инициализируйте входные параметры и сгенерируйте случайные данные.

M = 16; % Modulation order for 16QAM
nfft  = 64;
cplen = [4 8 10 7 2 2 4 11 16 3];
nSym  = 10;
nullIdx  = [1:6 33 64-4:64]';
numDataCarrs = nfft-length(nullIdx);
inSig = randi([0 M-1],numDataCarrs,nSym);

QAM модулируют данные. Выполните модуляцию OFDM.

qamSym = qammod(inSig,M,'UnitAveragePower',true);
outSig = ofdmmod(qamSym,nfft,cplen,nullIdx);

Примените модуляцию OFDM к сигналу QPSK, который пространственно мультиплексируется более чем две антенны передачи.

Инициализируйте входные параметры и сгенерируйте случайные данные для каждой антенны.

M = 4; % Modulation order for QPSK
nfft  = 64;
cplen = 16;
nSym  = 5;
nt    = 2;
nullIdx  = [1:6 33 64-4:64]';
pilotIdx = [12 26 40 54]';
numDataCarrs = nfft-length(nullIdx)-length(pilotIdx);
pilots = repmat(pskmod((0:M-1).',M),1,nSym,2);

ant1 = randi([0 M-1],numDataCarrs,nSym);
ant2 = randi([0 M-1],numDataCarrs,nSym);

QPSK модулирует данные индивидуально для каждой антенны. Выполните модуляцию OFDM.

qpskSym(:,:,1) = pskmod(ant1,M);
qpskSym(:,:,2) = pskmod(ant2,M);
y1 = ofdmmod(qpskSym,nfft,cplen,nullIdx,pilotIdx,pilots);

OFDM-модулируйте ввод данных, задавая пустую и экспериментальную упаковку.

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

nfft     = 64;
cplen    = 16;
nSym     = 10;

nullIdx  = [1:6 33 64-4:64]';
pilotIdx = [12 26 40 54]';

numDataCarrs = nfft-length(nullIdx)-length(pilotIdx);
dataIn = complex(randn(numDataCarrs,nSym),randn(numDataCarrs,nSym));
pilots = repmat(pskmod((0:3).',4),1,nSym);

y2 = ofdmmod(dataIn,nfft,cplen,nullIdx,pilotIdx,pilots);

Входные параметры

свернуть все

Поднесущие входных данных в виде N D NSym NT массивом символов. Количество поднесущих данных, N D, должно равняться nfftдлина (nullidx)длина (pilotidx). N Sym является количеством символов OFDM на антенну передачи, N T, является количеством антенн передачи.

Символы входных данных к модулятору OFDM обычно создаются с основополосным цифровым модулятором, такой как qammod.

Типы данных: double | single
Поддержка комплексного числа: Да

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

Типы данных: double

Длина циклического префикса в виде скаляра или как вектор-строка из длины N Sym.

  • Когда вы задаете cplen как скаляр, длина циклического префикса является тем же самым для всех символов через все антенны.

  • Когда вы задаете cplen как вектор-строка из длины N Sym, длина циклического префикса может варьироваться через символы, но остается та же длина через все антенны.

Для получения дополнительной информации смотрите Выделение Поднесущей, Защитные полосы и Интервалы охраны.

Типы данных: double

Индексы пустых местоположений поднесущей в виде вектор-столбца со значениями элемента от 1 до nfft.

Типы данных: double

Индексы экспериментальных местоположений поднесущей в виде вектор-столбца со значениями элемента от 1 до nfft.

Типы данных: double

Экспериментальные поднесущие в виде Пилота N NSym NT массивом символов. Пилот N должен равняться длине pilotidx. N Sym является количеством символов OFDM на антенну передачи. N T является количеством антенн передачи. Функция принимает, что экспериментальные местоположения поднесущей являются тем же самым через каждый символ OFDM и передают антенну. Используйте comm.OFDMModulator варьироваться экспериментальные местоположения поднесущей через символы OFDM или антенны.

Типы данных: double | single

Выходные аргументы

свернуть все

Модулируемые символы OFDM, возвращенные как 2D массив комплексных символов.

  • Если cplen скаляр, размер массивов ((nfft + cplen) × N Sym)-by-NT.

  • Если cplen вектор-строка, размер массивов ((nfft × N Sym) + sum(cplen))-by-NT.

    N Sym является количеством символов на антенну передачи и N T, является количеством антенн передачи.

Типы данных: double | single
Поддержка комплексного числа: Да

Больше о

свернуть все

Модуляция OFDM

OFDM принадлежит классу схем модуляции мультипоставщика услуг. Поскольку несколько потоков данных могут быть переданы одновременно с несколькими поставщиками услуг, OFDM не под влиянием шума до той же степени как модуляция одно поставщика услуг.

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

Представление Частотного диапазона ортогональных поднесущих в форме волны OFDM смотрит можно следующим образом:

Передатчик применяет обратное быстрое преобразование Фурье (IFFT) к символам N за один раз. Выход ОБПФ является суммой N ортогональные синусоиды:

x(t)=k=0N1Xkej2πkΔft,0tT,

где {X k} является символами данных, и T является временем символа OFDM. Символы данных X k является обычно комплексным и может быть от любого цифрового алфавита модуляции (например, QPSK, 16-QAM, 64-QAM).

Интервал поднесущей является Δf = 1/T; гарантирование, что поднесущие являются ортогональными за каждый период символа, как показано ниже:

1T0T(ej2πmΔft)*(ej2πnΔft)dt=1T0Tej2π(mn)Δftdt=0дляmn.

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

Выделение поднесущей, защитные полосы и интервалы охраны

Отдельные поднесущие OFDM выделяются как данные, пилот или пустые поднесущие.

Как показано здесь, поднесущие определяются как данные, DC, пилот или поднесущие защитной полосы.

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

  • Экспериментальные поднесущие используются для оценки канала.

  • Пустые поднесущие не передают данных. Поднесущие без данных используются, чтобы обеспечить пустой указатель DC и служить буферами между блоками ресурса OFDM.

    • Пустая поднесущая DC является центром диапазона частот со значением индекса (nfft/2 + 1), если nfft является четным, или ((nfft + 1) / 2), если nfft является нечетным.

    • Защитные полосы обеспечивают буферы между последовательными символами OFDM, чтобы защитить целостность переданных сигналов путем сокращения интерференции межсимвола.

Пустые поднесущие позволяют вам смоделировать защитные полосы и местоположения поднесущей DC для определенных стандартов, таких как различные 802,11 формата, LTE, WiMAX, или для пользовательских выделений. Можно выделить местоположение пустых указателей путем присвоения вектора из пустых индексов поднесущей.

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

Присвоение защитных интервалов походит на присвоение защитных полос. Можно смоделировать защитные интервалы, чтобы обеспечить временное разделение между символами OFDM. Защитная ортогональность межсимвола заповедника справки интервалов после сигнала проходит через дисперсионные временем каналы. Интервалы охраны создаются при помощи циклических префиксов. Циклическая префиксная вставка копирует последнюю часть символа OFDM как первая часть символа OFDM.

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

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

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

Генерация кода C/C++
Генерация кода C и C++ с помощью MATLAB® Coder™.

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

Функции

Объекты

Введенный в R2018a