Matlab - Filtro unitario

 
Vista:

Filtro unitario

Publicado por José Manuel (4 intervenciones) el 12/11/2004 17:38:26
Hola, m gustaría saber cómo crearme un filtro q dejase pasar los datos q le entran en un rango de frecuencias determinado. Es decir, como un filtro paso de banda (que deje pasar ciertas frecuencias y otras no).

Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Diseño de un filtro paso de banda

Publicado por Alejandro (145 intervenciones) el 05/10/2023 23:47:11
José, puedes diseñar un filtro paso de banda en Matlab utilizando la función `designfilt` para crear un objeto de filtro y luego aplicarlo a tus datos utilizando la función `filter`. Aquí tienes un ejemplo básico para un filtro paso de banda:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
% Parámetros del filtro
frecuencia_central = 1000; % Frecuencia central en Hz
ancho_banda = 200; % Ancho de banda en Hz
 
% Frecuencias de corte
frecuencia_inferior = frecuencia_central - ancho_banda/2;
frecuencia_superior = frecuencia_central + ancho_banda/2;
 
% Orden del filtro (ajusta según sea necesario)
orden = 4;
 
% Crear el filtro paso de banda
filtro = designfilt('bandpassfir', 'FilterOrder', orden, 'CutoffFrequency1', frecuencia_inferior, 'CutoffFrequency2', frecuencia_superior);
 
% Datos de entrada (reemplaza con tus propios datos)
t = 0:0.001:1; % tiempo de muestreo
datos_entrada = sin(2*pi*500*t) + sin(2*pi*1200*t) + randn(size(t))*0.1; % ejemplo de datos de entrada
 
% Aplicar el filtro a los datos de entrada
datos_salida = filter(filtro, datos_entrada);
 
% Visualización de resultados
figure;
subplot(2,1,1);
plot(t, datos_entrada);
title('Datos de Entrada');
 
subplot(2,1,2);
plot(t, datos_salida);
title('Datos Filtrados (Paso de Banda)');

Este ejemplo utiliza un filtro paso de banda FIR (respuesta al impulso finita) con frecuencias de corte especificadas (`frecuencia_inferior` y `frecuencia_superior`). Puedes ajustar el orden del filtro según sea necesario.

Asegúrate de reemplazar los datos de entrada (`datos_entrada`) con tus propios datos y ajustar los parámetros según tus necesidades específicas.

Si necesitas un filtro más complejo, como un filtro IIR (respuesta al impulso infinita), puedes explorar otras opciones de `designfilt` o funciones como `butter`, `cheby1`, etc., para diseñar filtros más avanzados.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar