toi

Точка пересечения третьего порядка

Описание

oip3 = toi(x) возвращает выходную точку точки пересечения третьего порядка (TOI), в децибелах (дБ), действительного синусоидального двухцветного входного сигнала, x. Расчет выполняется по периодограмме той же длины как вход с помощью окна Кайзера с β = 38.

пример

oip3 = toi(x,fs) задает частоту дискретизации, fs. Значение по умолчанию fs 1.

пример

oip3 = toi(pxx,f,'psd') задает вход как одностороннюю спектральную плотность мощности (PSD), pxx, из действительного сигнала. f вектор из частот, который соответствует вектору из pxx оценки.

пример

oip3 = toi(sxx,f,rbw,'power') задает вход как односторонний спектр мощности, sxx, из действительного сигнала. rbw полоса пропускания разрешения, по которой интегрирована каждая оценка степени.

пример

[oip3,fundpow,fundfreq,imodpow,imodfreq] = toi(___) также возвращает степень, fundpow, и частоты, fundfreq, из двух основных синусоид. Это также возвращает степень, imodpow, и частоты, imodfreq, из более низких и верхних продуктов интермодуляции. Этот синтаксис может использовать любой из входных параметров в предыдущих синтаксисах.

пример

toi(___) без выходных аргументов строит спектр сигнала и аннотирует более низкие и верхние основные принципы (f 1, f 2) и продукты интермодуляции (2f1  – f 2, 2f2  – f 1). Более высокие гармоники и продукты интермодуляции не помечены. TOI появляется выше графика.

Примеры

свернуть все

Создайте двухцветную синусоиду с частотами f1=5 kHz и f2=6 kHz, произведенный на уровне 48 кГц. Сделайте сигнал нелинейным путем питания его полином. Добавьте шум. Установите генератор случайных чисел на настройки по умолчанию для восстанавливаемых результатов. Вычислите точку пересечения третьего порядка. Проверьте, что продукты интермодуляции происходят в 2f2-f1=4 kHz и 2f1-f2=7 kHz.

rng default
fi1 = 5e3;
fi2 = 6e3;
Fs = 48e3;
N = 1000;
x = sin(2*pi*fi1/Fs*(1:N))+sin(2*pi*fi2/Fs*(1:N));
y = polyval([0.5e-3 1e-7 0.1 3e-3],x)+1e-5*randn(1,N);

[myTOI,Pfund,Ffund,Pim3,Fim3] = toi(y,Fs);
myTOI,Fim3
myTOI = 1.3844
Fim3 = 1×2
103 ×

    4.0002    6.9998

Создайте двухцветную синусоиду с частотами 5 кГц и 6 кГц, произведенных на уровне 48 кГц. Сделайте сигнал нелинейным путем оценки полинома. Добавьте шум. Установите генератор случайных чисел на настройки по умолчанию для восстанавливаемых результатов.

rng default
fi1 = 5e3;
fi2 = 6e3;
Fs = 48e3;
N = 1000;
x = sin(2*pi*fi1/Fs*(1:N))+sin(2*pi*fi2/Fs*(1:N));
y = polyval([0.5e-3 1e-7 0.1 3e-3],x)+1e-5*randn(1,N);

Оцените периодограмму сигнала с помощью окна Кайзера. Вычислите TOI использование спектральной плотности мощности. Постройте результат.

w = kaiser(numel(y),38);

[Sxx, F] = periodogram(y,w,N,Fs,'psd');
[myTOI,Pfund,Ffund,Pim3,Fim3] = toi(Sxx,F,'psd')
myTOI = 1.3843
Pfund = 1×2

  -22.9133  -22.9132

Ffund = 1×2
103 ×

    5.0000    6.0000

Pim3 = 1×2

  -71.4868  -71.5299

Fim3 = 1×2
103 ×

    4.0002    6.9998

toi(Sxx,F,'psd');

Figure contains an axes object. The axes object with title Third-Order Intercept: 1.38 dB contains 5 objects of type line, text.

Создайте двухцветную синусоиду с частотами 5 кГц и 6 кГц, произведенных на уровне 48 кГц. Сделайте сигнал нелинейным путем оценки полинома. Добавьте шум. Установите генератор случайных чисел на настройки по умолчанию для восстанавливаемых результатов.

rng default

fi1 = 5e3;
fi2 = 6e3;
Fs = 48e3;
N = 1000;

x = sin(2*pi*fi1/Fs*(1:N))+sin(2*pi*fi2/Fs*(1:N));
y = polyval([0.5e-3 1e-7 0.1 3e-3],x)+1e-5*randn(1,N);

Оцените периодограмму сигнала с помощью окна Кайзера. Вычислите TOI использование спектра мощности. Постройте результат.

w = kaiser(numel(y),38);

[Sxx,F] = periodogram(y,w,N,Fs,'power');

toi(Sxx,F,enbw(w,Fs),'power')

Figure contains an axes object. The axes object with title Third-Order Intercept: 1.38 dB contains 5 objects of type line, text.

ans = 1.3844

Сгенерируйте 640 выборок двухцветной синусоиды с частотами 5 Гц и 7 Гц, произведенных на уровне 32 Гц. Сделайте сигнал нелинейным путем оценки полинома. Добавьте шум со стандартным отклонением 0.01. Установите генератор случайных чисел на настройки по умолчанию для восстанавливаемых результатов. Вычислите точку пересечения третьего порядка. Проверьте, что продукты интермодуляции происходят в 2f2-f1=9Hz и 2f1-f2=3Hz.

rng default
x = sin(2*pi*5/32*(1:640))+cos(2*pi*7/32*(1:640));
q = x + 0.01*x.^3 + 1e-2*randn(size(x));
[myTOI,Pfund,Ffund,Pim3,Fim3] = toi(q,32)
myTOI = 17.4230
Pfund = 1×2

   -2.8350   -2.8201

Ffund = 1×2

    5.0000    7.0001

Pim3 = 1×2

  -43.1362  -43.5211

Fim3 = 1×2

    3.0015    8.9744

Сгенерируйте 640 выборок двухцветной синусоиды с частотами 5 Гц и 7 Гц, произведенных на уровне 32 Гц. Сделайте сигнал нелинейным путем оценки полинома. Добавьте шум со стандартным отклонением 0.01. Установите генератор случайных чисел на настройки по умолчанию. Постройте спектр сигнала. Отобразите основные принципы и продукты интермодуляции. Проверьте, что последние происходят на уровне 9 Гц и 3 Гц.

rng default
x = sin(2*pi*5/32*(1:640))+cos(2*pi*7/32*(1:640));
q = x + 0.01*x.^3 + 1e-2*randn(size(x));
toi(q,32)

Figure contains an axes object. The axes object with title Third-Order Intercept: 17.42 dB contains 5 objects of type line, text.

ans = 17.4230

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

свернуть все

Синусоидальный двухцветный сигнал с действительным знаком в виде строки или вектор-столбца.

Пример: polyval([0.01 0 1 0],sum(sin(2*pi*[5 7]'*(1:640)/32))) + 0.01*randn([1 640])

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

Частота дискретизации в виде положительного действительного скаляра. Частота дискретизации является количеством отсчетов в единицу времени. Если модуль времени является секундами, то частота дискретизации имеет модули герц.

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

Односторонняя оценка спектральной плотности мощности в виде неотрицательной строки с действительным знаком или вектор-столбца.

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

Пример: [pxx,f] = periodogram(cos(pi./[4;2]*(0:159))'+randn(160,2)) задает периодограмму оценка PSD шумной двухканальной синусоиды, произведенной в 2π Гц и частоты, на которых это вычисляется.

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

Циклические частоты, соответствующие односторонней оценке PSD, pxxВ виде строки или вектор-столбца. Первый элемент f должен быть 0.

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

Спектр мощности в виде неотрицательной строки с действительным знаком или вектор-столбца.

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

Пример: [sxx,w] = periodogram(cos(pi./[4;2]*(0:159))'+randn(160,2),'power') задает оценку спектра мощности периодограммы двухканальной синусоиды, встроенной в белый Гауссов шум и нормированные частоты, на которых это вычисляется.

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

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

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

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

свернуть все

Выведите точку пересечения третьего порядка синусоидального двухцветного сигнала, возвращенного как скаляр с действительным знаком, описанный в децибелах. Если второй первичный тон является второй гармоникой первого первичного тона, то более низкий продукт интермодуляции на нулевой частоте. Функция возвращает NaN в тех случаях.

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

Степень, содержавшаяся в двух основных синусоидах входного сигнала, возвращенного как двухэлементный вектор-строка с действительным знаком.

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

Частоты двух основных синусоид входного сигнала, возвращенного как двухэлементный вектор-строка с действительным знаком.

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

Степень, содержавшаяся в более низких и верхних продуктах интермодуляции входного сигнала, возвращенного как двухэлементный вектор-строка с действительным знаком.

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

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

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

Ссылки

[1] Kundert, Кеннет С. "Точное и Быстрое Измерение IP2 и IP3". Сообщество Руководства разработчика. Май, 2002. https://designers-guide.org/analysis/intercept-point.pdf.

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

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

| | |

Введенный в R2013b