Este documento describe el diseño de un filtro pasabandas de Butterworth entre 4 Hz y 6 Hz utilizando Matlab. Primero se define la señal de entrada y las características del filtro. Luego, los comandos buttord y butter se usan para calcular los coeficientes del filtro. Finalmente, el comando filter aplica el filtro a la señal, y los resultados muestran la señal original, su espectro, la respuesta del filtro y la señal filtrada. El documento concluye que Matlab es útil para simular y diseñar
La modulación por ancho de pulsos (también conocida como PWM, siglas en inglés de pulse-width modulation) de una señal o fuente de energía es una técnica en la que se modifica el ciclo de trabajo de una señal periódica (una senoidal o una cuadrada, por ejemplo), ya sea para transmitir información a través de un canal de comunicaciones o para controlar la cantidad de energía que se envía a una carga.
La modulación por ancho de pulsos (también conocida como PWM, siglas en inglés de pulse-width modulation) de una señal o fuente de energía es una técnica en la que se modifica el ciclo de trabajo de una señal periódica (una senoidal o una cuadrada, por ejemplo), ya sea para transmitir información a través de un canal de comunicaciones o para controlar la cantidad de energía que se envía a una carga.
Os presento unas prácticas de la asignatura de Modelado e Identificación de Sistemas (concretamente de la parte de identificación) que realicé durante mi carrera de Ing. Industrial. Entre otras cosas, en esta asignatura estudié se estudian técnicas de filtrado y acondicionamiento de señales para permitir a los distintos algoritmos de identificación operar de forma óptima.
Las prácticas son las cinco siguientes:
- Práctica 1: Análisis y diseño de filtros analógicos
- Práctica 2: Diseño de filtros digitales
- Práctica 3: Filtrado Digital. Aplicación a imagen.
- Práctica 4: Identificación de un sistema mediante el algoritmo LS.
- Práctica 5:Identificación de un sistema real mediante el algoritmo RLS.
Con estas prácticas aprenderás a:
- Aplicar técnicas de filtrado de señales para mejorar el proceso de identificación experimental de sistemas (eliminación de ruidos y perturbaciones).
- Utilizar las técnicas de identificación paramétrica de sistemas más usuales tanto para sistemas lineales como para sistemas no lineales.
- Conocer los métodos matemáticos e informáticos necesarios para realizar una identificación paramétrica.
Los bloques de la asignatura que están vinculados con las prácticas son:
BLOQUE I: ACONDICIONAMIENTO Y FILTRADO DE SEÑALES
1. Análisis de Filtros Analógicos
2. Diseño de Filtros Analógicos
3. Análisis de Filtros Digitales
4. Diseño de Filtros Digitales por discretización de filtros analógicos
5. Diseño de Filtros Digitales no recursivos
BLOQUE II: IDENTIFICACIÓN DE SISTEMAS
6. Introducción a la Identificación
7. Identificación en línea. Algoritmo LS
8. Propiedades del Algoritmo LS
BLOQUE I: ACONDICIONAMIENTO Y FILTRADO DE SEÑALES. En él se introduce al alumno en el área de filtrado de señales. Este aspecto es importante ya que se suele emplear en casi la totalidad de las aplicaciones de captura de datos y/ control de sistemas y porque es necesario que los datos experimentales obtenidos para una identificación sean lo más correcto posibles.
BLOQUE II: IDENTIFICACIÓN DE SISTEMAS. En este bloque se estudia la identificación experimental de sistemas físicos. Para ello se parte del estudio y análisis del algoritmo de identificación LS y a partir de él se estudian otros más completos y/o eficientes.
En el documento trata de los métodos de diseño de filtros digitales FIR que se utilizan comúnmente en el procesamiento digital de señales. Se caracterizan por tener una respuesta de impulso finita. Algunos métodos comunes, de Parks-McClellan, Logarítmico y Muestreo en frecuencia.
1. UNIVERSIDAD POLITECNICA SALESIANA<br />INGENIERIA ELECTRONICA<br />TRABAJO<br />PROCESAMIENTO DIGITAL DE SEÑALES<br />TEMA<br />DIEÑO DE UN FILTRO DE BUTTHERWOTH UTILIZANDO MATLAB<br />INTEGRANTES<br />FRANCISCO JURADO<br />JORGE MORALES<br />ALEX MORENO<br />ALEJANDRO VALENCIA<br />CRISTIAN ZAPATA<br />PERIODO LECTIVO<br />2010 – 2011<br />Objetivo<br />Mostrar la forma de diseñar un filtro pasabandas de Butterworth con la ayuda del software Matlab.<br />Introducción<br />Es muy común el uso de filtros en el procesamiento de señales, es por ello que hay que aprender a utilizar paquetes que faciliten el diseño de filtros analógicos y digitales. En el presente trabajo nos enfocaremos a la implementación de una clase de filtro el pasabanda de Butterworth. <br />Matlab<br />Filtros analógicos Butterworth<br />En Matlab podemos encontrar la instrucción Butter, este comando diseña filtros Butterwoth pasa-bajas, pasa-altas, pasa-bandas y rechaza bandas tanto en forma digital como analógica. Este filtro se caracteriza por una respuesta plana en la banda de transición.<br />En el dominio analógico tenemos dos opciones:<br />La instrucción para generar un filtro del grado que el usuario desee, así como la manipulación de la frecuencia de corte.(esta instrucción genera los polos y ceros necesarios)<br />El comando para que a partir del grado, tipo y amortiguamiento, se obtengan los polos, zeros y ganancia que pueda tener el filtro.<br />Ambas opciones generan los coeficientes de s de la función de transferencia:<br />A continuación diseñaremos un filtro pasabanda de 4 Hz a 6 Hz y el resultado de ingresar una señal y pasarla por el filtro.<br />Código en Matlab<br />Primero definimos las características que va a tener la señal y el filtro en tiempo, frecuencia atenuación.<br />% Definimos el periodo de la señal en un valor de 0.01 seg<br />pas=0.01;<br />t=0:pas:10;<br />% Definimos la frecuencia de muestreo que es el inverso del periodo de la señal adema de la frecuencia de corte que es el inverso de la frecuencia de muestreo la cual va a ser utilizada en nuestro filtro y resulta el inverso del periodo de la señal.<br />fm=1/pas;<br />fs=fm/2;<br />% Definimos la banda de paso y de corte de nuestro filtro<br />wp=[5 20]/fs;<br />ws=[1 24]/fs;<br />% Establecemos los valores de rp (valor de la tolerancia de nuestro filtro) y de rs (valor de la atenuación de la banda eliminada) <br />rp=2;<br />rs=10;<br />% Definimos la señal la cual vamos a utilizar para pasar por el filtro de butterworth <br />senal=sin(10*pi*t)+cos(15*t+t.^2);<br />% Graficamos la señal de muestra<br />% Definimos el eje de tiempo de nuestra señal<br />ejet=[0:pas:(length(senal)-1).*pas];<br />subplot(4,1,1);<br />plot(ejet,senal);<br />axis([ min(ejet) max(ejet) min(senal) max(senal)]);<br />xlabel('t (s)');<br />ylabel('Inpunt(s)')<br />title('Grafico de la senal0')<br />% Graficamos el espectro de la amplitud de la señal de muestra<br />subplot(4,1,2);<br />dim=length(senal).*pas;<br />% Definimos el eje de frecuencia para la gráfica del espectro señal<br />ejefrec=[0:1/dim:(length(senal)-1)/dim];<br />spectr=abs(fft(senal));<br />% Obtenemos la amplitud del espectro de la señal<br />spectr=spectr/max(spectr);<br />plot(ejefrec,spectr);<br />axis([0 10 0 max(spectr)]);<br />xlabel('frecuencia (Hz)');<br />title('Espectro de amplitud de la senal')<br />% Obtenemos el orden del filtro de butterwort y la frecuencia normalizada con la ayuda del comando buttord<br />[n,wn]=buttord(wp,ws,rp,rs);<br />% Con los datos anteriores y con la ayuda del comando butter obtenemos los coeficientes de la función de transferencia para el filtro de butterworth<br />[b,a]=butter(n,Wn);<br />[h,f]=freqz(b,a,[],fm);<br />subplot(4,1,3);<br />plot(f,abs(h));<br />axis([0 10 0 max(spectr)]);<br />xlabel('frecuencia (Hz)');<br />ylabel('|H(z)|');<br />title('Filtro')<br />% Para poder observar el resultado de filtrar nuestra señal de muestra la convolucionamos con el filtro con la ayuda del comando filter.y obtenemos el resultado de la señal filtrada<br />ysig=filter(b,a,senal);<br />subplot(4,1,4);<br />plot(ejefrec,abs(fft(ysig)));<br />axis([0 10 0 500]);<br />xlabel('Frecuencia (Hz)');<br />ylabel('Senal Filtrada (Hz)');<br />title('Senal Filtrada')<br />Resultados Obtenidos<br />El primer gráfico nos muestra la señal que creamos como prueba<br />El segundo grad¡fico nos muestra el espectro de amplitud de la señal.<br />El tercer grafico nos muestra el filtro de buttrerworth.<br />El cuarto grafico nos muestra el resultado de la señal filtrada.<br />Comandos Utilizados<br />Buttord.- con la ayuda de este comando nos es factible calcular el mínimo orden del filtro digital o analógico de Butterworth requerido para satisfacer las especificaciones de diseño del filtro.<br />Dominio Digital<br />Sintaxis<br />[n,Wn] = buttord(Wp,Ws,Rp,Rs)<br />[n,Wn] = buttord(Wp,Ws,Rp,Rs,'s')<br />Descripción de los parámetros para el uso del comando<br />Butter.- este comando nos sirve para el diseño de filtros de orden n.<br />Dominio Digital<br />[z,p,k] = butter(n,Wn)<br />Sintaxis<br />[z,p,k] = butter(n,Wn)<br />[z,p,k] = butter(n,Wn,'ftype')<br />[b,a] = butter(n,Wn)<br />[b,a] = butter(n,Wn,'ftype')<br />[A,B,C,D] = butter(n,Wn)<br />[A,B,C,D] = butter(n,Wn,'ftype')<br />[z,p,k] = butter(n,Wn,'s')<br />[z,p,k] = butter(n,Wn,'ftype','s')<br />[b,a] = butter(n,Wn,'s')<br />[b,a] = butter(n,Wn,'ftype','s')<br />[A,B,C,D] = butter(n,Wn,'s')<br />[A,B,C,D] = butter(n,Wn,'ftype','s')<br />Filter.- esta función nos permite obtener una secuencia de datos utilizando un filtro digital que funciona tanto para la parte real y compleja. El filtro es una forma directa aplicación.<br />Sintaxis<br />y = filter(b,a,X)<br />[y,zf] = filter(b,a,X)<br />[y,zf] = filter(b,a,X,zi)<br />y = filter(b,a,X,zi,dim)<br />[...] = filter(b,a,X,[],dim)<br />Freqz.- devuelve la respuesta de frecuencia del vector h, y el correspondiente vector angular wn frecuencia normalizada para el filtro digital cuya función de transferencia está determinada por los polinomios (reales o complejos) numerador y el denominador representados en la b vectores y uno, respectivamente.<br />Sintaxis<br />[h,w] = freqz(b,a,l)<br />h = freqz(b,a,w)<br />[h,w] = freqz(b,a,l,'whole')<br />[h,f] = freqz(b,a,l,fs)<br />h = freqz(b,a,f,fs)<br />[h,f] = freqz(b,a,l,'whole',fs)<br />freqz(b,a,...)<br />freqz(Hd)<br />Conclusion:<br />En la actualidad existen diversos paquetes para simular sistemas y es necesario saber utilizar los más usados. En fin con este proyecto llegamos a la conclusión que matlab es ideal para ver el comportamiento del filtro sin importar los valores de las resistencias o capacitores que debe llevar el filtro, es más diríamos que es muy fácil diseñar filtros con esta herramienta. Hablando de Simulink concluimos que es una mezcla o correlación entre un software de procesamiento de señales y otro de electrónica, en fin es muy útil cuando se tiene la función de transferencia específica para el filtro deseado.<br />Es útil para simular que componentes debe tener el filtro para su trabajo óptimo, en sí es fácil de usar y de simular.<br />Los tres programas van ligados y la forma de correlacionarlos sería la siguiente:<br />Referencia<br />Manual de procesamiento de señales Toolbox del paquete Matlab<br />