comm.OSTBCCombiner

Объедините входы с помощью ортогонального пространственно-временного блочного кода

Описание

The OSTBCCombiner объект объединяет входной сигнал (от всех приемных антенн) и сигнал оценки канала, чтобы извлечь мягкую информацию символов, кодированных OSTBC. Оценка входного канала не должна быть постоянной и может изменяться при каждом вызове способа шага. Алгоритм объединения использует только оценку для первого периода символа на блок кодового слова. Демодулятор или декодер символов будет следовать за объектом Combiner в коммуникационной системе MIMO.

Чтобы объединить входные сигналы и извлечь мягкую информацию символов, закодированных OSTBC:

  1. Определите и настройте объект объединителя OSTBC. См. «Конструкция».

  2. Функции step Объединить входы с помощью ортогонального пространственно-временного блочного кода согласно свойствам comm.OSTBCCombiner. Поведение step характерен для каждого объекта в тулбоксе.

Примечание

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

Конструкция

H = comm.OSTBCCombiner создает объединитель ортогонального пространственно-временного кода блока (OSTBC) Системного объекта, H. Этот объект объединяет входной сигнал (от всех приемных антенн) с сигналом оценки канала, чтобы извлечь мягкую информацию символов, кодированных OSTBC.

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

H = comm.OSTBCCombiner(N,M,Name,Value) создает объект OSTBC Combiner, H. Этот объект имеет NumTransmitAntennas значение свойства установлено в N, а NumReceiveAntennas значение свойства установлено в N, и другие заданные свойства устанавливаются на заданные значения.

Свойства

NumTransmitAntennas

Количество передающих антенн

Задайте количество антенн в передатчике следующим 2 | 3 | 4. Значение по умолчанию является 2.

SymbolRate

Скорость символа кода

Задайте скорость символа кода следующим 3/4 | 1/2. Значение по умолчанию является 3/4. Это свойство применяется, когда NumTransmitAntennas свойство больше 2. Для 2 передающие антенны, скорость символа по умолчанию равна 1.

NumReceiveAntennas

Количество приемных антенн

Задайте количество антенн в приемник в виде двойной точности, вещественного, скалярного целого числа значения от 1 на 8. Значение по умолчанию является 1.

 Свойства с фиксированной точкой

Методы

шагОбъедините входы с помощью ортогонального пространственно-временного блочного кода
Общий для всех системных объектов
release

Разрешить изменение значения свойства системного объекта

Примеры

свернуть все

Определите вероятность битовой ошибки для сигнала QSPK, использующего кодирование OSTBC, при передаче через канал MIMO 4x2. Идеальная оценка канала принята, чтобы использоваться объединителем OSTBC.

Определите системные параметры.

numTx = 4;         % Number of transmit antennas
numRx = 2;         % Number of receive antennas
Rs = 1e6;          % Sampling rate (Hz)
tau = [0 2e-6];    % Path delays (sec)
pdb = [0 -10];     % Average path gains (dB)
maxDopp = 30;      % Maximum Doppler shift (Hz)
numBits = 12000;   % Number of bits
SNR = 6;           % Signal-to-noise ratio (dB)

Установите генератор случайных чисел в состояние по умолчанию, чтобы гарантировать повторяемые результаты.

rng default

Создайте Системный object™ модулятора QPSK. Установите BitInput свойство к true и SymbolMapping свойство к Gray.

hMod = comm.QPSKModulator(...
    'BitInput',true,...
    'SymbolMapping','Gray');

Создайте соответствующий Системный объект демодулятора QPSK. Установите SymbolMapping свойство к Gray и BitOutput свойство к true.

hDemod = comm.QPSKDemodulator(...
    'SymbolMapping','Gray',...
    'BitOutput',true);

Создайте пару энкодера и объединителя OSTBC, где количество антенн задано в системные параметры.

hOSTBCEnc = comm.OSTBCEncoder(...
    'NumTransmitAntennas',numTx);

hOSTBCComb = comm.OSTBCCombiner(...
    'NumTransmitAntennas',numTx,...
    'NumReceiveAntennas',numRx);

Создайте плоский объект MIMO Channel System 4x2, где характеристики канала заданы с помощью пар "имя-значение". Усиления пути сделаны доступными, чтобы служить идеальной оценкой канала для объединителя OSTBC.

hChan = comm.MIMOChannel(...
    'SampleRate',Rs,...
    'PathDelays',tau,...
    'AveragePathGains',pdb,...
    'MaximumDopplerShift',maxDopp,...
    'SpatialCorrelationSpecification','None',...
    'NumTransmitAntennas',numTx,...
    'NumReceiveAntennas',numRx,...
    'PathGainsOutputPort',true);

Создайте системный объект канала AWGN, в котором метод шума задается как отношение сигнал/шум.

hAWGN = comm.AWGNChannel(...
    'NoiseMethod','Signal to noise ratio (SNR)',...
    'SNR',SNR,...
    'SignalPower',1);

Сгенерируйте случайную последовательность бит.

data = randi([0 1],numBits,1);

Примените QPSK модуляцию.

modData = step(hMod,data);

Закодируйте модулированные данные с помощью объекта энкодера OSTBC.

encData = step(hOSTBCEnc,modData);

Передайте закодированные данные через канал MIMO и добавьте белый шум при помощи step функций объектов канала MIMO и AWGN, соответственно.

[chanOut,pathGains] = step(hChan,encData);
rxSignal = step(hAWGN,chanOut);

Суммируйте pathGains массив по количеству путей (2-ая размерность) для формирования оценки канала. Применить squeeze функция для приведения ее размеров в соответствие с размерностями rxSignal.

chEst = squeeze(sum(pathGains,2));

Объедините принятый сигнал MIMO и его оценку канала с помощью step функция объекта объединителя OSTBC. Демодулируйте объединенный сигнал.

combinedData = step(hOSTBCComb,rxSignal,chEst);
receivedData = step(hDemod,combinedData);

Вычислите количество битовых ошибок и частоту битовых ошибок.

[numErrors,ber] = biterr(data,receivedData)
numErrors = 11
ber = 9.1667e-04

Алгоритмы

Этот объект реализует алгоритм, входы и выходы, описанные на OSTBC Combiner блочных страниц с описанием. Свойства объекта соответствуют параметрам блоков.

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

.

См. также

Введенный в R2012a