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

пример

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

пример

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

Примеры

свернуть все

Этот пример показывает явным образом, как вычислить общее гармоническое искажение в дБн для сигнала, состоящего из основного принципа и двух гармоник. Явное вычисление проверяется по результату, возвращенному 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')

Гармоники терпят от шума на частотах 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);

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

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

Создайте сигнал, произведенный на уровне 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);

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

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

свернуть все

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

Пример: 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') задает оценку спектра мощности периодограммы двухканальной синусоиды, встроенной в белый Гауссов шум и нормированные частоты, на которых это вычисляется.

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

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

свернуть все

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

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

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

Больше о

свернуть все

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

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

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

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

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

Введенный в R2013b