Вы находитесь на странице: 1из 8

Curso de maestría "Procesamiento Digital De Señales"

Julio2018
Diseño de filtros digitales
Raziel Alba Hernández
Universidad Politécnica de Tulancingo
raziel.alba.h@gmail.com

Abstract. There is a design signal processing algorithms with disturbances using the Matlab software
as an essential tool for analysis and comparison of the performance of adaptive digital filters do not
apply the conventional filter design process, using it to study an audio signal mixed with noise above
4000 Hz to establish a mechanism for immersion in the study of changes that are made more complex
signals such as harmonics, based on knowledge of characteristics point or approximately the same.
This design IIR filters such as Butterworth, chebychev type I and II, and elliptic all pasobajo
significantly decreasing the noise of the original signal according to the parameters of each the
frequency shift (less than 4 KHz), and cutting and stop band (greater than 4 KHz). Signal processing
with disturbances in low voltage electrical systems requires theoretical and practical solutions to
minimize the effects of this phenomenon, a result that is reflected in improved performance and
increased efficiency of the filtered signal.

Con el fin de establecer características fundamentales


1 Introducción de simulación mediante MATLAB.
La filtración digital de señales con perturbaciones 2.1 Procedimiento general de diseño de
consiste en el procesamiento de la señal mediante la
algoritmos en MATLAB
combinación de dispositivos electrónicos, simulación
para el análisis de los componentes de frecuencia que Estrategias para llevar a cabo el procesamiento de
la conforman, para así eliminar los componentes que señales con perturbaciones.
provocan alteraciones en esta. Tenemos que las
1. Identificación del tipo de señal a procesar, es
muestras de entrada se obtienen mediante el muestreo
importante conocer las características de la señal a
de Nyquist y muestras anteriores pueden ser
procesar.
multiplicadas por coeficientes definidos por cada
diseño de filtro a utilizar, para que los valores 2. Selección de la técnica de procesamientos de la
obtenidos puedan ser retroalimentados con valores señal
anteriores y multiplicarlos por otros coeficientes para
determinar los valores óptimos que minimicen la 3. Inclusión de los archivos de las señales a
salida deseada teniendo un error preestablecido en el procesar
diseño. Los resultados de las multiplicaciones son 4. Definición de la jerarquía a utilizar en el
sumados, dando como resultado la salida en el algoritmo
instante actual. El diseño, selección y construcción de
los filtros que permitan la disminución de ruidos, 5. Definición de los archivos de salida
cancelación de frecuencias de armónicos u otro tipo 6. Graficación de la entrada, salida y demás
de perturbación en la señal. parámetros de importancia y comprobación
gráfica y audible de los resultados del filtrado.
Existen diferentes tipos de filtros, entre ellos se
encuentran los que dejan pasar y atenúan la señal
acorde con características de frecuencia como los
filtros pasa alto, filtros pasa baja, filtros para banda, 2.2 Análisis de resultados del
banda eliminada, entre otros. procesamiento de la señal con los filtros
diseñados
Aplicando los ítems del procedimiento anterior es
posible realizar algoritmos para el procesamiento de
2 Contenido señales con perturbaciones que permitan establecer
El objetivo del caso es el diseño de filtros digitales mecanismos para la reducción del ruido implícito con
del tipo respuesta al impulso infinita (IIR) para filtrar la señal que contiene la información.
una señal de audio con ruido de alta frecuencia,
utilizando para ello filtros tipo IIR como el El esquema general de la figura 1 ilustra la acción de
Butterworth, chebychev tipo I, chebychev tipo II y un filtro digital sobre la señal original de información
elíptico. utilizados en el procesamiento de señales con ruido con el fin de obtener una señal con ruido
para cumplir y aplicar un conjunto de herramientas. minimizado.
Señal(información) + Ruido = Señal impulsional su salida no vuelve al reposo, de ahí el
calificativo de filtros de respuesta impulsional infinita
Filtro digital (IIR). La ecuación en diferencias general es de la
forma
Señal (información)
y (n)  b0 x(n)  b0 x(n  1)  ...
Figura 1
bM x(n  m)  a1 y (n  1)  a2 y (n  2)  ...
M N
aN y (n  N )   bk x(n  k )  ak y (n  k )
k 0 k 1

Donde el orden es igual al máximo de M y N

Comparado con un FIR, un filtro IIR requiere un


orden mucho menor para cumplir las especificaciones
de diseño, sin embargo, estos últimos no pueden
diseñarse para tener fase lineal. Existen técnicas de
compensación de fase mediante la utilización de
filtros pasa todo, sin embargo, esto aumenta la
longitud total del filtro.
Figura 2 Respuesta en frecuencia general de un
filtro pasobajo.
2.4 Filtro Butterworth pasabajas
La respuesta del filtro diseñado, se analiza con base es uno de los filtros electrónicos básicos, diseñado
en la estructura general del mismo en relación con el para producir la respuesta más plana que sea posible
comportamiento de los filtros pasobajo, mediante la hasta la frecuencia de corte. En otras palabras, la
cual por debajo de cierta frecuencia denominada de salida se mantiene constante casi hasta la frecuencia
corte (fc), la magnitud de la señal con ruido a filtrar de corte, luego disminuye a razón de 20n dB por
es reproducida con cierto rizado (ripple) y por encima década (ó ~6ndB por octava), donde n es el número
de fc para frecuencias mayores la magnitud de la de polos del filtro.
señal original tiende a ser nula aún con cierto rizado
también, obteniendo como resultado final la 2.5 Filtro Chebyshev tipo 1 y tipo 2
minimización del ruido en la señal de entrada al filtro
digital, con la restricción que la frecuencia del ruido Son un tipo de filtro electrónico, puede ser tanto
deber ser superior a la frecuencia de corte establecida analógico como digital. Nombrados en honor al
por la frecuencia máxima de la señal original con matemático ruso Pafnuti Chebyshev, debido a que la
información función matemática de su respuesta en frecuencia
utiliza los denominados polinomios de Chebyshev.
De acuerdo con la figura 2 , para los filtros diseñados Con estos se consigue una caída de la respuesta en
tanto en la frecuencia de paso como en la de rechazo frecuencia más pronunciada en frecuencias bajas
se presentan rizados de la señal original cuyas debido a que permiten rizado en alguna de sus bandas
características de amplitud, frecuencia, oscilaciones y (paso o rechazo). A diferencia del Filtro de
atenuación depende de cada filtro en particular Butterworth donde los polos se distribuyen sobre una
circunferencia, los polos del filtro Chebyshev lo
2.3 Filtrado de acordes mediante un filtro hacen sobre una elipse; sus ceros se encuentran en el
eje imaginario.
digital utilizando las herramientas de
MATLAB Filtros de Chebyshev de tipo I
Un filtro paso bajo es un filtro que permite las señales
situadas por debajo de una frecuencia de corte Son filtros que únicamente tienen polos, presentan un
(conocida como banda de paso) y atenúa las señales rizado constante en la banda pasante y presentan una
situadas por encima de la frecuencia de corte caída monótona en la banda de rechazo.
(conocida como banda de atenuación). Al eliminar
algunas frecuencias, el filtro crea un efecto de En estos filtros la frecuencia de corte no depende de
suavizado. Es decir, el filtro produce cambios lentos N y el módulo de su respuesta en frecuencia oscila
en los valores de salida para facilitar la observación 1
de tendencias y aumentar la proporción de señal a (rizado) entre 1 y
ruido con una degradación mínima de la señal. 1  e2

FILTROS IIR Son sistemas cuya salida depende Obtención del orden de un filtro con MATLAB.
además de salidas anteriores y que, estando en
reposo, al ser estimulados con una entrada [N, Wn] = BUTTORD(Wp, Ws, Rp, Rs, 's')

2
Devuelve la orden N del filtro Butterworth analógico 3 Desarrollo
de orden más bajo que no pierde más de Rp dB en la
banda de paso y tiene al menos Rs dB de atenuación 3.1 generación de notas musicales
en la banda de parada. Wp y Ws son la banda de paso
y frecuencias de borde de banda prohibida en Representación gráfica la señal correspondiente a la
radianes / segundo. BUTTORD también devuelve nota DO en un intervalo de tiempos entre [0…6]s.
Wn en rad / s, la frecuencia natural de Butterworth (o,
la "frecuencia de 3 dB") para usar con BUTTER para
lograr la especificación

Filtros de Chebyshev de tipo II

Estos filtros a diferencia de los Chebyshev I


presentan ceros y polos, su rizado es constante en la
banda de rechazo y además presentan una caída
monotónica en la banda pasante.

En un diagrama de circunferencia unidad, los polos


estarían en una elipse y los ceros sobre el eje
imaginario. Señal en el tiempo producida por la nota Do
de la octava 1 (65.4064 Hz).
Obtención del orden de un filtro con MATLAB.

[N, Wnc] = CHEB1ORD(Wp, Ws, Rp, Rs, 's')


Función sound de Matlab.

Devuelve la orden N del filtro analógico Chebyshev Do_1=65.4064;


Tipo I de orden más bajo que no pierde más que Rp fm=8192;
dB en la banda de paso y tiene al menos Rs dB de Ts=1/fm;
atenuación en la banda de parada. Wp y Ws son las t=linspace(0,6);
bandas de paso y banda de paso frecuencias en %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
radianes / segundo. CHEB1ORD también devuelve %%01 Señal de Do
Wnc en rad / s, la frecuencia natural de Chebyshev en DO=sin(2*pi*Do_1*t);
la que la magnitud la respuesta del filtro es -Rp dB. figure(1); plot(t,DO);
Wnc se usa con CHEBY1 para lograr las title('Señal de nota DO_1');
especificaciones. sound(DO)
Código para generar, visualizar y escuchar la nota Do
de la octava 1.
2.6 Filtro elíptico

Genera un acorde y representa gráficamente en un


[N, Wne] = ELLIPORD(Wp, Ws, Rp, Rs, 's') intervalo de tiempos entre [0…5]s.

Devuelve la orden N del filtro elíptico analógico de No se pudo colocar la representación gráfica en el
orden más bajo que pierde no más de Rp dB en el tiempo, esto debido a las múltiples frecuencias y a la
cantidad de datos, Matlab no puede procesar tanto.
banda de paso y tiene al menos Rs dB de atenuación Apendice I.
en la banda de parada. Wp y Ws son la banda de paso
y frecuencias de borde de banda prohibida en
radianes / segundo. ELLIPORD también devuelve
Wne en rad / s, la elíptica frecuencia natural para usar
con ELLIP para alcanzar las especificaciones. Wne
(corte angular frecuencia) es el borde de la banda de 3.3 Generando una melodía como acorde
paso, en el que la respuesta de magnitud del filtro es -
Rp dB. Acorde [Do,Sol,Mi,Sol,Sol,Mi,Re] se muestra su
espectro en frecuencia en la siguiente tabla, se
observa que dos con solitarias una está repetida dos
veces y una tercera se repite tres veces,
Filtro digital buttord [n_b,d_b]=butter(N_b,Wn_b);
dbode(n_b,d_b,Ts);
Espectro de frecuencias acorde
[Do,Sol,Mi,Sol,Sol,Mi,Re]

i. Convertir las especificaciones dadas en el


dominio digital (Ω) a especificaciones
analógicas (ω) usando la siguiente formula:

2  
 tan  
T 2

ii. Determinar el orden n del filtro a partir de


las características especificadas.

iii. Diseñar el filtro continuo.


Filtro cheb1ord 1
[n_c,d_c]=cheby1(N_b,Rp,Wp,'s');
iv. Discretizar la función de transferencia en subplot(1,2,1); dbode(nd_c,dd_c,Ts);
continuo. subplot(1,2,2); bode(n_c,d_c)

Determinamos el orden del filtro con Matlab

El orden del filtro buttord es: 4

El orden del filtro cheb1ord es: 3

El orden del filtro ellipord es: 2

Filtro continuos y discretos

Wp=0.1912; frecuencia de paso

Ws=0.2669; frecuencia de rechazo

Rp=1; banda de paso

Rs=6; banda de rechazo Filtro cheb1ord 2


[n_c2,d_c2]=cheby2(N_b,Rp,Wp,'s');
Se muestran los diferentes tipos de filtros generados subplot(1,2,1); dbode(nd_c2,dd_c2,Ts);
con los comandos y con los parámetros antes subplot(1,2,2); bode(n_c,d_c)
mencionados.

Discretización del filtro continuo con Matlab

Utilización de la función dbode(numb, dend, T)

4
Conclusiones

Los algoritmos de diseño de filtros digitales implican una


estructura que debe ser bien definida acorde con la
estructura propia de las funciones del toolbox de Matlab
debido a que para cada filtro existen versiones análogas y
digitales que podrían conducir a resultados diferentes si se
aplican indistintamente por la misma organización
matemática al igual que la estrategia o técnica de
optimización de dichos algoritmos, razón por la cual el
procedimiento propuesto es válido en la minimización de
ruido de las señal bajo estudio y puede ser generalizada
para el diseño de filtros de mayor nivel de alcance de
filtrado como por ejemplo el de la disminución de
armónicos en sistemas eléctricos de potencia.

Filtro ellipord [n_e,d_e]=ellip(N_e,Rp,Rs,Wp); Se seguirá trabajando con la implementación y se sospecha


dbode(n_e,d_e,Ts); que son los valores al intentar definir el filtro y que la
frecuencia deseada no es la correcta o que al generar el
acorde no es la frecuencia correcta, o al producir la señal en
frecuencia.
Señales obtenidas

Diferencia entre filtros


Señal procesada después del filtro cheby1

Se observa que toda la señal desaparece esto por la Autor


mala implementación del filtro.
Raziel Alba Hernández

raziel.alba.h@gmail.com

El autor nació en Tulancingo,


Hidalgo, México. En 1993.
Licenciado en ingeniería
mecatrónica de ITESA, Apan,
Hidalgo, en 2015, actualmente
cursando estudios de maestría en
Control y Automatización en la
Universidad Politécnica De
Tulancingo.

Señal procesada después de los otros filtros

Se observa que no existen cambio sobre la señal


generada, se seguirá estudiando sobre el tema.
close all; clear; clc;
A=2;%amplitud de la señal_ minimo 2
%frecuencia fundamental octava3
Do=65.4064;
Do3=261.63;
Re3=293.66;
Mi3=329.63;
Fa3=349.23;
Sol3=392;
La3=440;
Si3=493.88;

acorde=[Do3,Re3,Mi3,Fa3,Sol3,La3,Si3];
[m,nn]=size(acorde);

%datos de entrada
fs=8000;%frecuencia de muestreo, para este caso 8kHz es la frecuencia mas
apropiada para la reproduccion
N=5000;%24000;%Dato de entrada
ts=1/fs;%periodo
T=N*ts;%duracion de la señal
stopTime=T*(1-1/N);
t=0:ts:stopTime;
nota_musical=ones(nn,N) ;
fase=pi/6;

w0=2*pi*acorde(1);
nota_musical(1,:)=A*sin(w0*t+fase);

for k=1:nn
w0=2*pi*acorde(k);
nota_musical(k,:)=A*sin(w0*t+fase);
end
%
ftotal=[nota_musical(1,:),nota_musical(2,:),nota_musical(3,:),nota_musical(4,:)...
% nota_musical(5,:),nota_musical(6,:),nota_musical(7,:)];
Do=nota_musical(1,:);
Re=nota_musical(2,:);
Mi=nota_musical(3,:);
Fa=nota_musical(4,:);
Sol=nota_musical(5,:);
La=nota_musical(6,:);
Si=nota_musical(7,:);

ftotal=[Do,Sol,Mi,Sol,Sol,Mi,Re];

%sound(nota_musical(5,:),fs)
%
% plot(t,nota_musical(1,:))
% figure(1);
% xlabel('tiempo (s)')
% ylabel('Attenuation (dB)')
% title('Señal de acorde generado con 1 nota');

fstotal=32000;%frecuencia de muestreo, para el acorde


Ntotal=24000;%Dato de entrada
tstotal=1/fstotal;
Ttotal=Ntotal*tstotal;%duracion de la señal
stopTimetotal=Ttotal*(1-1/Ntotal);
ttotal=0:tstotal:stopTimetotal;

6
w0total=2*pi*ftotal;
fasetotal=pi/6;
%Reproducir acorde
sound(ftotal,fstotal)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%datos en frecuencia
%graficar en espectro de frecuencia
% Fourier transform of signal including high frequency content
L=length(ftotal);
Y_S=fft(ftotal);
P2 = abs(Y_S/L);
% Take magnitude at each point and normalize tonumber of data points
% The 2nd half of the Fourier trasnform is a mirror of the 1st half.% Only use the
first half of the points.% Double the magnitude of all the frequencies except the
first and the% last. This accounts for 1/2 the magnitude is in the 2nd half of
theP2 array% which we are discarding.
P1 = P2(1:L/2+1);
P1(2:end-1) = 2*P1(2:end-1);
% The frequencies are the sampling frequency normalized to the numberof% points
f = fs*(0:(L/2))/L;
figure(1);
plot(f,P1);
axis([200,450,-0.2,1.2]);
title('Espectro de frecuencias de la señal del acorde');
xlabel('f (Hz)');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%Filtrado de Señal
%%04 Diseño de filtros Butterworth,cheb1ord,ellipord
Wp=0.1912;
Ws=0.2669;
Rp=1;
Rs=6;
fm=8192;
Ts=1/fm;
[N_b,Wn_b]=buttord (Wp,Ws,Rp,Rs,'s');%que orden de filtro necesitas
[N_c,Wn_c]=cheb1ord(Wp,Ws,Rp,Rs,'s');
[N_e,Wn_e]=ellipord(Wp,Ws,Rp,Rs,'s');

%5 Orden del filtro


% fprintf('El orden del filtro buttord es: %d \n ',N_b)
% fprintf('El orden del filtro cheb1ord es: %d \n ',N_c)
% fprintf('El orden del filtro ellipord es: %d \n ',N_e)

%%%%%%%%%6 Filtro continuo

[n_c,d_c]=cheby1(N_b,Rp,Wp,'s');
[n_c2,d_c2]=cheby2(N_b,Rp,Wp,'s');
%filtro discreto
[n_b,d_b]=butter(N_b,Wn_b);
[n_e,d_e]=ellip(N_e,Rp,Rs,Wp);

%%%%%%%% 7 Discretizar filtro


[nd_c,dd_c]=bilinear(n_c,d_c,fm);
[nd_c2,dd_c2]=bilinear(n_c2,d_c2,fm);

%%%%%%%%%%% 8 Bode de filtro analogico y digital


% figure(5);
% subplot(1,2,1); dbode(nd_c,dd_c,Ts);
% subplot(1,2,2); bode(n_c,d_c)
% %title('cheby1');
% figure(6);
% subplot(1,2,1); dbode(nd_c2,dd_c2,Ts);
% subplot(1,2,2); bode(n_c2,d_c2)
% %title('cheby2');
% figure(7);
% dbode(n_b,d_b,Ts);
% %title('butter');
% figure(8);%[n_e,d_e]=ellip
% dbode(n_e,d_e,Ts);
% %title('ellip');

%%%%%%%%%%%%% usar filtro


%[sfilt]= filter(n_b,d_b,ftotal);%filtro butter
%[sfilt]= filter(n_c,d_c,ftotal);%filtro cheby1
%[sfilt]= filter(n_c2,d_c2,ftotal);%filtro cheby2
[sfilt]= filter(n_e,d_e,ftotal);%filtro ellip

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%datos en frecuenciasalida
%graficar en espectro de frecuencia
% Fourier transform of signal including high frequency content
L=length(sfilt);
Y_S=fft(sfilt);
P2 = abs(Y_S/L);
% Take magnitude at each point and normalize tonumber of data points
% The 2nd half of the Fourier trasnform is a mirror of the 1st half.% Only use the
first half of the points.% Double the magnitude of all the frequencies except the
first and the% last. This accounts for 1/2 the magnitude is in the 2nd half of
theP2 array% which we are discarding.
P1 = P2(1:L/2+1);
P1(2:end-1) = 2*P1(2:end-1);
% The frequencies are the sampling frequency normalized to the numberof% points
f = fs*(0:(L/2))/L;
figure(30);
plot(f,P1);
axis([200,450,-0.2,1.2]);
title('Espectro de frecuencias de la señal del acorde filtrada');
xlabel('f (Hz)');

Código empleado en Matlab

Вам также может понравиться