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

Señales bandstop-filter

Descripción

y = bandstop(x,wpass) filtra la señal de entrada utilizando un filtro de banda con un rango de frecuencia de banda de parada especificado por el vector de dos elementos y expresado en unidades normalizadas de rad/muestra. utiliza un filtro de orden mínimo con una atenuación de banda de parada 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 hercios.xfs El vector de dos elementos especifica el rango de frecuencia de la banda de parada del filtro en hercios.fpass

y = bandstop(xt,fpass) bandstop-filtra los datos en el horario utilizando un filtro con un rango de frecuencia de banda de parada especificado en hercios 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 parada, la pendiente 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 del tono intermedio. La señal está incrustada en el ruido blanco gaussiano de 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-filtrar la señal para eliminar el tono de frecuencia media. Especifique frecuencias de banda de paso de 100 Hz y 200 Hz. Mostrar las señales originales y filtradas, y también sus espectros.

bandstop(x,[100 200],fs)

Implementar un sintetizador de música digital básico 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-filtra la señal para separar el registro central de los otros dos. Especifique las frecuencias de banda de paso de 230 Hz y 450 Hz. Trazar 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)

Traza el espectrograma de la canción sin el registro central.

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

Filtre el ruido blanco muestreado a 1 kHz utilizando un filtro de parada de banda de respuesta de impulso infinito con una anchura de banda de parada de 100 Hz. Utilice diferentes valores de pendiente. 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')

Calcular y trazar 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 pendiente 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)

Calcular y trazar 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 un sinusoides ruidososin(2*pi*(0:127)/16)+randn(1,128)/100

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

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

Rango de frecuencia de banda de parada normalizado, especificado como un vector de dos elementos con elementos en el intervalo (0, 1).

Rango de frecuencia de banda de parada, especificado como un vector de dos elementos con elementos en el intervalo (0, fs/2).

Frecuencia de muestreo, especificada como un escalar real positivo.

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

Si falta un horario o se duplican los puntos de tiempo, puede corregirlo con las sugerencias de .Clean Timetable with Missing, Duplicate, or Nonuniform Times (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 opcionales separados por comas de argumentos. es el nombre del argumento y es el valor correspondiente. deben aparecer entre comillas.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 hasta .'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 de respuesta de impulso finito (FIR) de orden mínimo, fase lineal.'fir' Para compensar el retardo, la función se anexa a la señal de entrada /2 ceros, donde está el orden del filtro.NN A continuación, la función filtra la señal y elimina las primeras muestras /2 de la salida.N

    En este caso, la señal de entrada debe ser al menos el doble de larga 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 por lo menos tres veces más larga que el filtro que cumple con las especificaciones, la función diseña un filtro con un orden más pequeño 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' Específicamente, la función sigue estos pasos:

    • Calcular el pedido mínimo que un filtro FIR debe tener para cumplir con las especificaciones. Si la señal es al menos el doble de tiempo que el orden de filtro requerido, diseñe y utilice 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, trunque la orden a un tercio de la longitud de la señal y diseñe un filtro IIR de esa orden. La reducción del orden se produce a expensas de la pendiente de la banda de transición.

    • Filtrar la señal y compensar el retraso.

La pendiente de la banda de transición, especificada como el par separado por comas que consta de un vector escalar o de dos elementos con elementos en el intervalo'Steepness' [0.5, 1). A medida que aumenta la pendiente, la respuesta del filtro se acerca a la respuesta de bandstop ideal, pero la longitud del filtro resultante y el costo computacional de la operación de filtrado también aumentan. Consulte para obtener más información.Bandstop Filter Steepness

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

Argumentos de salida

contraer todo

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

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

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

  • Se utiliza 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

Bandstop Filter Steepness

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

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

  • elFrecuencia Nyquist fNyquist, es el componente de frecuencia más alta de una señal que se puede muestrear a una velocidad determinada sin alias. fNyquist es 1 (a rad/muestra) 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,frecuencias de la banda de parada fstoplower Y fstopupper, son las frecuencias entre las que la atenuación es igual o mayor que el valor especificado utilizando .'StopbandAttenuation'

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

  • El del filtro,menor anchura de transiciónWlowerEs fstoplowerfpasslower.

  • El del filtro,anchura de transición superiorWupperEs fpassupperfstopupper.

  • La mayoría de los filtros no ideales 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 denomina .onda de banda de paso 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 vector de dos elementos,'Steepness' [slower,supper], o un escalar. Cuando se especifica como vector, la función:'Steepness'

  • Calcula el ancho de transición inferior como

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

    • Cuando el primer elemento de es igual a 0,5, el ancho de transición es el 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 de es igual a 0,5, el ancho de transición es el 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 escalar, la función diseña un filtro con anchuras de transición inferiores y superiores iguales.'Steepness' El valor predeterminado de es 0.85.'Steepness'

Consulte también

Apps

Funciones

Introducido en R2018a