Filtro de paso bajo en MATLAB

Ammar Ali 15 febrero 2024
Filtro de paso bajo en MATLAB

Este tutorial discutirá el uso de la función lowpass() para diseñar y filtrar una señal en Matlab.

Utilice la función lowpass() para diseñar y filtrar una señal en MATLAB

Un filtro de paso bajo se utiliza para filtrar señales de baja frecuencia de una señal que contiene múltiples frecuencias.

Por ejemplo, si tenemos una señal que contiene dos señales de frecuencia diferentes y queremos filtrar la señal de baja frecuencia. Podemos hacer esto usando un filtro de paso bajo que solo permitirá los componentes de baja frecuencia de la señal de entrada y bloqueará la señal de alta frecuencia.

En MATLAB, podemos usar la función incorporada lowpass() para filtrar una señal.

Tenemos que pasar la señal de entrada, la frecuencia de banda de paso y la frecuencia de muestreo de la señal de entrada en la función lowpass(). La señal de entrada debe ser un vector o matriz de tipo simple o doble.

La frecuencia de la banda de paso debe estar entre 0 y la mitad de la frecuencia de muestreo. La frecuencia de muestreo debe ser un escalar real positivo.

Por ejemplo, creemos una señal, agreguemos algo de ruido aleatorio y filtremos usando la función lowpass(). Vea el código a continuación.

clc
clear
freqS = 1e3;
time = 0:1/freqS:1;
signal = [1 2]*sin(2*pi*[50 250]'.*time) + randn(size(time))/10;
lowpass(signal,150,freqS)

Producción:

filtro de paso bajo de tonos

La señal azul es la señal de entrada en la salida y la otra es la señal filtrada.

Como puede ver en la figura anterior, la señal de baja frecuencia se filtra. También puede consultar el gráfico del espectro de potencia para comprobar la frecuencia de banda de paso a la que se filtra la señal.

Puede utilizar el código anterior para filtrar un ruido o tono de alta frecuencia de una señal musical. También puede guardar la salida de la función lowpass() en una variable, pero debe trazarla por separado.

Si no especificamos ninguna salida, la función lowpass() trazará la señal original y filtrada en el mismo gráfico junto con su gráfico de dominio de frecuencia. Podemos establecer otras propiedades de la función lowpass() como la atenuación de la banda de parada, la inclinación del filtro de paso bajo y el tipo de respuesta de impulso del filtro.

También podemos filtrar datos de un horario usando la función lowpass(). La función lowpass() filtra todas las variables en el horario y todas las columnas dentro de cada variable.

Por defecto, la función lowpass() utilizará cualquier respuesta de impulso. Aún así, podemos cambiarlo a respuesta de impulso finita pasando la cadena fir o respuesta de impulso infinita pasando la cadena iir en la función lowpass() usando la propiedad ImpulseResponse.

El valor de inclinación predeterminado es 0,85, pero podemos establecerlo en cualquier valor en el intervalo de 0,5 a 1 utilizando la propiedad steepness. La atenuación predeterminada de la banda de parada es 60, pero podemos cambiar cualquier escalar positivo en dB usando la propiedad StopbandAttenuation.

Para cambiar una propiedad, tenemos que pasar su valor por su nombre como lowpass(....,'StopbandAttenuation', 60).

Autor: Ammar Ali
Ammar Ali avatar Ammar Ali avatar

Hello! I am Ammar Ali, a programmer here to learn from experience, people, and docs, and create interesting and useful programming content. I mostly create content about Python, Matlab, and Microcontrollers like Arduino and PIC.

LinkedIn Facebook