Main Content

La traducción de esta página aún no se ha actualizado a la versión más reciente. Haga clic aquí para ver la última versión en inglés.

thd

Distorsión armónica total

Descripción

ejemplo

r = thd(x) devuelve la distorsión armónica total (THD) en dBc de la señal sinusoidal de valor real x. La distorsión armónica total se determina a partir de la frecuencia fundamental y las cinco primeras armónicas utilizando un periodograma modificado de la misma longitud que la señal de entrada. El periodograma modificado utiliza una ventana de Kaiser con β = 38.

ejemplo

r = thd(x,fs,n) especifica la tasa de muestreo fs y el número de armónicas (incluyendo la fundamental) que se utilizarán en el cálculo de la THD.

r = thd(pxx,f,"psd") especifica la entrada pxx como una estimación de la densidad espectral de potencia (PSD) unilateral. f es un vector de frecuencias que se corresponde con las estimaciones de PSD en pxx.

ejemplo

r = thd(pxx,f,n,"psd") especifica el número de armónicas (incluyendo la fundamental) que se utilizarán en el cálculo de la THD.

ejemplo

r = thd(sxx,f,rbw,"power") especifica la entrada como un espectro de potencia unilateral. rbw es el ancho de banda de resolución sobre el que se integra cada estimación de potencia.

r = thd(sxx,f,rbw,n,"power") especifica el número de armónicas (incluyendo la fundamental) que se utilizarán en el cálculo de la THD.

ejemplo

r = thd(___,"aliased") informa de las armónicas de la fundamental cuyo alias está en el intervalo de Nyquist. Utilice esta opción cuando la señal de entrada esté submuestreada. Si no se especifica esta opción, o si se establece en "omitaliases", la función ignora cualquier armónica de la frecuencia fundamental que se encuentre más allá del intervalo de Nyquist.

ejemplo

[r,harmpow,harmfreq] = thd(___) devuelve las potencias (en dB) y las frecuencias de las armónicas, incluida la fundamental.

ejemplo

thd(___) sin argumentos de salida representa el espectro de la señal y anota las armónicas en la ventana de figura actual. Utiliza diferentes colores para trazar la componente fundamental, las armónicas y el nivel de DC y el ruido. La THD aparece encima de la gráfica. La fundamental y las armónicas están etiquetadas. El término de DC se excluye de la medición y no se etiqueta.

Ejemplos

contraer todo

Este ejemplo muestra explícitamente cómo calcular la distorsión armónica total en dBc de una señal compuesta por la fundamental y dos armónicas. El cálculo explícito se comprueba con el resultado devuelto por thd.

Cree una señal muestreada a 1 kHz. La señal está formada por una fundamental de 100 Hz con amplitud 2 y dos armónicas a 200 y 300 Hz con amplitudes 0,01 y 0,005. Obtenga la distorsión armónica total de forma explícita y utilizando 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

Cree una señal muestreada a 1 kHz. La señal está formada por una fundamental de 100 Hz con amplitud 2 y tres armónicas a 200, 300 y 400 Hz con amplitudes 0,01, 0,005 y 0,0025.

Establezca el número de armónicas como 3. Este incluye la fundamental. En consecuencia, la potencia a 100, 200 y 300 Hz se utiliza en el cálculo de la 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

Al especificar el número de armónicas como 3 se ignora la potencia a 400 Hz en el cálculo de la THD.

Cree una señal muestreada a 1 kHz. La señal está formada por una fundamental de 100 Hz con amplitud 2 y tres armónicas a 200, 300 y 400 Hz con amplitudes 0,01, 0,005 y 0,0025.

Obtenga la estimación de PSD del periodograma de la señal y utilícela como entrada a thd. Establezca el número de armónicas como 3. Este incluye la fundamental. En consecuencia, la potencia a 100, 200 y 300 Hz se utiliza en el cálculo de la 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

Determine la THD introduciendo el espectro de potencia que se obtiene con una ventana de Hamming y el ancho de banda de resolución de la ventana.

Cree una señal muestreada a 10 kHz. La señal está formada por una fundamental de 100 Hz con amplitud 2 y tres armónicas impares a 300, 500 y 700 Hz con amplitudes de 0,01, 0,005 y 0,0025. Especifique el número de armónicas en 7. Determine la 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

Genere una señal que se asemeje a la salida de un amplificador débilmente no lineal con un tono de 2,1 kHz a modo de entrada. La señal se muestrea durante 1 segundo a 10 kHz. Calcule y represente el espectro de potencia de la señal. Utilice una ventana de Kaiser con β = 38 para el cálculo.

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 object. The axes object with title Periodogram Power Spectrum Estimate, xlabel Frequency (kHz), ylabel Power (dB) contains an object of type line.

Las armónicas sobresalen del ruido en frecuencias de 4,2 kHz, 6,3 kHz, 8,4 kHz, 10,5 kHz, 12,6 kHz y 14,7 kHz. Todas las frecuencias, excepto la primera, son mayores que la frecuencia de Nyquist. Las armónicas reciben alias respectivamente en 3,7 kHz, 1,6 kHz, 0,5 kHz, 2,6 kHz y 4,7 kHz.

Calcule la distorsión armónica total de la señal. Por defecto, thd trata las armónicas con alias como parte del ruido.

thd(x,Fs,7);

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

Repita el cálculo, pero ahora trate las armónicas con alias como parte de la señal.

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

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

Cree una señal muestreada a 10 kHz. La señal está formada por una fundamental de 100 Hz con amplitud 2 y tres armónicas impares a 300, 500 y 700 Hz con amplitudes de 0,01, 0,005 y 0,0025. Especifique el número de armónicas en 7. Determine la THD, la potencia en las armónicas y las frecuencias correspondientes.

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

Las potencias en las armónicas pares son del orden de -300 dB, lo que corresponde a una amplitud de 10-15.

Genere una sinusoide de frecuencia 2,5 kHz muestreada a 50 kHz. Añada ruido blanco gaussiano con desviación estándar 0,00005 a la señal. Pase el resultado por un amplificador débilmente no lineal. Represente la 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 object. The axes object with title THD: -72.39 dB, xlabel Frequency (kHz), ylabel Power (dB) contains 16 objects of type line, text. These objects represent Fundamental, Harmonics, DC and Noise (excluded).

La gráfica muestra el espectro utilizado para calcular la relación y la región tratada como ruido. El nivel de DC se excluye del cálculo. La fundamental y las armónicas están etiquetadas.

Argumentos de entrada

contraer todo

Señal de entrada sinusoidal de valor real, especificada como un vector fila o un vector columna.

Ejemplo: cos(pi/4*(0:159))+cos(pi/2*(0:159))

Tipos de datos: single | double

Tasa de muestreo, especificada como un escalar positivo. La tasa de muestreo es el número de muestras por unidad de tiempo. Si la unidad de tiempo es el segundo, la tasa de muestreo tendrá unidades de Hz.

Número de armónicas, especificado como entero positivo.

Estimación de PSD unilateral, especificada como un vector columna no negativo de valor real.

La densidad espectral de potencia debe expresarse en unidades lineales, no en decibelios. Utilice db2pow para convertir los valores de decibelios en valores de potencia.

Ejemplo: [pxx,f] = periodogram(cos(pi./[4;2]*(0:159))'+randn(160,2)) especifica la estimación del periodograma PSD de una sinusoide ruidosa de dos canales muestreada a 2π Hz y las frecuencias a las que se calcula.

Tipos de datos: single | double

Frecuencias cíclicas que se corresponden con la estimación de PSD unilateral, pxx, especificadas como vector fila o vector columna. El primer elemento de f debe ser 0.

Tipos de datos: double | single

Espectro de potencia, especificado como un vector fila o vector columna de valor real no negativo.

El espectro de potencia debe expresarse en unidades lineales, no en decibelios. Utilice db2pow para convertir los valores de decibelios en valores de potencia.

Ejemplo: [sxx,w] = periodogram(cos(pi./[4;2]*(0:159))'+randn(160,2),'power') especifica la estimación del espectro de potencia del periodograma de una sinusoide de dos canales integrada en ruido blanco gaussiano y las frecuencias normalizadas a las que se calcula.

Ancho de banda de la resolución, especificado como un escalar positivo. El ancho de banda de la resolución es el producto de la resolución de frecuencia de la transformada discreta de Fourier y el ancho de banda de ruido equivalente de la ventana.

Argumentos de salida

contraer todo

Distorsión armónica total en dBc, devuelta como un escalar de valor real.

Potencia de las armónicas, devuelta como un escalar o vector de valor real expresado en dB. Que harmpow sea un escalar o un vector depende del número de armónicas que se especifiquen como argumento de entrada n.

Frecuencias de las armónicas, devueltas como escalar o vector no negativo. Que harmfreq sea un escalar o un vector depende del número de armónicas que se especifiquen como argumento de entrada n.

Más acerca de

contraer todo

Funciones de medición de la distorsión

Las funciones thd, sfdr, sinad y snr miden la respuesta de un sistema débilmente no lineal estimulado por una sinusoide.

Cuando se le da una entrada en el dominio del tiempo, thd realiza un periodograma utilizando una ventana de Kaiser con gran atenuación de lóbulos laterales. Para encontrar la frecuencia fundamental, el algoritmo busca en el periodograma el componente espectral distinto de cero más elevado. A continuación, calcula el momento central de todos los bins adyacentes que se alejan monótonamente del máximo. Para que sea detectable, la fundamental debe estar, al menos, en el segundo bin de frecuencia. Las armónicas más altas son múltiplos enteros de la frecuencia fundamental. Si una armónica se encuentra dentro de la región monotónicamente decreciente en la vecindad de otra, se considera que su potencia pertenece a la armónica mayor. Dicha armónica mayor puede ser, o no, la fundamental.

thd falla si la fundamental no es el componente espectral más alto de la señal.

Asegúrese de que los componentes de frecuencia están lo suficientemente separados para tener en cuenta la anchura de los lóbulos laterales de la ventana de Kaiser. Si esto no es factible, puede utilizar la bandera "power" y calcular un periodograma con una ventana diferente.

Capacidades ampliadas

Historial de versiones

Introducido en R2013b

expandir todo

Consulte también

| | |