exponenta event banner

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

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

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

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

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

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

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

Циклические частоты, соответствующие односторонней оценке ИПУ, 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