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.

lowpass

Las señales de filtro lowpass

Descripción

y = lowpass(x,wpass) filtra la señal de entrada utilizando un filtro de paso bajo con frecuencia de banda de paso normalizada en unidades de Rad/sample. utiliza un filtro de orden mínimo con una atenuación de banda de stopband de 60 dB y compensa el retardo introducido por el filtro.xwpassπPasabajos Si es una matriz, la función filtra cada columna de forma independiente.x

ejemplo

y = lowpass(x,fpass,fs) Especifica que se muestrea a una velocidad de Hertz. es la frecuencia de banda de paso del filtro en hercios.xfsfpass

y = lowpass(xt,fpass) lowpass-filtra los datos en el horario utilizando un filtro con una frecuencia de banda de paso de Hertz.xtfpass La función filtra de forma independiente todas las variables del calendario y todas las columnas dentro de cada variable.

ejemplo

y = lowpass(___,Name,Value) especifica opciones adicionales para cualquiera de las sintaxis anteriores mediante argumentos de par nombre-valor. Puede cambiar la atenuación de la banda de suspensión, la inclinación de la banda de transición y el tipo de respuesta de impulso del filtro.

ejemplo

[y,d] = lowpass(___) también devuelve el objeto utilizado para filtrar la entrada.digitalFilterd

lowpass(___) sin argumentos de salida traza la señal de entrada y superpone la señal filtrada.

Ejemplos

contraer todo

Cree una señal muestreada a 1 kHz durante 1 segundo. La señal contiene dos tonos, uno a 50 Hz y el otro a 250 Hz, incrustado en el ruido blanco Gaussiano de la varianza 1/100. El tono de alta frecuencia tiene el doble de amplitud que el tono de baja frecuencia.

fs = 1e3; t = 0:1/fs:1;  x = [1 2]*sin(2*pi*[50 250]'.*t) + randn(size(t))/10;

Lowpass-filtre la señal para eliminar el tono de alta frecuencia. Especifique una frecuencia de banda de paso de 150 Hz. Visualice las señales originales y filtradas, y también sus espectros.

lowpass(x,150,fs)

Implementar un sintetizador de música digital básica y utilizarlo para reproducir una canción tradicional. Especifique una frecuencia de muestreo de 2 kHz. Traza el espectrograma de la canción.

fs = 2e3; t = 0:1/fs:0.3-1/fs;  l = [0 130.81 146.83 164.81 174.61 196.00 220 246.94]; m = [0 261.63 293.66 329.63 349.23 392.00 440 493.88]; h = [0 523.25 587.33 659.25 698.46 783.99 880 987.77]; note = @(f,g) [1 1 1]*sin(2*pi*[l(g) m(g) h(f)]'.*t);  mel = [3 2 1 2 3 3 3 0 2 2 2 0 3 5 5 0 3 2 1 2 3 3 3 3 2 2 3 2 1]+1; acc = [3 0 5 0 3 0 3 3 2 0 2 2 3 0 5 5 3 0 5 0 3 3 3 0 2 2 3 0 1]+1;  song = []; for kj = 1:length(mel)     song = [song note(mel(kj),acc(kj)) zeros(1,0.01*fs)]; end song = song/(max(abs(song))+0.1);  % To hear, type sound(song,fs)  pspectrum(song,fs,'spectrogram','TimeResolution',0.31, ...     'OverlapPercent',0,'MinThreshold',-60)

Lowpass-filtra la señal para separar la melodía del acompañamiento. Especifique una frecuencia de banda de paso de 450 Hz. Trace las señales originales y filtradas en los dominios de tiempo y frecuencia.

long = lowpass(song,450,fs);  % To hear, type sound(long,fs)  lowpass(song,450,fs)

Trazar el espectrograma del acompañamiento.

figure pspectrum(long,fs,'spectrogram','TimeResolution',0.31, ...     'OverlapPercent',0,'MinThreshold',-60)

Filtre el ruido blanco muestreado a 1 kHz utilizando un filtro de paso bajo de respuesta de impulso infinito con una frecuencia de banda de paso de 200 Hz. Utilice valores de pendiente diferentes. Trazar los espectros de las señales filtradas.

fs = 1000; x = randn(20000,1);  [y1,d1] = lowpass(x,200,fs,'ImpulseResponse','iir','Steepness',0.5); [y2,d2] = lowpass(x,200,fs,'ImpulseResponse','iir','Steepness',0.8); [y3,d3] = lowpass(x,200,fs,'ImpulseResponse','iir','Steepness',0.95);  pspectrum([y1 y2 y3],fs) legend('Steepness = 0.5','Steepness = 0.8','Steepness = 0.95')

Calcule y trace las respuestas de frecuencia de los filtros.

[h1,f] = freqz(d1,1024,fs); [h2,~] = freqz(d2,1024,fs); [h3,~] = freqz(d3,1024,fs);  plot(f,mag2db(abs([h1 h2 h3]))) legend('Steepness = 0.5','Steepness = 0.8','Steepness = 0.95')

Argumentos de entrada

contraer todo

Señal de entrada, especificada como vector o matriz.

Ejemplo: especifica una sinusoide ruidosasin(2*pi*(0:127)/16)+randn(1,128)/100

Ejemplo: especifica una sinusoide de dos canales.[2 1].*sin(2*pi*(0:127)'./[16 64])

Tipos de datos: single | double
Soporte de números complejos:

Frecuencia de banda de paso normalizada, especificada como un escalar en el intervalo (0, 1).

Frecuencia de banda de paso, especificada como un escalar en el intervalo (0, fs/2).

Frecuencia de muestreo, especificada como un escalar real positivo.

Calendario de entrada. debe contener tiempos de fila crecientes, finitos e igualmente espaciados del tipo en segundos.xtduration

Si un horario ha desaparecido o ha duplicado los puntos de tiempo, puede arreglarlo usando las sugerencias en.Limpie el horario con los tiempos perdidos, duplicados o no uniformes (MATLAB)

Ejemplo: contiene una señal aleatoria de un solo canal y una señal aleatoria de dos canales, muestreada a 1 Hz durante 4 segundos.timetable(seconds(0:4)',randn(5,1),randn(5,2))

Argumentos de par nombre-valor

Especifique pares de argumentos separados por comas opcionales. es el nombre del argumento y es el valor correspondiente. deben aparecer dentro de las cotizaciones.Name,ValueNameValueName Puede especificar varios argumentos de par de nombre y valor en cualquier orden como.Name1,Value1,...,NameN,ValueN

Ejemplo: filtra la entrada utilizando un filtro IIR de orden mínimo que atenúa frecuencias superiores a 30 dB.'ImpulseResponse','iir','StopbandAttenuation',30fpass

Tipo de respuesta de impulso del filtro, especificado como el par separado por comas que consta de y, o.'ImpulseResponse''fir''iir''auto'

  • — La función diseña un filtro FIR (respuesta de impulsos finito) de orden mínima, fase lineal.'fir' Para compensar el retardo, la función anexa a la señal de entrada/2 ceros, donde está el orden de filtro.NN A continuación, la función filtra la señal y elimina las primeras/2 muestras de la salida.N

    En este caso, la señal de entrada debe ser al menos el doble de largo que el filtro que cumple con las especificaciones.

  • — La función diseña un filtro de respuesta de impulso infinito (IIR) de orden mínimo y utiliza la función para realizar el filtrado de fase cero y compensar el retardo del filtro.'iir'filtfilt

    Si la señal no es al menos tres veces más larga que el filtro que cumple con las especificaciones, la función diseña un filtro con un orden menor y, por lo tanto, una pendiente más pequeña.

  • — La función diseña un filtro FIR de orden mínimo si la señal de entrada es lo suficientemente larga, y un filtro IIR de orden mínimo en caso contrario.'auto' En concreto, la función sigue estos pasos:

    • Calcule el orden mínimo que un filtro FIR debe tener para cumplir con las especificaciones. Si la señal es al menos el doble de largo que el orden de filtro requerido, diseñe y use ese filtro.

    • Si la señal no es lo suficientemente larga, calcule el orden mínimo que un filtro IIR debe tener para cumplir con las especificaciones. Si la señal es al menos tres veces más larga que el orden de filtro requerido, diseñe y use ese filtro.

    • Si la señal no es lo suficientemente larga, truncar la orden a un tercio de la longitud de la señal y diseñar un filtro IIR de esa orden. La reducción en orden viene a expensas de la inclinación de la banda de transición.

    • Filtre la señal y compense el retardo.

Inclinación de la banda de transición, especificada como el par separado por comas que consta de y un escalar en el intervalo'Steepness' [0.5, 1). A medida que aumenta la inclinación, la respuesta del filtro se aproxima a la respuesta de paso bajo ideal, pero también aumenta la longitud del filtro resultante y el costo computacional de la operación de filtrado. Consulte para obtener más información.Detalle de filtro de paso bajo

Atenuación de la stopband del filtro, especificada como el par separado por comas que consiste en y un escalar positivo en dB.'StopbandAttenuation'

Argumentos de salida

contraer todo

Señal filtrada, devuelta como vector, una matriz o un horario con las mismas dimensiones que la entrada.

Filtro de paso bajo utilizado en la operación de filtrado, devuelto como un objeto.digitalFilter

  • Se usa para filtrar una señal usando.filter(d,x)xd

  • Utilízalo para visualizar la respuesta del filtro.fvtool(d)

  • Se utiliza para editar o generar un filtro digital basado en las especificaciones de respuesta de frecuencia.designfilt

Más acerca de

contraer todo

Detalle de filtro de paso bajo

El argumento controla el ancho de la región de transición de un filtro.'Steepness' Cuanto menor es la pendiente, más amplia es la región de transición. Cuanto mayor sea la inclinación, más estrecha será la región de transición.

Para interpretar la pendiente del filtro, tenga en cuenta las siguientes definiciones:

  • elNyquist frequency fNyquist, es el componente de mayor frecuencia de una señal que se puede muestrear a una velocidad dada sin aliasing. fNyquist es 1 (× RAD/Sample) cuando la señal de entrada no tiene información de tiempo, y/2 hercios cuando la señal de entrada es un horario o cuando se especifica una frecuencia de muestreo.πfs

  • El filtro,stopband frequency fstop, es la frecuencia más allá de la cual la atenuación es igual o mayor que el valor especificado usando.'StopbandAttenuation'

  • El filtro,, estransition widthW fstopfpass.

  • La mayoría de los filtros de Nonideal también atenúan la señal de entrada a través de la banda de paso. El valor máximo de esta atenuación dependiente de la frecuencia se llama el.passband ripple Cada filtro utilizado por tiene una ondulación de banda de paso de 0,1 dB.Pasabajos

Cuando se especifica un valor, para, la función calcula el ancho de transición comos'Steepness'

W = (1 – s) × (fNyquistfpass).

  • Cuando es igual a 0,5, el ancho de transición es 50% de'Steepness' (fNyquistfpass).

  • Como enfoques 1, el ancho de transición se vuelve progresivamente más estrecho hasta que alcanza un valor mínimo de 1% de'Steepness' (fNyquistfpass).

  • El valor predeterminado es 0,85, que corresponde a un ancho de transición que es el 15% de'Steepness' (fNyquistfpass).

Consulte también

Aplicaciones

Funciones

Introducido en R2018a