Определение ОСШ, используемое в симуляциях ссылки

В этом примере показано, как симуляции уровня ссылки 5G Toolbox™ задают отношение сигнал-шум (SNR).

Определение ОСШ

Примеры ссылки 5G Toolbox™ (Пропускная способность NR PDSCH и Пропускная способность NR PUSCH) вводят AWGN полученному сигналу во временном интервале после исчезающего канала и перед демодуляцией OFDM.

Примеры задают ОСШ, когда средний ОСШ на элемент ресурса (RE) на получает антенну. REs заданы в сетке ресурса (то есть, в частотном диапазоне). Чтобы достигнуть желаемого ОСШ, примеры вводят эквивалентный уровень шума во временном интервале.

ОСШ задан как

SNR=SRENRE.

SRE и NRE средняя степень сигнала на RE на, получают антенну, и средняя шумовая мощность на RE на получают антенну, соответственно. NRE моделирует AWGN, который добавляется к сигналу.

Для сигнала x с дискретным преобразованием Фурье (ДПФ) X, Состояния теоремы Парсевэла

n=1NFFT|xn|2=1NFFTk=1NFFT|Xk|2.

NFFT длина БПФ. Разделите уравнение на NFFT получить среднюю степень сигнала

S=1NFFTn=1NFFT|xn|2=1NFFT2k=1NFFT|Xk|2=1NFFTXRMS2.

В 5G сигнал интереса не использует все интервалы БПФ (или REs) из-за защитных полос или нулевого дополнения. Кроме того, выделение сигнала может занять только часть доступной сетки. Если сигнал использует только KS интервалы (или REs) БПФ, степень сигнала

S=1NFFTn=1NFFT|xn|2=1NFFT2k=1KS|Xk|2=KSNFFT2XRMS2.

KS количество ненулевой степени REs на символ OFDM.

Степень сигнала на RE

SRE=SKS.

Шумовая мощность на RE

NRE=NNFFT.

Поскольку шум добавляется во временном интервале, шум занимает все интервалы, не только выделенный REs. Поэтому шумовая мощность, N, разделен на NFFT и нет KS.

Рассматривая эти определения, ОСШ становится

SNR=SRENRE=KSKSNFFT2XRMS2NNFFT=XRMS2NFFTN.

Примеры ссылки 5G Toolbox принимают это XRMS2=1NRx, где NRx количество, получают антенны. Это предположение означает, что полная мощность приемника по всем антеннам является той.

SNR=1NRxNFFTN=1NRxNFFTN

Шумовая мощность во входе демодулятора OFDM

N=1NRxNFFTSNR.

Сгенерировать шум со степенью N, масштабируйте комплексные случайные выборки N0.

N0=N2=12NRxNFFTSNR

Фактор 2 в этом уравнении составляет сложный характер шумовых выборок.

Большинство примеров 5G Toolbox, которые моделируют ссылку, использует этот масштабный коэффициент. Этот масштабный коэффициент принимает, что корень, среднеквадратический из значений RE сигнала, XRMS2=1/NRx. Это предположение не всегда применяется при использовании канала распространения.

Канал распространения вводит много эффектов, таких как корреляция, поляризация антенны и усиление антенного элемента. Эти эффекты канала могут повлиять на степень сигнала в приемнике. Эти эффекты делают оценку ОСШ в приемнике и подготовке симуляцией, чтобы смоделировать определенный трудный ОСШ. Чтобы преодолеть эту трудность, определение ОСШ в примерах ссылки не рассматривает ни одного из эффектов канала. Определение ОСШ совпадает с ОСШ, который измеряется без исчезающего канала и когда XRMS2=1/NRx.

Когда вы используете канал распространения (nrTDLChannel или nrCDLChannel объект), учтите эти факторы.

  • Установка NormalizeChannelOutputs свойство канала возражает против true нормирует канал, выходные параметры количеством получают антенны, таким образом что XRMS2=1/NRx, как принято в деривации.

  • Установка NormalizePathGains свойство канала возражает против true устанавливает общую степень средних усилений пути к 0 дБ.

  • Определение ОСШ не рассматривает ни одного из эффектов канала.

Верификация ОСШ

Этот раздел проверяет уравнение, которое выведено в предыдущем разделе. Поскольку введенное определение ОСШ не учитывает ни одного из эффектов канала, эта верификация не включает канал распространения.

Этот рисунок показывает настройку, чтобы измерить ОСШ на RE на антенну.

Эта настройка реализует эти шаги.

  • Сгенерируйте сетку ресурса с физическим нисходящим каналом совместно использованный канал (PDSCH) символы.

  • OFDM-модулируйте сетку.

  • Сгенерируйте AWGN.

  • OFDM-демодулируйте полученный сигнал и шум отдельно.

  • Измерьте степень сигнала и шума на RE на антенну.

  • Вычислите и отобразите ОСШ.

Задайте желаемый ОСШ в дБ.

SNRdB = 0;
rng("default") % Set default random number generator for repeatability

Определите номер передающих и приемных антенн. Поскольку никакой канал не существует, примите, что количество передающих и приемных антенн является тем же самым.

nTxAnts = 2;
nRxAnts = nTxAnts;

Задайте параметры несущей.

carrier = nrCarrierConfig;
carrier.NSizeGrid = 52;          % Grid size in resource blocks
carrier.SubcarrierSpacing = 15;  % Subcarrier spacing

waveformInfo = nrOFDMInfo(carrier); % Waveform information

pdsch = nrPDSCHConfig;
pdsch.Modulation = "16QAM";
pdsch.PRBSet = 0:(carrier.NSizeGrid-1); % PDSCH allocation

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

w = (1/sqrt(pdsch.NumLayers))*ones(pdsch.NumLayers,nTxAnts);

Чтобы достигнуть желаемого ОСШ, вычислите шумовой масштабный коэффициент: N0=12NRxNFFTSNR.

SNR = 10^(SNRdB/10);
N0 = 1/sqrt(2.0*nRxAnts*double(waveformInfo.Nfft)*SNR);

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

[pdschIndices,pdschInfo] = nrPDSCHIndices(carrier,pdsch);
pdschBits = randi([0 1],pdschInfo.G,1);
pdschSymbols = nrPDSCH(carrier,pdsch,pdschBits);
pdschSymbolsPrecoded = pdschSymbols*w;

Создайте сетку ресурса и сопоставьте предварительно закодированные символы PDSCH с сеткой ресурса.

pdschGrid = nrResourceGrid(carrier,nTxAnts);
[~,pdschAntIndices] = nrExtractResources(pdschIndices,pdschGrid);
pdschGrid(pdschAntIndices) = pdschSymbolsPrecoded;

OFDM-модулировать.

txWaveform = nrOFDMModulate(carrier,pdschGrid);

Примите, что никакой канал не существует. Поскольку определение ОСШ принимает это XRMS2=1/NRx, нормируйте полученный сигнал на количество, получают антенны.

rxWaveform = txWaveform/sqrt(nRxAnts);

Сгенерируйте AWGN.

rxNoise = N0*complex(randn(size(rxWaveform)),randn(size(rxWaveform)));

OFDM-демодулируйте шум и предупредите отдельно, чтобы измерить степень полученного сигнала и шума независимо. Извлеките символы PDSCH из полученной сетки.

% OFDM demodulation
rxSignalGrid = nrOFDMDemodulate(carrier,rxWaveform);
rxNoiseGrid = nrOFDMDemodulate(carrier,rxNoise);

% PDSCH symbols extraction
rxPDSCHSymbols = rxSignalGrid(pdschAntIndices);

Измерьте принимаемую мощность сигнала на RE, SRE, и шумовая мощность на RE, NRE.

SRE=SKS=KSKSNFFT2XRMS2=1NFFT2XRMS2

NRE=NNFFT

Проверьте, что измеренные значения ОСШ аппроксимируют заданный параметр ОСШ.

Sre = (1/waveformInfo.Nfft.^2)*rms(rxPDSCHSymbols).^2;
Nre = (1/waveformInfo.Nfft)*rms(rxNoise).^2;
for n=1:nRxAnts
    disp("Received signal power per RE antenna " + string(n) + " = " + string(pow2db(Sre(n))+30) + " dBm");
    disp("Received noise power per RE antenna " + string(n) + " = " + string(pow2db(Nre(n))+30) + " dBm");
    disp("SNR (antenna " + string(n) + ") = " + string(pow2db(Sre(n)/Nre(n))) + " dB");
end
Received signal power per RE antenna 1 = -33.186 dBm
Received noise power per RE antenna 1 = -33.2432 dBm
SNR (antenna 1) = 0.057195 dB
Received signal power per RE antenna 2 = -33.186 dBm
Received noise power per RE antenna 2 = -33.2371 dBm
SNR (antenna 2) = 0.051146 dB

Похожие темы