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 sumada a la del ruido, . deben tener las mismas dimensiones que .xyyx Utilice esta forma 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 la portadora (dBc) de una señal de entrada sinusoidal de valor real, .x El SNR se determina utilizando un periodograma modificado de la misma longitud que la entrada. El periodo modificado utiliza una ventana Kaiser con 38.β El resultado excluye la potencia de los primeros seis armónicos, incluyendo lo fundamental.

ejemplo

r = snr(x,fs,n) devuelve el SNR en dBc de una señal de entrada sinusoidal real, , muestreado 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 de es 1.fs El valor predeterminado de es 6.n

ejemplo

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

r = snr(pxx,f,n,'psd') especifica el número de armónicos, por excluir al calcular el SNR.n El valor predeterminado de 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 que se integra cada estimación de potencia.rbw

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

ejemplo

r = snr(___,'aliased') elimina los armónicos de los fundamentales que se alias 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á del rango 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 figura actual y etiqueta sus características principales. Utiliza diferentes colores para dibujar el componente fundamental, el valor de CC y los armónicos, y el ruido. El SNR aparece encima de la gráfica. Esta funcionalidad funciona para todas las sintaxis enumeradas anteriormente excepto .snr(x,y)

Ejemplos

contraer todo

Calcular la relación señal-ruido (SNR) de un pulso rectangular de 20 ms muestreado durante 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 

Calcular y comparar 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 un fundamental de frecuencia 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,12.

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));

Compruebe 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

Calcular el SNR de un sinusoides de 2,5 kHz muestreado a 48 kHz. Agregue ruido blanco con varianza 0.0012.

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 

Trazar el espectro y anotar el SNR.

snr(x,Fs);

Obtenga la estimación de densidad espectral de potencia de periodograma (PSD) de un sinusoides de 2,5 kHz muestreado a 48 kHz. Añada 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 el SNR de un sinusoides de 2,5 kHz muestreado a 48 kHz e incrustado 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 

Trazar el espectro de la señal y anotar 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. Calcular y trazar el espectro de potencia de la señal. Utilice una ventana Kaiser con 38 s 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 sobresalen del 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 alias respectivamente en 3,7 kHz, 1,6 kHz, 0,5 kHz, 2,6 kHz y 4,7 kHz.

Calcular 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 un fundamental de frecuencia 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,12.

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));

Calcular la potencia de ruido en la señal. Compruebe 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

Generar un sinusoides de frecuencia de 2,5 kHz muestreado a 50 kHz. Restablezca el generador de números aleatorios. Agregue 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. Trazar 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 DC y todos los armónicos, incluidos los fundamentales, están excluidos de la medición de ruido. Los fundamentales y armónicos están etiquetados.

Argumentos de entrada

contraer todo

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

Tipos de datos: double | single

Estimación del ruido en la señal de entrada, especificada 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 escalar positiva. La frecuencia de muestreo es el número de muestras por unidad de tiempo. Si la unidad de tiempo es segundos, entonces la frecuencia de muestreo tiene unidades de hercios.

Tipos de datos: double | single

Número de armónicos que se excluirán del cálculo SNR, especificado como un escalar entero positivo. El valor predeterminado de 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 la DSP de periodograma de un sinusoides de dos canales ruidoso muestreado a 2 oS y las frecuencias a 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 de PSD unilateral, , especificadas como un 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 del periodograma de un sinusoides de dos canales incrustado en el ruido gaussiano blanco y las frecuencias normalizadas a 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 escalar positivo. El ancho de banda de resolución es el producto de la resolución de frecuencia de la transformación discreta de Fourier y el ancho de banda de ruido equivalente de la ventana.

Tipos de datos: double | single

Argumentos de salida

contraer todo

La relación señal-ruido, expresada en decibelios en relación con el portador (dBc), regresó como un escalar de valor real. El SNR se devuelve en 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, devuelto como un escalar de valor real.

Tipos de datos: double | single

Más acerca de

contraer todo

Funciones de medición de distorsión

Las funciones , , , y medir la respuesta de un sistema débilmente no lineal estimulado por un sinusoides.thdsfdrsinadsnr

Cuando se le da entrada de dominio de tiempo, realiza un periodograma utilizando una ventana Kaiser con una gran atenuación del lóbulo lateral.snr Para encontrar la frecuencia fundamental, el algoritmo busca en el periodograma el componente espectral distinto de cero más grande. A continuación, calcula el momento central de todas las ubicaciones adyacentes que disminuyen monotónicamente lejos del máximo. Para ser detectable, el fundamental debe estar al menos en la segunda bandeja de frecuencia. Los armónicos más altos están en múltiplos enteros de la frecuencia fundamental. Si un armónico se encuentra dentro de la región decreciente monotonicamente en el vecindario de otro, su poder se considera que pertenece al armónico más grande. Este armónico más grande puede o no ser el fundamental.

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

falla si el 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 separados como para acomodar el ancho del lóbulo lateral de la ventana Kaiser. Si esto no es factible, puede utilizar la marca y calcular un periodograma con una ventana diferente.'power'

Introducido en R2013b