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) и произведения интермодуляции (2 f 1 - f 2 , 2 f 2 - f 1). Высшие гармоники и интермодуляционные продукты не маркируются. TOI появляется над графиком.

Примеры

свернуть все

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

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. The axes 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. The axes 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. The axes 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

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

Типы данных: 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] Кундерт, Кеннет С. «Точное и быстрое измерение IP2 и IP3.» Сообщество Руководства дизайнера. Май 2002 года. https://designers-guide.org/analysis/intercept-point.pdf.

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

.

См. также

| | |

Введенный в R2013b