comm.MemorylessNonlinearity

Примените нелинейность без памяти, чтобы объединить сгенерированный модулированный сигнал

Описание

comm.MemorylessNonlinearity Система object™ применяет нелинейные нарушения без памяти к комплексному сгенерированному модулированному сигналу. Используйте этот Системный объект, чтобы смоделировать нелинейные нарушения без памяти, вызванные усилением сигнала в передатчике радиочастоты (RF) или приемнике. Для получения дополнительной информации смотрите Нелинейные Нарушения Без памяти.

Примечание

Все значения степени принимают номинальный импеданс 1 Ома.

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

  1. Создайте comm.MemorylessNonlinearity объект и набор его свойства.

  2. Вызовите объект с аргументами, как будто это была функция.

Чтобы узнать больше, как Системные объекты работают, смотрите то, Что Системные объекты?.

Создание

Описание

mnl = comm.MemorylessNonlinearity создает Системный объект нелинейности без памяти это модели RF нелинейные нарушения.

пример

mnl = comm.MemorylessNonlinearity(Name,Value) задает свойства с помощью одного или нескольких аргументов пары "имя-значение". Заключите каждое имя свойства в кавычки. Например, 'Method','Saleh model' устанавливает метод моделирования на метод Салеха.

Свойства

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

Если в противном случае не обозначено, свойства являются ненастраиваемыми, что означает, что вы не можете изменить их значения после вызова объекта. Объекты блокируют, когда вы вызываете их, и release функция разблокировала их.

Если свойство является настраиваемым, можно изменить его значение в любое время.

Для получения дополнительной информации об изменении значений свойств смотрите Разработку системы в MATLAB Используя Системные объекты.

Метод моделирования нелинейности в виде 'Cubic polynomial'Гиперболический тангенс, 'Saleh model', 'Ghorbani model', 'Rapp model', или 'Lookup table'. Для получения дополнительной информации смотрите Нелинейные Нарушения Без памяти.

Типы данных: char | string

Масштабный коэффициент входного сигнала в децибелах в виде скаляра. Это свойство масштабирует усиление степени входного сигнала.

Настраиваемый: да

Зависимости

Чтобы включить это свойство, установите Method свойство к 'Saleh model' или 'Ghorbani model'.

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

Линейное усиление в децибелах в виде скаляра. Это свойство масштабирует усиление степени выходного сигнала.

Настраиваемый: да

Зависимости

Чтобы включить это свойство, установите Method свойство к 'Cubic polynomial'Гиперболический тангенс, или 'Rapp model'.

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

Третий порядок ввел точку пересечения в dBm в виде скаляра.

Настраиваемый: да

Зависимости

Чтобы включить это свойство, установите Method свойство к 'Cubic polynomial' или 'Hyperbolic tangent'.

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

Коэффициент преобразования AM/PM в градусах на децибел в виде скаляра. Для получения дополнительной информации смотрите Кубический полином и Гиперболические Методы Модели Касательной.

Настраиваемый: да

Зависимости

Чтобы включить это свойство, установите Method свойство к 'Cubic polynomial' или 'Hyperbolic tangent'.

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

Параметры AM использовались для расчета амплитудного усиления во входном сигнале в виде вектора-строки.

  • Когда Method свойство установлено в 'Saleh model', это свойство должно быть двухэлементным вектором, который задает альфу и коэффициенты бета. В этом случае значением по умолчанию является [2.1587 1.1517].

  • Когда Method свойство установлено в 'Ghorbani model', это свойство должно быть четырехэлементным вектором, который задает x 1, x 2, x 3, и x 4 значения. В этом случае значением по умолчанию является [8.1081 1.5413 6.5202 -0.0718].

Для получения дополнительной информации см. Метод Модели Салеха и Метод Модели Ghorbani.

Настраиваемый: да

Зависимости

Чтобы включить это свойство, установите Method свойство установлено в 'Saleh model' или 'Ghorbani model'.

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

Параметры AM/PM использовались для расчета фазового перехода во входном сигнале в виде вектора-строки.

  • Когда Method свойство установлено в 'Saleh model', это свойство должно быть двухэлементным вектором, который задает альфу и коэффициенты бета. В этом случае значением по умолчанию является [4.0033 9.1040].

  • Когда Method свойство установлено в 'Ghorbani model', это свойство должно быть четырехэлементным вектором, который задает y 1, y 2, y 3, и y 4 значения. В этом случае значением по умолчанию является [4.6645 2.0965 10.88 -0.003]

Для получения дополнительной информации см. Метод Модели Салеха и Метод Модели Ghorbani.

Настраиваемый: да

Зависимости

Чтобы включить это свойство, установите Method свойство установлено в 'Saleh model' или 'Ghorbani model'.

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

Нижний предел входной мощности в dBm в виде скаляра меньше, чем PowerUpperLimit значение свойства. Шкалы перевода AM/PM линейно для значений входной мощности в области значений [PowerLowerLimit, PowerUpperLimit]. Если степень входного сигнала ниже нижнего предела входной мощности, сдвиг фазы, следующий из преобразования AM/PM, является нулем. Для получения дополнительной информации смотрите Кубический полином и Гиперболические Методы Модели Касательной.

Настраиваемый: да

Зависимости

Чтобы включить это свойство, установите Method свойство установлено в 'Cubic polynomial' или 'Hyperbolic tangent'.

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

Верхний предел входной мощности в dBm в виде скаляра, больше, чем PowerLowerLimit. Шкалы перевода AM/PM линейно для значений входной мощности в области значений [PowerLowerLimit, PowerUpperLimit]. Если степень входного сигнала выше верхнего предела входной мощности, сдвиг фазы, следующий из преобразования AM/PM, является постоянным. Для получения дополнительной информации смотрите Кубический полином и Гиперболические Методы Модели Касательной.

Настраиваемый: да

Зависимости

Чтобы включить это свойство, установите Method свойство установлено в 'Cubic polynomial' или 'Hyperbolic tangent'.

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

Масштабный коэффициент выходного сигнала в децибелах в виде скаляра. Это свойство масштабирует усиление степени выходного сигнала.

Настраиваемый: да

Зависимости

Чтобы включить это свойство, установите Method свойство установлено в 'Saleh model' или 'Ghorbani model'.

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

Фактор гладкости в виде скаляра. Для получения дополнительной информации см. Метод Модели Rapp.

Настраиваемый: да

Зависимости

Чтобы включить это свойство, установите Method свойство установлено в 'Rapp model'.

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

Выведите уровень насыщенности в виде скаляра. Для получения дополнительной информации см. Метод Модели Rapp.

Настраиваемый: да

Зависимости

Чтобы включить это свойство, установите Method свойство установлено в 'Rapp model'.

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

Интерполяционная таблица характеристик усилителя в виде N-by-3 матрица измеренных характеристик усилителя мощности (PA). Каждая строка имеет форму [P в, P, ΔΦ]. P в задает входной сигнал PA в dBm, P задает выходной сигнал PA в dBm, и ΔΦ задает выходной сдвиг фазы в градусах. Значением по умолчанию является [-25, 5.16, -0.25; -20, 10.11, -0.47; -15, 15.11, -0.68; -10, 20.05, -0.89; -5, 24.79, -1.22; 0, 27.64, 5.59; 5, 28.49, 12.03].

Измеренные характеристики PA, заданные этим свойством, используются для расчета AM (в dBm/dBm) и AM/PM (в deg/dBm) нелинейные характеристики нарушения. Системный объект искажает входной сигнал вычисленным AM (в dBm/dBm) и AM/PM (в deg/dBm) значения.

Примечание

Определить соответствующий P и ΔΦ для P в значениях вне области значений значений, заданных в Table свойство, Системный объект применяет линейную экстраполяцию от первых двух или последних двух [P в, P, ΔΦ] строки Table.

Настраиваемый: да

Зависимости

Чтобы включить это свойство, установите Method свойство установлено в 'Lookup table'.

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

Использование

Синтаксис

Описание

пример

outsig = mnl(insig) применяет нелинейные нарушения без памяти к сгенерированному модулированному сигналу входа RF.

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

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

Введите сгенерированный модулированный сигнал RF в виде скаляра или вектор-столбца. Значения в этом входе должны быть комплексными.

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

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

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

Выведите сгенерированный модулированный сигнал RF, возвращенный как скаляр или вектор-столбец. Выход имеет совпадающий тип данных как вход.

Функции объекта

Чтобы использовать объектную функцию, задайте Системный объект как первый входной параметр. Например, чтобы выпустить системные ресурсы Системного объекта под названием obj, используйте этот синтаксис:

release(obj)

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

stepЗапустите алгоритм Системного объекта
releaseВысвободите средства и позвольте изменения в значениях свойств Системного объекта и введите характеристики
resetСбросьте внутренние состояния Системного объекта

Примеры

свернуть все

Сгенерируйте 16-QAM данные со средней степенью 10 мВт и передайте данные через нелинейный усилитель мощности (PA).

M = 16;
data = randi([0 (M - 1)]',1000,1);
avgPow = 1e-2;
minD = avgPow2MinD(avgPow,M);

Создайте Системный объект нелинейности без памяти, задав метод модели Салеха.

saleh = comm.MemorylessNonlinearity('Method','Saleh model');

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

modData = (minD/2).*qammod(data,M);
y = saleh(modData);

Сгенерируйте график рассеивания результатов.

scatterplot(y)

Средняя нормализация степени входного сигнала.

function minD = avgPow2MinD(avgPow,M)
    % Average power to minimum distance    
    nBits = log2(M);
    if (mod(nBits,2)==0)
        % Square QAM
        sf = (M - 1)/6;
    else
        % Cross QAM
        if (nBits>4)
            sf = ((31*M/32) - 1)/6;
        else
            sf = ((5*M/4) - 1)/6;
        end
    end
    minD = sqrt(avgPow/sf);
end

Постройте сжатие усиления нелинейного усилителя для 16-QAM сигнала.

Задайте порядок модуляции и выборки на параметры символа.

M = 16;
sps = 4;

Смоделируйте нелинейный усилитель путем создания Системного объекта нелинейности без памяти с входной точкой пересечения третьего порядка на 30 дБ. Создайте повышенный Системный объект фильтра передачи косинуса.

amplifier = comm.MemorylessNonlinearity('IIP3',30);

txfilter = comm.RaisedCosineTransmitFilter('RolloffFactor',0.3, ...
    'FilterSpanInSymbols',6, ...
    'OutputSamplesPerSymbol',sps, ...
    'Gain',sqrt(sps));

Задайте входную мощность в dBm. Преобразуйте входную мощность в W и инициализируйте вектор усиления.

pindBm = -5:25;
pin = 10.^((pindBm-30)/10);
gain = zeros(length(pindBm),1);

Выполните основной цикл обработки, который включает эти шаги.

  • Сгенерируйте случайные символы данных.

  • Модулируйте символы данных и настройте среднюю степень сигнала.

  • Отфильтруйте модулируемый сигнал.

  • Усильте сигнал.

  • Измерьте усиление.

for k = 1:length(pin)
    data = randi([0 (M - 1)],1000,1);
    modSig = qammod(data,M,'UnitAveragePower',true)*sqrt(pin(k));
    filtSig = txfilter(modSig);
    ampSig = amplifier(filtSig);
    gain(k) = 10*log10(var(ampSig)/var(filtSig));
end

Постройте усиление усилителя как функцию степени входного сигнала. 1 точка сжатия усиления дБ происходит для входной мощности 18.5 dBm. Чтобы увеличить точку, в которой наблюдается сжатие на 1 дБ, увеличьте точку пересечения третьего порядка, amplifier.IIP3.

arrayplot = dsp.ArrayPlot('PlotType','Line','XLabel','Power In (dBm)', ...
    'XOffset',-5,'YLimits',[-5 5]);

arrayplot(gain)

Примените нелинейные характеристики усилителя мощности (PA) к 16-QAM сигналу путем установки Method свойство к 'Lookup table'.

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

M = 16; % Modulation order
sps = 4; % Samples per symbol
pindBm = -2; % Input power
pin = 10.^((pindBm-30)/10); % power in Watts
data = randi([0 (M - 1)],1000,1);
refdata = 0:M-1;
refconst = qammod(refdata,M,'UnitAveragePower',true);

Создайте Системный объект нелинейности без памяти, Системный объект фильтра передачи, и созвездие схематически изображает Системный объект. Значения интерполяционной таблицы по умолчанию используются для Системного объекта нелинейности без памяти.

amplifier = comm.MemorylessNonlinearity('Method','Lookup table');
txfilter = comm.RaisedCosineTransmitFilter('RolloffFactor',0.3, ...
    'FilterSpanInSymbols',6,'OutputSamplesPerSymbol',sps,'Gain',sqrt(sps));
constellation = comm.ConstellationDiagram('SamplesPerSymbol',4,'ReferenceConstellation',refconst, ...
    'Title','Amplified/Distorted Signal');

Модулируйте случайные данные. Отфильтруйте и примените нелинейные характеристики усилителя к символам модуляции.

modSig = qammod(data,M,'UnitAveragePower',true)*sqrt(pin);
filtSig = txfilter(modSig);
ampSig = amplifier(filtSig);

Вычислите уровни сигнала ввода и вывода и сдвиг фазы.

poutdBm = (20*log10(abs(ampSig))) + 30;
simulated_pindBm = (20*log10(abs(filtSig))) + 30;
phase = angle(ampSig.*conj(filtSig))*180/pi;

Постройте характеристики AM, характеристики AM/PM и результаты созвездия.

figure
set(gcf,'units','normalized','position',[.25 1/3 .5 1/3])
subplot(1,2,1)
plot(simulated_pindBm,poutdBm,'.'); 
hold on
plot(amplifier.Table(:,1),amplifier.Table(:,2),'.','Markersize',15);
xlabel('Input Power (dBm)')
ylabel('Output Power (dBm)');
grid on; 
title('AM/AM Characteristics');
leglabels = {'Simulated results','Measurement'};
legend (leglabels,'Location','north');

subplot(1,2,2)
plot(simulated_pindBm,phase,'.');
hold on
plot(amplifier.Table(:,1),amplifier.Table(:,3),'.','Markersize',15);
legend (leglabels,'Location','north');
xlabel('Input Power (dBm)'); 
ylabel('Output Phase Shift (degrees)');
grid on; title('AM/PM Characteristics');

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

constellation(ampSig)

Примените нелинейные характеристики усилителя мощности (PA) к 16-QAM сигналу путем установки Method свойство к 'Lookup table'.

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

M = 16; % Modulation order
sps = 4; % Samples per symbol
pindBm = -8; % Input power
pin = 10.^((pindBm-30)/10); % power in Watts
data = randi([0 (M - 1)],1000,1);
refdata = 0:M-1;
refconst = qammod(refdata,M,'UnitAveragePower',true);
paChar = pa_performance_characteristics();

Создайте Системный объект нелинейности без памяти, Системный объект фильтра передачи, и созвездие схематически изображает Системный объект. Значения интерполяционной таблицы по умолчанию используются для Системного объекта нелинейности без памяти.

amplifier = comm.MemorylessNonlinearity('Method','Lookup table','Table',paChar);
txfilter = comm.RaisedCosineTransmitFilter('RolloffFactor',0.3, ...
    'FilterSpanInSymbols',6,'OutputSamplesPerSymbol',sps,'Gain',sqrt(sps));
constellation = comm.ConstellationDiagram('SamplesPerSymbol',4, ...
    'Title','Amplified/Distorted Signal','NumInputPorts',2, ...
    'ReferenceConstellation', refconst,'ShowLegend',true, ...
    'ChannelNames',{'Filtered signal','Amplified signal'});

Модулируйте случайные данные. Отфильтруйте и примените нелинейные характеристики усилителя к символам модуляции.

modSig = qammod(data,M,'UnitAveragePower',true)*sqrt(pin);
filtSig = txfilter(modSig);
ampSig = amplifier(filtSig);

Вычислите уровни сигнала ввода и вывода и сдвиг фазы.

poutdBm = (20*log10(abs(ampSig))) + 30;
simulated_pindBm = (20*log10(abs(filtSig))) + 30;
phase = angle(ampSig.*conj(filtSig))*180/pi;

Постройте характеристики AM, характеристики AM/PM и результаты созвездия.

figure
set(gcf,'units','normalized','position',[.25 1/3 .5 1/3])
subplot(1,2,1)
plot(simulated_pindBm,poutdBm,'.');
hold on
plot(amplifier.Table(:,1),amplifier.Table(:,2),'.','Markersize',15);
xlabel('Input Power (dBm)')
ylabel('Output Power (dBm)');
grid on;
title('AM/AM Characteristics');
leglabel = {'Simulated results','Measurement'};
legend (leglabel,'Location','south');

subplot(1,2,2)
plot(simulated_pindBm,phase,'.');
hold on
plot(amplifier.Table(:,1),amplifier.Table(:,3),'.','Markersize',15);
legend (leglabel,'Location','south');
xlabel('Input Power (dBm)');
ylabel('Output Phase Shift (degrees)');
grid on;
title('AM/PM Characteristics');

В целях сравнения созвездия нормируйте усиленный сигнал и отфильтрованный сигнал. Сгенерируйте схему созвездия отфильтрованного сигнала и усиленного сигнала. Нелинейные характеристики усилителя вызывают сжатие усиленного сигнального созвездия по сравнению с отфильтрованным созвездием.

filtSig = filtSig/mean(abs(filtSig)); % Normalized filtered signal
ampSig = ampSig/mean(abs(ampSig)); % Normalized amplified signal
constellation(filtSig,ampSig)

pa_performance_characteristics функция помощника вычисляет показатели производительности усилителя. Данные извлечены от фигуры 4 Hammi, Oualid, и др. "Оценка усилителей мощности модели и квантификация интенсивности эффектов памяти с помощью метода посткомпенсации без памяти". Транзакции IEEE на Микроволновой Теории и Методах 56.12 (2008): 3170-3179.

function paChar = pa_performance_characteristics()

Операционная спецификация для основанного на LDMOS усилителя Доэрти:

  • Частота 2 110 МГц

  • Пиковая мощность 300 Вт

  • Маленькое усиление сигнала 61 дБ

Каждая строка в HAV08_Table задает Контакт (dBm), усиление (дБ), сдвиг фазы (степени).

HAV08_Table =...
    [-35,60.53,0.01;
    -34,60.53,0.01;
    -33,60.53,0.08;
    -32,60.54,0.08;
    -31,60.55,0.1;
    -30,60.56,0.08;
    -29,60.57,0.14;
    -28,60.59,0.19;
    -27,60.6,0.23;
    -26,60.64,0.21;
    -25,60.69,0.28;
    -24,60.76,0.21;
    -23,60.85,0.12;
    -22,60.97,0.08;
    -21,61.12,-0.13;
    -20,61.31,-0.44;
    -19,61.52,-0.94;
    -18,61.76,-1.59;
    -17,62.01,-2.73;
    -16,62.25,-4.31;
    -15,62.47,-6.85;
    -14,62.56,-9.82;
    -13,62.47,-12.29;
    -12,62.31,-13.82;
    -11,62.2,-15.03;
    -10,62.15,-16.27;
    -9,62,-18.05;
    -8,61.53,-20.21;
    -7,60.93,-23.38;
    -6,60.2,-26.64;
    -5,59.38,-28.75];

Преобразуйте второй столбец HAV08_Table от усиления, чтобы Дуться для использования Системным объектом нелинейности без памяти.

paChar = HAV08_Table;
paChar(:,2) = paChar(:,1) + paChar(:,2);
end

Больше о

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

Ссылки

[1] Салех, A.A.M. “Независимые от частоты и Зависимые Частотой Нелинейные Модели Усилителей TWT”. Транзакции IEEE на Коммуникациях 29, № 11 (ноябрь 1981): 1715–20. https://doi.org/10.1109/TCOM.1981.1094911.

[2] Ghorbani, A. и М. Шейхэн. "Эффект твердотельных усилителей мощности (SSPAs) нелинейность на MPSK и передаче сигнала M-QAM". На 1 991 шестой международной конференции по вопросам цифровой обработки сигналов в коммуникациях, 193–97, 1991.

[3] Rapp, Ch. "Эффекты HPA-нелинейности на 4-DPSK/OFDM-Signal для Цифровой Звуковой Широковещательной Системы". В Продолжениях Вторая европейская Конференция по Находившемуся. Коммуникация (ESA SP-332), 179–84. Льеж, Бельгия, 1991. https://elib.dlr.de/33776/.

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

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

Объекты

Блоки

Представленный в R2012a