toi

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

Синтаксис

oip3 = toi(x)
oip3 = toi(x,fs)
oip3 = toi(pxx,f,'psd')
oip3 = toi(sxx,f,rbw,'power')
[oip3,fundpow,fundfreq,imodpow,imodfreq] = toi(___)
toi(___)

Описание

oip3 = toi(x) возвращает выходную точку прерывания третьего порядка (TOI), в децибелах (дБ), действительного синусоидального двухцветного входного сигнала, x. Вычисление выполняется по периодограмме той же длины как вход с помощью окна Kaiser с β = 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);

Оцените периодограмму сигнала с помощью окна Kaiser. Вычислите 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');

Создайте двухцветную синусоиду с частотами 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);

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

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

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

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

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)

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. http://www.designers-guide.org/Analysis/intercept-point.pdf.

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

| | |

Введенный в R2013b