thd

Полное гармоническое искажение

Описание

пример

r = thd(x) возвращает полное гармоническое искажение (THD) в дБк действительного синусоидального сигнала x. Полное гармоническое искажение определяется из основной частоты и первых пяти гармоник с помощью модифицированной периодограммы той же длины, что и входной сигнал. Измененная периодограмма использует окно Кайзера с β = 38.

пример

r = thd(x,fs,n) задает частоту дискретизации, fs, и количество гармоник (включая основной) для использования в вычислении THD.

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

пример

r = thd(pxx,f,n,'psd') задает количество гармоник (включая основной), используемых в вычислении THD.

пример

r = thd(sxx,f,rbw,'power') задает вход как односторонний спектр степени. rbw - пропускная способность разрешения, по которой интегрируется каждая оценка степени.

r = thd(sxx,f,rbw,n,'power') задает количество гармоник (включая основной), используемых в вычислении THD.

пример

r = thd(___,'aliased') сообщает гармоники фундаментальных, которые сглаживаются в область значений Nyquist. Используйте эту опцию при пониженной дискретизации входного сигнала. Если вы не задаете эту опцию, или если вы задаете ее 'omitaliases', тогда функция игнорирует любые гармоники основной частоты, которые находятся за пределами области значений Найквиста.

пример

[r,harmpow,harmfreq] = thd(___) возвращает степени (в дБ) и частоты гармоник, включая основные.

пример

thd(___) без выходных аргументов строит график спектра сигнала и аннотирует гармоники в текущую фигуру окне. Он использует различные цвета, чтобы нарисовать основной компонент, гармоники, и уровень постоянного тока и шум. THD появляется над графиком. Основные и гармоники маркированы. Термин постоянного тока исключается из измерения и не маркируется.

Примеры

свернуть все

Этот пример явно показы, как вычислить полное гармоническое искажение в дБк для сигнала, состоящего из основной и двух гармоник. Явное вычисление проверяется на соответствие результату, возвращенному thd.

Создайте сигнал, дискретизированный с частотой дискретизации 1 кГц. Сигнал состоит из принципа 100 Гц с амплитудой 2 и двух гармоник с частотой 200 и 300 Гц с амплитудами 0,01 и 0,005. Получите полное гармоническое искажение явным образом и используя thd.

t = 0:0.001:1-0.001;
x = 2*cos(2*pi*100*t)+0.01*cos(2*pi*200*t)+0.005*cos(2*pi*300*t);
tharmdist = 10*log10((0.01^2+0.005^2)/2^2)
tharmdist = -45.0515
r = thd(x)
r = -45.0515

Создайте сигнал, дискретизированный с частотой дискретизации 1 кГц. Сигнал состоит из основы 100 Гц с амплитудой 2 и тремя гармониками на 200, 300 и 400 Гц с амплитудами 0,01, 0,005 и 0,0025.

Установите количество гармоник равным 3. Это включает в себя основные. Соответственно, степень на 100, 200 и 300 Гц используется в вычислении THD.

t = 0:0.001:1-0.001;
x = 2*cos(2*pi*100*t)+0.01*cos(2*pi*200*t)+ ...
    0.005*cos(2*pi*300*t)+0.0025*sin(2*pi*400*t);
r = thd(x,1000,3)
r = -45.0515

Установка количества гармоник, равного 3, игнорирует степень при 400 Гц в вычислении THD.

Создайте сигнал, дискретизированный с частотой дискретизации 1 кГц. Сигнал состоит из основы 100 Гц с амплитудой 2 и тремя гармониками на 200, 300 и 400 Гц с амплитудами 0,01, 0,005 и 0,0025.

Получите оценку PSD периодограммы сигнала и используйте оценку PSD в качестве входов для thd. Установите количество гармоник равным 3. Это включает в себя основные. Соответственно, степень на 100, 200 и 300 Гц используется в вычислении THD.

t = 0:0.001:1-0.001;
fs = 1000;
x = 2*cos(2*pi*100*t)+0.01*cos(2*pi*200*t)+ ...
    0.005*cos(2*pi*300*t)+0.0025*sin(2*pi*400*t);
[pxx,f] = periodogram(x,rectwin(length(x)),length(x),fs);
r = thd(pxx,f,3,'psd')
r = -45.0515

Определите THD путем ввода спектра степени, полученного с помощью окна Хэмминга, и полосы пропускания разрешения окна.

Создайте сигнал, дискретизированный с частотой дискретизации 10 кГц. Сигнал состоит из основы 100 Гц с амплитудой 2 и трех нечетных гармоник на 300, 500 и 700 Гц с амплитудами 0,01, 0,005 и 0,0025. Задайте количество гармоник 7. Определите THD.

fs = 10000;
t = 0:1/fs:1-1/fs;
x = 2*cos(2*pi*100*t)+0.01*cos(2*pi*300*t)+ ...
    0.005*cos(2*pi*500*t)+0.0025*sin(2*pi*700*t);
[sxx,f] = periodogram(x,hamming(length(x)),length(x),fs,'power');
rbw = enbw(hamming(length(x)),fs);
r = thd(sxx,f,rbw,7,'power')
r = -44.8396

Сгенерируйте сигнал, который напоминает выход слабо нелинейного усилителя с тональным сигналом 2,1 кГц в качестве входного сигнала. Дискретизация сигнала производится в течение 1 секунды при частоте 10 кГц. Вычислите и постройте график степени спектра сигнала. Используйте окно Кайзера с β = 38 для расчета.

Fs = 10000;
f = 2100;

t = 0:1/Fs:1; 
x = tanh(sin(2*pi*f*t)+0.1) + 0.001*randn(1,length(t));

periodogram(x,kaiser(length(x),38),[],Fs,'power')

Figure contains an axes. The axes with title Periodogram Power Spectrum Estimate contains an object of type line.

Из шума торчат гармоники на частотах 4,2 к Гц, 6,3 к Гц, 8,4 к Гц, 10,5 к Гц, 12,6 к Гц и 14,7 к Гц. Все частоты, кроме первой, больше частоты Найквиста. Гармоники сглаживаются соответственно на частоте 3,7 кГц, 1,6 кГц, 0,5 кГц, 2,6 кГц и 4,7 кГц.

Вычислите общее гармоническое искажение сигнала. По умолчанию thd рассматривает сглаженные гармоники как часть шума.

thd(x,Fs,7);

Figure contains an axes. The axes with title THD: -29.11 dB contains 13 objects of type line, text. These objects represent Fundamental, Harmonics, DC and Noise (excluded).

Повторите расчет, но теперь обработайте сглаженные гармоники как часть сигнала.

thd(x,Fs,7,'aliased');

Figure contains an axes. The axes with title THD: -22.54 dB contains 18 objects of type line, text. These objects represent Fundamental, Harmonics, DC and Noise (excluded).

Создайте сигнал, дискретизированный с частотой дискретизации 10 кГц. Сигнал состоит из основы 100 Гц с амплитудой 2 и трех нечетных гармоник на 300, 500 и 700 Гц с амплитудами 0,01, 0,005 и 0,0025. Задайте количество гармоник 7. Определите THD, степень в гармониках и соответствующие частоты.

fs = 10000;
t = 0:1/fs:1-1/fs;
x = 2*cos(2*pi*100*t)+0.01*cos(2*pi*300*t)+ ...
    0.005*cos(2*pi*500*t)+0.0025*sin(2*pi*700*t);
[r,harmpow,harmfreq] = thd(x,10000,7);
[harmfreq harmpow]
ans = 7×2

  100.0000    3.0103
  201.0000 -321.0983
  300.0000  -43.0103
  399.0000 -281.9259
  500.0000  -49.0309
  599.0000 -282.1066
  700.0000  -55.0515

Степени в четных гармониках находятся в порядке -300 dB, что соответствует амплитуде 10-15.

Сгенерируйте синусоиду частоты 2,5 кГц, отобранную с частотой дискретизации 50 кГц. Добавьте к сигналу Гауссов белый шум со стандартным отклонением 0.00005. Пропустите результат через слабо нелинейный усилитель. Постройте график THD.

fs = 5e4;
f0 = 2.5e3;
N = 1024;
t = (0:N-1)/fs;

ct = cos(2*pi*f0*t);
cd = ct + 0.00005*randn(size(ct));

amp = [1e-5 5e-6 -1e-3 6e-5 1 25e-3];
sgn = polyval(amp,cd);
thd(sgn,fs);

Figure contains an axes. The axes with title THD: -72.39 dB contains 16 objects of type line, text. These objects represent Fundamental, Harmonics, DC and Noise (excluded).

График показывает спектр, используемый для вычисления отношения и области, рассматриваемой как шум. Уровень постоянного тока исключен из расчетов. Основные и гармоники маркированы.

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

свернуть все

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

Пример: cos(pi/4*(0:159))+cos(pi/2*(0:159))

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

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

Количество гармоник, заданное как положительное целое число.

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

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

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

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

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

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

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

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

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

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

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

свернуть все

Полное гармоническое искажение в dBc, возвращаемое как действительный скаляр.

Степень гармоник, возвращенная как действительный скаляр или вектор, выраженный в дБ. Будь то harmpow является скаляром, или вектор зависит от количества гармоник, заданных в качестве входного параметра n.

Частоты гармоник, возвращенные как неотрицательный скаляр или вектор. Будь то harmfreq является скаляром, или вектор зависит от количества гармоник, заданных в качестве входного параметра n.

Подробнее о

свернуть все

Функции измерения искажений

Функции thd, sfdr, sinad, и snr измерить ответ слабо нелинейной системы, стимулируемой синусоидой.

Когда задан вход во временной области, thd выполняет периодограмму с использованием окна Кайзера с большим ослаблением бокового колеса. Чтобы найти основную частоту, алгоритм ищет периодограмму для наибольшего ненулевого спектрального компонента. Затем вычисляется центральный момент всех смежных интервалов, которые уменьшаются монотонно от максимума. Чтобы быть обнаруживаемым, основной параметр должен быть, по крайней мере, во втором частотном интервале. Более высокие гармоники находятся в целочисленных множителях основной частоты. Если гармоника находится внутри монотонно уменьшающейся области в окрестности другой, то считается, что ее степень принадлежит большей гармонике. Эта большая гармоника может быть или не быть основной.

thd отказывает, если основной является не самым высоким спектральным компонентом в сигнале.

Убедитесь, что частотные составляющие расположены достаточно далеко друг от друга, чтобы соответствовать ширине бокового колеса окна Кайзера. Если это невозможно, можно использовать 'power' флаг и вычисление периодограммы с другим окном.

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

.
Введенный в R2013b