Matlab - filtrado en cascada

 
Vista:

filtrado en cascada

Publicado por Pedro (1 intervención) el 16/03/2005 18:27:54
Tengo una serie de filtros en cascada, los que puedo representar uno a uno con la funcion "freqz" mediante sus coeficiente, y me gustari poder hacer una representación del filtro equivalente.Para uasar la funcion "freqz" necesitaria los coeficientes equivalntes. Mi duda es si existe alguna función para representar el filtro equiv. a paertir de todos los coeficientes o la forma de poder obtener dichos coeficientes(*).
(*) Se que para sacar el filtro equivalente he de multiplicar los coeficiente de cada uno, esto a mano es inviable pues se trata de un gran numero de estos y muy largos.
Muchisimas 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

Representación del filtro equivalente en cascada

Publicado por Alejandro (145 intervenciones) el 06/10/2023 19:39:00
Pedro, puedes utilizar la función `poly` en Matlab para realizar la multiplicación de los coeficientes de los filtros en cascada y obtener así los coeficientes del filtro equivalente. Aquí tienes un ejemplo de cómo podrías hacerlo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
% Supongamos que tienes los coeficientes de tus filtros en una matriz A,
% donde cada fila representa los coeficientes de un filtro.
 
% Asumiendo que A tiene dimensiones M x N (M filtros, N coeficientes por filtro)
[M, N] = size(A);
 
% Inicializa los coeficientes del filtro equivalente
coef_equiv = A(1, :);
 
% Multiplica los coeficientes de cada filtro en cascada
for i = 2:M
    coef_equiv = conv(coef_equiv, A(i, :));
end
 
% Normaliza los coeficientes para evitar posibles desbordamientos
coef_equiv = coef_equiv / max(abs(coef_equiv));
 
% Utiliza freqz para obtener la respuesta en frecuencia del filtro equivalente
freqz(coef_equiv);

Este código inicializa los coeficientes del filtro equivalente con los del primer filtro y luego multiplica iterativamente los coeficientes de los filtros subsiguientes usando la función `conv`. Al final, normaliza los coeficientes para evitar problemas de escala y utiliza `freqz` para obtener la respuesta en frecuencia del filtro equivalente.

Espero que esto te sea útil.
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