Этот пример показывает, как использовать блок FFT 1536 в демодуляции OFDM LTE.
Формирование формы сигнала передатчика.
Удалить циклический префикс.
Подготовка входных данных для моделирования FFT 1536.
Сформировать сетку ресурсов.
Сравните символы CellRS из сетки с символами lteCellRS функция.
Создание кода HDL.
Формирование формы сигнала передатчика.
cfg = lteTestModel('1.1','15MHz'); cfg.TotSubframes = 1; tx = lteTestModelTool(cfg);
Вышеупомянутая генерация сигнала передатчика использует 2048-точечный БПФ, что приводит к масштабному коэффициенту
модуляции OFDM. Если бы использовался 1536-точечный БПФ, форма сигнала имела бы коэффициент масштабирования.
Этот пример умножает форму сигнала на коэффициент для
достижения правильного масштабирования.
tx = tx*(2048/1536);
Чтобы достичь частоты дискретизации 23,04 мс, выполните повторную выборку tx образцы по 
rx = resample(tx,3,4); % rate conversion from 30.72Msps to 23.04Msps
Удалить циклический префикс. Первый символ каждого слота имеет 12 дополнительных выборок CP.
rx(11520+1:11520+12) = []; % discard 12 CP samples in slot 2 rx(1:12) = []; % discard 12 CP samples in slot 1 rx = reshape(rx,108+1536,14); % reshape to form 14 OFDM symbols rx(1:108,:) = []; % discard remaining 108 CP samples from all symbols
Подготовка входных данных для моделирования FFT 1536.
SampleTime = 4.3e-8; % 1/23.04e6; data = rx(:); valid = true(1536*14,1); data = fi(data,1,22,20); dataIn = timeseries(data,(0:length(data)-1).'*SampleTime); validIn = timeseries(valid,(0:length(valid)-1).'*SampleTime); FFT1536Latency = 3180; NofClks = FFT1536Latency+length(data); % number of simulation clock cycles StopTime = (NofClks)*SampleTime; open_system HDLFFT1536model; sim HDLFFT1536model;

simOut = dataOut(validOut); simOut = double(simOut(:)*1536);
Сформируйте сетку ресурсов и удалите поднесущую DC.
fftOut = fftshift(reshape(simOut,1536,14)); resourceGrid = fftOut(318+1:318+1+900,:); resourceGrid(900/2+1,:) = [];
Сравните символы CellRS из сетки с символами, полученными из lteCellRS функция.
cellRS = lteCellRS(cfg); cellRSIndices = lteCellRSIndices(cfg); simCellRS = resourceGrid(cellRSIndices); figure; plot(real(simCellRS),imag(simCellRS),'o','MarkerSize',15); hold on; plot(real(cellRS),imag(cellRS),'*','MarkerSize',10) legend('CellRS symbols from the FFT 1536 simulation grid'... ,'CellRS symbols from lteCellRS function','Location','southoutside') axis([-1 1 -1 1]);

Для создания кода HDL для блока FFT 1536 необходимо иметь лицензию HDL Coder™. Чтобы создать код HDL из блока FFT 1536 в этой модели, щелкните правой кнопкой мыши блок и выберите Создать подсистему из выбора (Create Subsystem from Selection). Затем щелкните правой кнопкой мыши подсистему и выберите HDL Code > Generate HDL Code for Subsystem.