whdlSamplesToFrames

Преобразуйте демонстрационный поток в основанные на системе координат данные

Описание

пример

outframes = whdlSamplesToFrames(samples,ctrl) составляет основанные на системе координат данные из демонстрационного потока и соответствующих управляющих сигналов. Управляющие сигналы указывают на валидность выборок и контуры систем координат. Функция вычисляет максимальную длину системы координат от входных данных и управляющих сигналов, и удаляет любые неактивные или недопустимые выборки из данных.

пример

outframes = whdlSamplesToFrames(samples,ctrl,maxlen) составляет основанные на системе координат данные, с помощью максимальной длины системы координат. Если входной кадр описан samples больше, чем maxlen, функция обрезает систему координат.

пример

outframes = whdlSamplesToFrames(samples,ctrl,maxlen,interleaved) заказывает основанные на системе координат данные, принимая, что входные выборки чередованы, когда interleaved 1 (true). interleaved аргумент допустим только, когда каждая выборка представлена несколькими значениями. Функция вычисляет количество значений, представляющих каждую выборку путем сравнения длины samples и ctrl.

Примеры

свернуть все

В этом примере показано, как использовать блок LTE Turbo Encoder, чтобы закодировать данные, и как сравнить благоприятный для оборудования проект с результатами LTE Toolbox™. Рабочий процесс выполняет эти шаги:

  1. Сгенерируйте системы координат случайных входных выборок в MATLAB®.

  2. Закодируйте данные с помощью функции LTE Toolbox lteTurboEncode.

  3. Преобразуйте структурированные входные данные в поток выборок и импортируйте поток в Simulink®.

  4. Чтобы закодировать выборки с помощью благоприятной для оборудования архитектуры, запустите модель Simulink, которая содержит Турбо Энкодер LTE блока Wireless HDL Toolbox™.

  5. Экспортируйте поток закодированных выборок к рабочему пространству MATLAB.

  6. Преобразуйте демонстрационный поток назад в обрамленные данные и сравните системы координат со справочными данными.

Сгенерируйте системы координат входных данных. Сгенерируйте закодированные данные ссылки с помощью lteTurboEncode.

rng(0);
turboframesize = 40;
numframes = 2;

txBits    = cell(1,numframes);
codedData = cell(1,numframes);

for ii = 1:numframes
    txBits{ii} = logical(randi([0 1],turboframesize,1));
    codedData{ii} = lteTurboEncode(txBits{ii});
end

Сериализируйте входные данные для модели Simulink. Оставьте достаточно времени между системами координат для каждой системы координат, которая будет полностью закодирована, прежде чем следующий запустится. Блок LTE Turbo Encoder берет inframesize + 17 циклов, чтобы завершить кодирование системы координат.

inframes = txBits;

inframesize = size(inframes{1},1);

idlecyclesbetweensamples = 0;
idlecyclesbetweenframes = inframesize+20;

[sampleIn,ctrlIn] = ...
    whdlFramesToSamples(inframes, ...
                          idlecyclesbetweensamples, ...
                          idlecyclesbetweenframes);

Запустите модель Simulink. Время симуляции равняется количеству входных выборок. Из-за добавленных неактивных циклов между системами координат входные данные потоковой передачи включают достаточно циклов для модели, чтобы завершить кодирование обеих систем координат.

sampletime = 1;
samplesizeIn = 1;
simTime = size(ctrlIn,1);
modelname = 'ltehdlTurboEncoderModel';
open_system(modelname);
sim(modelname);

Модель Simulink экспортирует sampleOut_ts и ctrlOut_ts назад к рабочему пространству MATLAB. Десериализуйте выходные выборки и сравните, обрамленные данные к ссылке закодировали системы координат.

Выходные выборки блока LTE Turbo Encoder чередованы с битами четности.

Благоприятный для оборудования выход: S_1 P1_1 P2_1 S2 P1_2 P2_2 ... Sn P1_n P2_n

LTE Toolbox выход: S_1 S_2 ... S_n P1_1 P1_2 ... P1_n P2_1 P2_2 ... P2_n

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

sampleOut = sampleOut';
interleaveSamples = true;
outframes = whdlSamplesToFrames(sampleOut(:),ctrlOut,[],interleaveSamples);

fprintf('\nLTE Turbo Encoder\n');
for ii = 1:numframes
    numBitsDiff = sum(outframes{ii} ~= codedData{ii});
    fprintf(['  Frame %d: Behavioral and ' ...
        'HDL simulation differ by %d bits\n'],ii,numBitsDiff);
end
Maximum frame size computed to be 132 samples.

LTE Turbo Encoder
  Frame 1: Behavioral and HDL simulation differ by 0 bits
  Frame 2: Behavioral and HDL simulation differ by 0 bits

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

свернуть все

Поток выходных выборок в виде вектор-столбца. Вектор может включать неактивные циклы между выборками и между системами координат. Отбрасываются неактивные циклы. Системы координат, представленные потоком, могут быть различными размерами. Длина вектора, N, должна быть целочисленным кратным длина ctrl матрица, M. Отличающиеся длины означают, что каждая выборка представлена N/M значения.

Например, в стандарте LTE, уровень турбокода является 1/3, таким образом, каждая закодированная турбо выборка представлена одним систематическим, и два значения четности: Sn, Pn1 и Pn2. В этом случае, длина samples должна быть три раза длина ctrl.

Управляющие сигналы, сопровождающие демонстрационный поток в виде M-by-3 матрица. Матрица включает три управляющих сигнала, startконец, и valid, для каждой выборки в samples. Каждая выборка может быть представлена больше чем одним значением. В этом случае, длина samples должно быть целочисленное кратное M.

Например, в стандарте LTE, уровень турбокода является 1/3, таким образом, каждая закодированная турбо выборка представлена одним систематическим, и два значения четности: Sn, Pn1 и Pn2. В этом случае, длина samples должна быть три раза длина ctrl.

Максимальная длина системы координат в виде целого числа. Входные кадры в samples могут быть различные размеры. Выходной вектор-столбец отражает размер входного кадра, согласно ctrl. Если система координат больше, чем maxlen, функция обрезает систему координат и возвращает предупреждающее сообщение.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

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

Например, 1/3 закодированные турбо выборки представлены [S1 P11 P12 S2 P21 P22]. Чтобы переупорядочить выборки так, чтобы систематичный и значения четности группировались, устанавливает interleaved к 1 (true). Выходным порядком является затем [S1 S2 P11 P21 P12 P22].

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

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

свернуть все

Системы координат выходных выборок, возвращенных как вектор-столбец или массив ячеек вектор-столбцов. Размер выходного вектор-столбца отражает размер входного кадра, как определено управляющими сигналами в ctrl.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | fi

Вопросы совместимости

развернуть все

Предупреждает запуск в R2020a

Введенный в R2017b