nrEqualizeMMSE

Эквализация минимальной среднеквадратической ошибки (MMSE)

Описание

пример

[eqSym,csi] = nrEqualizeMMSE(rxSym,hest,nVar) применяет эквализацию MMSE к извлеченным элементам ресурса физического канала rxSym и возвращает компенсируемые символы в eqSym. Процесс эквализации использует предполагаемую информацию о канале hest и оценка полученного шумового отклонения nVar. Функция также возвращает мягкую информацию о состоянии канала csi.

Примеры

свернуть все

Выполните эквализацию MMSE на извлеченных элементах ресурса физического канала телевизионного вещания (PBCH).

Создайте символы и индексы для передачи PBCH.

ncellid = 146;
v = 0;
E = 864;
cw = randi([0 1],E,1);
pbchTxSym = nrPBCH(cw,ncellid,v);
pbchInd = nrPBCHIndices(ncellid);

Сгенерируйте пустой массив ресурса для одной антенны передачи. Заполните массив с символами PBCH при помощи сгенерированных индексов PBCH.

P = 1;
txGrid = zeros([240 4 P]);
txGrid(pbchInd) = pbchTxSym;

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

txWaveform = ofdmmod(txGrid,256,[22 18 18 18],[1:8 249:256].');

Создайте матрицу канала и примените канал к переданной форме волны.

R = 4;
H = dftmtx(max([P R]));
H = H(1:P,1:R);
H = H / norm(H);
rxWaveform = txWaveform * H;

Создайте оценку канала.

hEstGrid = repmat(permute(H.',[3 4 1 2]),[240 4]);
nEst = 0.1;

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

rxGrid = ofdmdemod(rxWaveform,256,[22 18 18 18],0,[1:8 249:256].');

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

[pbchRxSym,pbchHestSym] = nrExtractResources(pbchInd,rxGrid,hEstGrid);
figure;
plot(pbchRxSym,'o:');
title('Received PBCH Constellation');

Декодируйте PBCH с извлеченными элементами ресурса. Постройте компенсируемое созвездие PBCH.

[pbchEqSym,csi] = nrEqualizeMMSE(pbchRxSym,pbchHestSym,nEst);
pbchBits = nrPBCHDecode(pbchEqSym,ncellid,v);
figure;
plot(pbchEqSym,'o:');
title('Equalized PBCH Constellation');

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

свернуть все

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

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

Предполагаемая информация канала, указанная как NRE-by-R-by-P числовой массив. NRE является количеством элементов ресурса, извлеченных из каждого K-by-L плоскость полученной сетки. K является количеством поднесущих, и L является количеством символов OFDM. R является количеством, получают антенны. P является количеством плоскостей передачи.

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

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

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

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

свернуть все

Компенсируемые символы, возвращенные как NRE-by-P числовая матрица. NRE является количеством элементов ресурса, извлеченных из каждого K-by-L плоскость полученной сетки. K является количеством поднесущих, и L является количеством символов OFDM. P является количеством плоскостей передачи.

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

Мягкая информация о состоянии канала, возвращенная как NRE-by-P числовая матрица. NRE является количеством элементов ресурса, извлеченных из каждого K-by-L плоскость полученной сетки. K является количеством поднесущих, и L является количеством символов OFDM. P является количеством плоскостей передачи.

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

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

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

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

Функции

Введенный в R2018b