Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

snr

Relación señal-ruido

Descripción

ejemplo

r = snr(x,y) Devuelve la relación señal-ruido (SNR) en decibelios de una señal, calculando la relación de su magnitud cuadrada sumó a la del ruido,. deben tener las mismas dimensiones que.xyyx Utilice este formulario cuando la señal de entrada no sea necesariamente sinusoidal y tenga una estimación del ruido.

ejemplo

r = snr(x) Devuelve el SNR en decibelios en relación con el portador (dBc) de una señal de entrada sinusoidal real-valorada,.x El SNR se determina usando un periodograma modificado de la misma longitud que la entrada. El periodograma modificado utiliza una ventana de Kaiser con = 38.β El resultado excluye el poder de los primeros seis armónicos, incluyendo el fundamental.

ejemplo

r = snr(x,fs,n) Devuelve el SNR en dBc de una señal de entrada sinusoidal real,, muestreada a una velocidad.xfs El cálculo excluye la potencia contenida en los armónicos más bajos, incluyendo el fundamental.n El valor predeterminado es 1.fs El valor predeterminado es 6.n

ejemplo

r = snr(pxx,f,'psd') Especifica la entrada como una estimación de densidad espectral de potencia (PSD) unilateral.pxx El argumento es un vector de las frecuencias en las que se producen las estimaciones.fpxx El cálculo del ruido excluye el poder de los primeros seis armónicos, incluyendo el fundamental.

r = snr(pxx,f,n,'psd') especifica el número de armónicos, que se excluirán al calcular el SNR.n El valor predeterminado es 6 e incluye el fundamental.n

ejemplo

r = snr(sxx,f,rbw,'power') Especifica la entrada como un espectro de potencia unilateral, de una señal real.sxx La entrada es el ancho de banda de resolución sobre el cual se integra cada estimación de potencia.rbw

r = snr(sxx,f,rbw,n,'power') especifica el número de armónicos, que se excluirán al calcular el SNR.n El valor predeterminado es 6 e incluye el fundamental.n

ejemplo

r = snr(___,'aliased') elimina los armónicos de los fundamentos que están alisado en la gama Nyquist. Utilice esta opción cuando la señal de entrada esté submuestreada. Si no especifica esta opción, o si la establece en, entonces la función trata como ruido cualquier armónicos de la frecuencia fundamental que se encuentran más allá de la gama Nyquist.'omitaliases'

ejemplo

[r,noisepow] = snr(___) también devuelve la potencia de ruido total de los componentes no armónicos de la señal.

ejemplo

snr(___) sin argumentos de salida traza el espectro de la señal en la ventana de la figura actual y etiqueta sus características principales. Utiliza diferentes colores para dibujar el componente fundamental, el valor de DC y los armónicos, y el ruido. El SNR aparece encima de la trama. Esta funcionalidad funciona para todas las sintaxis enumeradas anteriormente, excepto.snr(x,y)

Ejemplos

contraer todo

Calcule la relación señal-ruido (SNR) de un pulso rectangular de 20 MS muestreado para 2 s a 10 kHz en presencia de ruido Gaussiano. Establezca el generador de números aleatorios en la configuración predeterminada para obtener resultados reproducibles.

rng default Tpulse = 20e-3; Fs = 10e3; t = -1:1/Fs:1; x = rectpuls(t,Tpulse); y = 0.00001*randn(size(x)); s = x + y; pulseSNR = snr(x,s-x)
pulseSNR = 80.0818 

Calcule y compare la relación señal-ruido (SNR), la distorsión armónica total (THD) y la relación señal/ruido y distorsión (SINAD) de una señal.

Cree una señal sinusoidal muestreada a 48 kHz. La señal tiene una frecuencia fundamental de 1 kHz y amplitud de unidad. Además, contiene un armónico de 2 kHz con la mitad de la amplitud y el ruido aditivo con varianza 0,1 ².

fs = 48e3; t = 0:1/fs:1-1/fs; A = 1.0; powfund = A^2/2; a = 0.4; powharm = a^2/2; s = 0.1; varnoise = s^2; x = A*cos(2*pi*1000*t) + ...     a*sin(2*pi*2000*t) + s*randn(size(t));

Verifique que SNR, THD y SINAD estén de acuerdo con sus definiciones.

SNR = snr(x); defSNR = 10*log10(powfund/varnoise); SN = [SNR defSNR]
SN = 1×2

   17.0178   16.9897

 THD = thd(x); defTHD = 10*log10(powharm/powfund); TH = [THD defTHD]
TH = 1×2

   -7.9546   -7.9588

 SINAD = sinad(x); defSINAD = 10*log10(powfund/(powharm+varnoise)); SI = [SINAD defSINAD]
SI = 1×2

    7.4571    7.4473

Calcule la SNR de una sinusoide de 2,5 kHz muestreada a 48 kHz. Añadir ruido blanco con varianza 0,001 ².

Fi = 2500; Fs = 48e3; N = 1024; x = sin(2*pi*Fi/Fs*(1:N)) + 0.001*randn(1,N); SNR = snr(x,Fs)
SNR = 57.7103 

Trace el espectro y anote el SNR.

snr(x,Fs);

Obtenga la estimación de densidad espectral de potencia periodograma (PSD) de una sinusoide de 2,5 kHz muestreada a 48 kHz. Agregue ruido blanco con la desviación estándar 0,00001. Utilice este valor como entrada para determinar el SNR. Establezca el generador de números aleatorios en la configuración predeterminada para obtener resultados reproducibles.

rng default Fi = 2500; Fs = 48e3; N = 1024; x = sin(2*pi*Fi/Fs*(1:N)) + 0.00001*randn(1,N);  w = kaiser(numel(x),38); [Pxx, F] = periodogram(x,w,numel(x),Fs); SNR = snr(Pxx,F,'psd')
SNR = 97.7446 

Utilizando el espectro de potencia, calcule la SNR de una sinusoide de 2,5 kHz muestreada a 48 kHz e incrustada en ruido blanco con una desviación estándar de 0,00001. Restablezca el generador de números aleatorios para obtener resultados reproducibles.

rng default Fi = 2500; Fs = 48e3; N = 1024; x = sin(2*pi*Fi/Fs*(1:N)) + 0.00001*randn(1,N);  w = kaiser(numel(x),38); [Sxx, F] = periodogram(x,w,numel(x),Fs,'power'); rbw = enbw(w,Fs); SNR = snr(Sxx,F,rbw,'power')
SNR = 97.7446 

Trace el espectro de la señal y anote el SNR.

snr(Sxx,F,rbw,'power');

Genere una señal que se asemeje a la salida de un amplificador débilmente no lineal con un tono de 2,1 kHz como entrada. La señal se muestrea durante 1 segundo a 10 kHz. Calcule y trace 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')

Los armónicos se adhieren al ruido a 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 Nyquist. Los armónicos se suavizados respectivamente en 3,7 kHz, 1,6 kHz, 0,5 kHz, 2,6 kHz y 4,7 kHz.

Calcule la relación señal-ruido de la señal. De forma predeterminada, trata los armónicos con alias como parte del ruido.snr

snr(x,Fs,7);

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

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

Cree una señal sinusoidal muestreada a 48 kHz. La señal tiene una frecuencia fundamental de 1 kHz y amplitud de unidad. Además, contiene un armónico de 2 kHz con la mitad de la amplitud y el ruido aditivo con varianza 0,1 ².

fs = 48e3; t = 0:1/fs:1-1/fs;  A = 1.0; powfund = A^2/2; a = 0.4; powharm = a^2/2; s = 0.1; varnoise = s^2;  x = A*cos(2*pi*1000*t) + ...     a*sin(2*pi*2000*t) + s*randn(size(t));

Calcule la potencia de ruido en la señal. Verifique que esté de acuerdo con la definición.

[SNR,npow] = snr(x,fs); compare = [10*log10(powfund)-npow SNR]
compare = 1×2

   17.0281   17.0178

Genere una sinusoide de frecuencia 2,5 kHz muestreada a 50 kHz. Restablece el generador de números aleatorios. Añada el ruido blanco Gaussiano con la desviación estándar 0,00005 a la señal. Pase el resultado a través de un amplificador débilmente no lineal. Trace el SNR.

rng default  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);  snr(sgn,fs);

El componente de CC y todos los armónicos, incluidos los fundamentales, se excluyen de la medición de ruido. Los fundamentos y armónicos están etiquetados.

Argumentos de entrada

contraer todo

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

Tipos de datos: double | single

Estimación del ruido en la señal de entrada, especificado como un vector de fila o columna de valor real. Debe tener las mismas dimensiones que.x

Tipos de datos: double | single

Frecuencia de muestreo, especificada como un escalar positivo. La frecuencia de muestreo es el número de muestras por unidad de tiempo. Si la unidad de tiempo es de segundos, entonces la frecuencia de muestreo tiene unidades de Hertz.

Tipos de datos: double | single

Número de armónicos que se excluirán del cálculo del SNR, especificado como un escalar entero positivo. El valor predeterminado es 6.n

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

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

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

Tipos de datos: double | single

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

Tipos de datos: double | single

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

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

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

Tipos de datos: double | single

Ancho de banda de resolución, especificado como un escalar positivo. El ancho de banda de 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.

Tipos de datos: double | single

Argumentos de salida

contraer todo

Relación señal-ruido, expresada en decibelios en relación con el portador (dBc), devuelta como un escalar real-valorado. El SNR se vuelve en los decibelios (dB) si la señal de entrada no es sinusoidal.

Tipos de datos: double | single

Potencia de ruido total de los componentes no armónicos de la señal de entrada, devuelta como un escalar real-valorado.

Tipos de datos: double | single

Más acerca de

contraer todo

Funciones de medición de distorsión

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

Cuando se da una entrada de dominio de tiempo, realiza un periodograma utilizando una ventana de Kaiser con atenuación de mínimos grande.snr Para encontrar la frecuencia fundamental, el algoritmo busca el periodograma para el componente espectral más grande distinto de cero. A continuación, calcula el momento central de todos los bins adyacentes que disminuyen monótona del máximo. Para ser detectable, lo fundamental debe ser al menos en la segunda bandeja de frecuencias. Los armónicos superiores están en múltiplos enteros de la frecuencia fundamental. Si una armónica se encuentra dentro de la región que disminuye monótona en el vecindario de otro, su poder se considera que pertenece a la armónica más grande. Este armónico más grande puede o no ser el fundamental.

La función estima un nivel de ruido utilizando la potencia mediana en las regiones que sólo contienen ruido. El componente de CC se excluye del cálculo. El ruido en cada punto es el nivel estimado o la coordenada del punto, lo que sea menor. A continuación, el ruido se resta de los valores de la señal y de los armónicos.

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

Asegúrese de que los componentes de frecuencia estén lo suficientemente alejados para acomodar el ancho de mínimos de la ventana de Kaiser. Si esto no es factible, puede utilizar la bandera y calcular un periodograma con una ventana diferente.'power'

Introducido en R2013b