Main Content

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.

highpass

Señales de filtro de paso alto

Descripción

y = highpass(x,wpass) filtra la señal de entrada utilizando un filtro de paso alto con frecuencia de banda de paso normalizada en unidades 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πPasa-altos Si es una matriz, la función filtra cada columna de forma independiente.x

ejemplo

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

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

ejemplo

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

highpass(___) 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 ruido blanco gaussiano de varianza 1/100. El tono de alta frecuencia tiene el doble de amplitud del tono de baja frecuencia.

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

Highpass-filtrar la señal para eliminar el tono de baja frecuencia. Especifique una frecuencia de banda de paso de 150 Hz. Mostrar las señales originales y filtradas, y también sus espectros.

highpass(x,150,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)

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

hong = highpass(song,450,fs);  % To hear, type sound(hong,fs)  highpass(song,450,fs)

Traza el espectrograma de la melodía.

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

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

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

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') ylim([-130 10])

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:

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

Frecuencia de banda de paso, especificada como escalar 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

Ejemplo: especifica una variable aleatoria muestreada a 1 Hz durante 4 segundos.timetable(seconds(0:4)',randn(5,1))

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 las frecuencias inferiores 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 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 escalar en el intervalo y un'Steepness' [0.5, 1). A medida que aumenta la pendiente, la respuesta del filtro se aproxima a la respuesta de paso alto 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.Pendiente del filtro Highpass

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 paso alto 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

Pendiente del filtro Highpass

El argumento controla el ancho de la región 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

  • El del filtro,frecuencia de la banda de parada fstop, es la frecuencia por debajo de la cual la atenuación es igual o mayor que el valor especificado utilizando .'StopbandAttenuation'

  • El del filtro, , esanchura de transiciónW fpassfstop.

  • 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.Pasa-altos

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

W = (1 – s) × fpass.

  • Cuando es igual a 0,5, el ancho de transición es del 50% de'Steepness' fpass.

  • A medida que se acerca 1, el ancho de transición se vuelve progresivamente más estrecho hasta que alcanza un valor mínimo del 1% de'Steepness' fpass.

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

Introducido en R2018a