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.

bandstop

Bandstop-señales de filtro

Descripción

y = bandstop(x,wpass) filtra la señal de entrada utilizando un filtro de banda con un rango de frecuencia de bandas de parada especificado por el vector de dos elementos y expresado en unidades normalizadas 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πbandstop Si es una matriz, la función filtra cada columna de forma independiente.x

ejemplo

y = bandstop(x,fpass,fs) Especifica que se muestrea a una velocidad de Hertz.xfs El vector de dos elementos especifica el rango de frecuencia de banda de stopband del filtro en hercios.fpass

y = bandstop(xt,fpass) Bandstop-filtra los datos en el horario utilizando un filtro con un rango de frecuencias de banda de stopband especificado en Hertz por el vector de dos elementos.xtfpass La función filtra de forma independiente todas las variables del calendario y todas las columnas dentro de cada variable.

ejemplo

y = bandstop(___,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] = bandstop(___) también devuelve el objeto utilizado para filtrar la entrada.digitalFilterd

bandstop(___) 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 tres tonos, uno a 50 Hz, otro a 150 Hz, y un tercero a 250 Hz. Los tonos de alta frecuencia y baja frecuencia tienen el doble de amplitud que el tono intermedio. La señal está incrustada en el ruido blanco Gaussiano de la varianza 1/100.

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

Bandstop-filtre la señal para eliminar el tono de frecuencia media. Especifique frecuencias de banda de paso de 100 Hz y 200 Hz. Visualice las señales originales y filtradas, y también sus espectros.

bandstop(x,[100 200],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)

Bandstop-filtre la señal para separar el registro central de los otros dos. Especifique frecuencias de banda de paso de 230 Hz y 450 Hz. Trace las señales originales y filtradas en los dominios de tiempo y frecuencia.

bong = bandstop(song,[230 450],fs);  % To hear, type sound(bong,fs)  bandstop(song,[230 450],fs)

Trace el espectrograma de la canción sin el registro intermedio.

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

Filtre el ruido blanco muestreado a 1 kHz utilizando un filtro de banda de respuesta de impulso infinito con un ancho de correa de parada de 100 Hz. Utilice valores de pendiente diferentes. Trazar los espectros de las señales filtradas.

fs = 1000; x = randn(20000,1);  [y1,d1] = bandstop(x,[ 50 150],fs,'ImpulseResponse','iir','Steepness',0.5); [y2,d2] = bandstop(x,[200 300],fs,'ImpulseResponse','iir','Steepness',0.8); [y3,d3] = bandstop(x,[350 450],fs,'ImpulseResponse','iir','Steepness',0.95);  pspectrum([y1 y2 y3],fs) legend('Steepness = 0.5','Steepness = 0.8','Steepness = 0.95', ...     'Location','north')

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', ...     'Location','north') ylim([-120 20])

Haga que los filtros sean asimétricos especificando diferentes valores de inclinación en las frecuencias de banda de paso inferior y superior.

[y1,d1] = bandstop(x,[ 50 150],fs,'ImpulseResponse','iir','Steepness',[0.5 0.8]); [y2,d2] = bandstop(x,[200 300],fs,'ImpulseResponse','iir','Steepness',[0.5 0.8]); [y3,d3] = bandstop(x,[350 450],fs,'ImpulseResponse','iir','Steepness',[0.5 0.8]);  pspectrum([y1 y2 y3],fs)

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]))) ylim([-120 20])

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:

Intervalo de frecuencias de la banda de stopband normalizado, especificado como un vector de dos elementos con componentes en el intervalo (0, 1).

Rango de frecuencias de stopband, especificado como un vector de dos elementos con 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 en 30 dB las frecuencias de.'ImpulseResponse','iir','StopbandAttenuation',30fpass(1)fpass(2)

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 vector escalar o de dos elementos con los componentes en el intervalo'Steepness' [0.5, 1). A medida que aumenta la inclinación, la respuesta del filtro se aproxima a la respuesta de parada de banda 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.La inclinación del filtro de Bandstop

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 Bandstop 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

La inclinación del filtro de Bandstop

El argumento controla el ancho de las regiones 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

  • La parte inferior y superior del filtro,stopband frequencies fstoplower Y fstopupper, son las frecuencias entre las cuales la atenuación es igual o mayor que el valor especificado usando.'StopbandAttenuation'

    El centro de la región de stopband es fcenter = (fstoplower + fstopupper)/2.

  • El filtro,lower transition widthWlowerEs fstoplowerfpasslower.

  • El filtro,upper transition widthWupperEs fpassupperfstopupper.

  • 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.bandstop

Para controlar el ancho de las bandas de transición, puede especificar como un vector de dos elementos,'Steepness' [slower,supper], o un escalar. Cuando se especifica como un vector, la función:'Steepness'

  • Calcula el ancho de transición inferior como

    Wlower = (1 – slower) × (fcenterfpasslower).

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

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

  • Calcula el ancho de transición superior como

    Wupper = (1 – supper) × (fpassupperfcenter).

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

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

Cuando se especifica como un escalar, la función diseña un filtro con anchos de transición inferiores y superiores iguales.'Steepness' El valor predeterminado es 0,85.'Steepness'

Consulte también

Aplicaciones

Funciones

Introducido en R2018a