exponenta event banner

thd

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

Описание

пример

r = thd(x) возвращает полное гармоническое искажение (THD) в dBc действительного синусоидального сигнала 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') сообщает о гармониках фундаментальных, наложенных в диапазон Найквиста. Используйте эту опцию, когда входной сигнал недостаточно дискретизирован. Если этот параметр не указан, или если для него задано значение 'omitaliases', то функция игнорирует любые гармоники фундаментальной частоты, которые лежат за пределами диапазона Найквиста.

пример

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

пример

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

Примеры

свернуть все

Этот пример явно показывает, как вычислить полное гармоническое искажение в dBc для сигнала, состоящего из основной и двух гармоник. Явное вычисление проверяется по результату, возвращенному 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. Это включает в себя фундаментальное. Соответственно, при расчете THD используется мощность на частоте 100, 200 и 300 Гц.

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. Это включает в себя фундаментальное. Соответственно, при расчете THD используется мощность на частоте 100, 200 и 300 Гц.

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 дБ, что соответствует амплитуде 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

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