Está en la página 1de 23

Filtro de Butterworth

Condiciones a cumplir por el filtro (datos del problema)


FS=24000

frecuencia de muestreo

Fp= 3000

frecuencia lmite del pasabanda

Fs= 6000

frecuencia lmite del stopbanda

Dp = 1 db

atenuacin mxima en el pasabanda

Ds = 30 db atenuacin mnima en el stopbanda


Para adecuar a la funcin que permite el clculo del orden del filtro, Fc y Fs deben
llevarse a la forma normalizada

Por lo tanto resulta:


Wp = 3000/12000 = 0.25

Ws = 6000/12000 = 0.5

Resolucin del problema


Se calcula primero el orden (N) y la frecuencia de potencia mitad (Ws) (valor de la
frecuencia para el cual |H(z)|2 cae a la mitad).
[N, Wn] = buttord(Wp, Ws, Rp, Rs)
[N, Wn] = buttord(0.25, 0.50, 1, 30)
Resultando:
N = 5

Wn = 0.2958

Con este resultado previo, se procede al diseo del filtro de Butterworth que cumpla con
las caractersticas especificadas:

[B,A] = BUTTER(N,Wn)
[B,A] = BUTTER(5,0.2958)
Resultando:
B = [0.0065

0.0327

A = [1.0000

-2.0177 2.0732

0.0655

0.0655

0.0327

-1.1455 0.3423

0.0065 ]
-0.0428 ]

Luego, la funcin de transferencia, est dada por


5

H ( z)

0.0065 z
z

0.0327 z
4

2.0177 z

0.0655 z
3

2.0732 z

0.0655 z
2

1.1455 z

0.0327 z

0.3423 z

0.0065

0.0428

Sustituyendo z=exp(j) se obtiene la respuesta en amplitud del filtro, |H()|

Grficamente (poniendo como eje horizontal )

Matlab dispone de una funcin especfica que permite obtener directamente


grficamente la respuesta en amplitud del filtro.
[H,W] = FREQZ(B,A,N) retorna el vector H de N-puntos de la respuesta en frecuencia y
el vector de frecuencia de N-puntos W en radianes/muestra del filtro.
Luego, ejecutando:
[H,W] = FREQZ(B,A,1000);
plot(W./pi,abs(H))
Se obtiene la misma curva anterior

Si se quiere observar tanto la respuesta en amplitud como la de fase, se procede con la


misma funcin anterior pero si primer miembro.

Con la diferencia que aqu, en la respuesta en amplitud, las magnitudes del eje vertical
estn dadas en decibeles (db).
Tambin se pueden hacer separadamente con:
m = abs(H); p = unwrap(angle(H));
semilogy(w/length(w),m); title('Magnitud');
figure; plot(w/length(w),p*180/pi); title('Fase');
Resultando:

Para verificar si se cumplen las condiciones de atenuacin, precisamente se necesita que


el eje de ordenadas est en db, lo que se logra redefiniendo a |H(z)| como 20*log(|H(z)|)

Con lo que se puede apreciar que en la frecuencia de comienzo del stopbanda, la


atenuacin es de 30 db (el signo negativo indica precisamente atenuacin, si fuese
positivo sera amplificacin)
Para ver que ocurre en el pasabanda, se har un zoom adecuado.

Como se aprecia, la atenuacin en el pasabanda est por debajo de 1 db.


La implementacin del filtro, su ecuacin diferencia, se puede establecer desde H(z)

Antitransformando

Despejando ahora yn

Si al filtro se le inyecta un impulso

La salida se ve grficamente como:

Mediante Matlab, se puede usar la funcin filter para realizar esta tarea.
i=1:512;x(i)=0; x(255)=1; % genera el impulso en la mitad
% de la secuencia
Y=filter(B,A,x); % Encuentra la salida del filtro
% calculado para la secuencia x

plot(Y)

% Grafica la salida

La funcin filter es implementada como la estructura transposed direct-form II


mostrada debajo, donde n-1 es el orden del filtro. Esta es una forma cannica que tiene
el mnimo nmero de elementos delay.

Con la funcin zplane(Z,P) se pueden graficar los polos y ceros en el plano complejo de
una funcin de transferencia.
Para ello es necesario calcular previamente los polos (ceros del denominador) y ceros
(ceros del numerador) con la funcin roots.
P=roots(A) % calcula ceros del denominador (polos)
Z=roots(B) % calcula ceros del numerador (ceros)
zplane(Z,P)

Secciones de Segundo-Orden (SOS)


Cualquier funcin de transferencia H(z) tiene una representacin en secciones de
Segundo-Orden.

donde L es el nmero de secciones de segundo orden que describen el sistema.


MATLAB representa la forma de la seccin de segundo orden de un sistema de tiempo
discreto como una martiz sos L x 6. Cada fila sos contiene una sola seccin de segundo
orden, donde los elementos de la fila son los tres del numerador y tres coeficientes del
denominador que describen la seccin de segundo orden.

Hay un incontable nmero de formas de representar un filtro en forma de secciones de


segundo orden . A travs del apareamiento cuidadoso de los pares de polos y ceros, el
orden de las secciones de la cascada, y el escalamiento multiplicativo de las secciones,
es posible para reducir el ruido de cuantificacin y evitar el desbordamiento en algunas
implementaciones de filtros de punto fijo.
Para esto se utiliza la funcin tf2sos.
Al ejecutar
[SOS,G] = TF2SOS(B,A)
SOS =
1.0000
1.0000
1.0000

0.9988
2.0020
1.9992

0 1.0000 -0.3322
1.0020 1.0000 -0.7262
0.9992 1.0000 -0.9593

0
0.2135
0.6031

G=
0.0065
Se rehace la Funcin de Transferencia.

Diseo de Filtros FIR


Condiciones a cumplir por el filtro (datos del problema)
Wn = 0.2958
frecuencia de atenuacin -6 db
N=10 nmero de taps
Wn = 0.2958 ; N=10;B = fir1(N,Wn);
B =
-0.0052
-0.0075
0.0150
0.1069
0.2389
0.3038
0.2389
0.1069
0.0150
-0.0075
-0.0052
[H,W] = freqz(B,1,1000);
plot(W/pi,abs(H),W/pi,0.5,'-')

plot(W/pi,20*log10(abs(H)),W/pi,-6,'-')

freqz(B,1,1000);

[SOS,G] = tf2sos(B,1)
SOS =
1.0000
1.0000
1.0000
1.0000
1.0000
G =
-0.0052

-3.5866
1.5435
1.9001
1.0335
0.5402

1.0000
2.8573
1.0000
1.0000
0.3500

1.0000
1.0000
1.0000
1.0000
1.0000

0
0
0
0
0

0
0
0
0
0

Diseo de filtros FIR por Muestreo Fecuencial


Se utiliza la funcin
B = fir2(N,F,M,window);
Los parmetros de entrada son el orden del filtro N (longitud N+1) y dos vectores F y M
que especifican la frecuencia y la magnitud, de forma que plot(F,M) es una grfica de
la respuesta deseada del filtro, window es la ventana utilizada en el mtodo (Hamming,
por default).
N=10; F=[0 .2 .4 .6 .8 1 ]; M=[1 1 1 1 0 0 ];
[H,W] = freqz(B,1,1000);
plot(W/pi,abs(H),F,M,'o')

Uso de fdatool
Uso de sptool
Cuando se exporta el archivo se guarda como estructura con dos variables (Fs y data).
Para recuperarlas, se debe utilizar el nombre de la estructura con un punto seguida por la
variable. Ejemplo:
d=sig3.data
FS=sig3.Fs
function y=aj_adapt(W1,W2,n,mu)
% Calcula y grafica el ajuste de pesos mediante
% MSE minimo para una entrada (y) y una funcin deseada (d)
N=1024;M=5;
% Funcion de entrada x(i), deseada d(i)
i=1:N;x(i)=sin(2*pi*(i-1)/M);d(i)=2*cos(2*pi*(i-1)/M);
% Si se quiere agregar ruido a la entrada
% sigma=0.;x=x+sigma*randn(1,N);
% Calculo de la matriz de autocorrelacion R
% Diagonal principal
for k=1:n,
V=x(k:length(x));R(k,k)=V*V'/length(V);
end
for k=1:n,
c=1;
for j=k+1:n,
V1=x(k:length(x)-c);
V2=x(j:length(x));
R(k,j)=V2*V1'/length(V1);R(j,k)=R(k,j);c=c+1;
end
end
% Calculo del vector de correlacion cruzada P
c=0;
for j=1:n,

V1=x(1:length(x)-c);
V2=d(j:length(x));
P(j)=V2*V1'/length(V1);c=c+1;
end
w_opt=R^-1*P'; B=w_opt;
% potencia promedio de la seal deseada
Ed2=d*d'/N;
% verificacin del ajuste
y=filter(B,1,x);
%plot(y(500:510))
MSE=Ed2+B'*R*B-2*P*B;
xi_min=Ed2-P*B;

En esta seccin se describen las configuraciones de sistema donde se aplica el diseo


mnimos cuadrados.
La primera configuracin, ilustrada en la Fig. 8.1 es el predictor lineal. El concepto de
prediccin se ilustra en su forma ms simple en el diagrama superior

En el diseo mnimos cuadrados, los coeficientes, o pesos, del sistema lineal causal,
H(z), son ajustados para minimizar el error cuadrado medio, E[ek2], haciendo as la
salida del sistema gk la aproximacin mnimos cuadrados a una seal deseada, dk,. En
este caso dk es la misma que la entrada, sk y debe ser predicha usando la historia
pasada de sk. Esto es, dk debe ser predicha en trminos de s k retardada por m muestras y
procesada a travs de H(z). De nuevo, el proceso de diseo de mnimos cuadrados
consiste en ajustar los pesos de H(z) para hacer de esta versin procesada de la historia
de la entrada la mejor prediccin del valor presente de la muestra sk.
El diagrama superior con una unidad de retardo, esto es con m=1, es la forma ms
comn de predictor lineal, aunque no predice actualmente un valor futuro de la entrada.
En muchas aplicaciones DSP, el error ek ms de que un valor futuro de sk es necesitado.
Si se necesita una prediccin actual de una seal, la forma aumentada en el diagrama
inferior puede ser implementada.
i=4:1000; s(i)=sin(2*pi*5*i/1000); % seal de entrada (esperada)
i=4:1000; f(i-3)=sin(2*pi*5*i/1000); % seal retrasada en 3
y=alg_lms_general(s,f,5); % algoritmo LMS, salida g(k) [y(k)]
i=1:996;plot(i,y(i),i,s(i)) % comparacin

La segunda configuracin en la cual es aplicable el diseo de mnimos cuadrados se


ilustra en el fig. 8.2 y se llama modelamiento o identificacin de sistema.

Aqu un sistema lineal H(z) modela o identifica una planta desconocida consistente de
un sistema desconocido con ruido interno. El diseo de mnimos cuadrados fuerza a la
salida del sistema lineal gk a ser una aproximacin de mnimos cuadrados a la salida de
planta deseada dk para una entrada particular fk.
X=randn(1,1000); % seal aleatoria de entrada
Y=filter([0.5 1.3 2.1],1,X); % Seal deseada

alg_lms_general(X,Y,3) % Algoritmo LMS


Wopt =
2.1000

1.3000

0.5000

Cuando fk tiene contenido espectral en todas las frecuencias y cuando el ruido de planta
contribuye en mucho una pequea parte de la potencia en dk, esperamos que H(z) sea
similar a la funcin de transferencia de sistema desconocido de la planta. Note, sin
embargo, que H(z) no es necesariamente una aproximacin de mnimos cuadrados. As,
el concepto de modelamiento es aplicable donde el objetivo es la mejor aproximacin a
una seal, en vez que a una funcin de transferencia. El tipo de modelamiento ilustrado
en la Fig. 8.2 tiene un amplio rango de aplicaciones incluyendo modelamiento en
ciencias biolgicas, sociales y econmicas, en sistemas de control adaptativo, en diseo
de filtros digitales y en geofsica.
________

CANCELLING 50 HZ INTERFERENCE IN ECGs


ECG means electrocardiogram and it refers to the graph that results from ploting time
versus voltage in a patient's chest. Voltage sensors are located on the chest and the
signal they pick up is directed to a electrocardiograph, an apparatus that plots such a
signal, as shown in the following picture.

One of the main problems when picking signals so weak as the electrocardiogram is
noise. There are several kinds of noise that can affect the ECG but one of the strongest
is the 50 Hz interference from the main power distribution. An ECG with lots of ECG
interference is shown in the next picture. Both its temporal and spectral representations
are shown. The 50 Hz interference clearly shows up in the spectrum.

The electrocardiograph must have a way of eliminating this interference. This can be
achieved incorporating a notch filter into the electrocardiograph that stops the 50 Hz.
But for the filter to be very selective (very thin bandwidth) it must be high order and
that means many components. Adaptive filtering offers another possibility. A simple
second order (two weights) FIR adaptive filter can achieve very good results.
Feeding the adaptive system with a reference of the main power 50 Hz signal, the
interference can be highly reduced if not eliminated. The following figure shows the set
up.

Now, the ECG above was adaptively filtered with a second order FIR filter. This was
the output obtained:

The spectrum shows still some 50 Hz interference remaining but its level has been
considerably reduced. The performance of the adaptive system is better observed when
we comprare the signals (ecg and output) in one cycle, in between peaks.

Compare the spectrums when taking 400 samples in between peaks.

The discrepancy of the spectrum depending on wether the overall signal (15000
samples) or only a small part in between peaks (400 samples) is considered, comes from
the fact that when the output signal is not zero the weights vary randomly around their
optimum value. the bigger the output the more the variation. Therefore, after each peak,
the weights take a little while to readjust themselves, allowing the interference to pass,
and that occurs at each heart beat (every 1000 samples or so, being the sampling rate of
1 Khz).
The ECG shown above was provided by Dr. Antonio Albiol, from the Polithecnic
University of Valencia, Spain. The signal comes from a man's chest, taken at a sample
rate of 1 Khz. The output of the adaptive system was obtained using the following
parameters:
Algorithm:
Order of the FIR filter:
Stability factor (mu):
Initial weights vector:
Noise reference input:

LMS
2
1e-6
w1 = 0.052
w2 =-0.020
50 Hz cosinewave

Cancelacin de interferencia

Un locutor est hablando en un contexto de construccin, dond el ruido acstico es tan


fuerte que, cuando el levantado por su telfono y agregado a sus palabras, la seal
combinada resulta inteligible al oyente. Afortunadamente, un ingeniero en DSP est a
mano para disear un cancelador de ruido por mnimos cuadrados, el cual opera
procesndole ruido correlacionado levantado por un micrfono en el mismo contexto. El
cancelador de ruido trabaja por sustraccin del ruido correlacionado procesado, gk,
desde la seal combinada, sk,+ nk,.

Figura 8.16 Cancelacin de interferencia por mnimos cuadrados. Ruido fuerte es agregado a la voz del
locutor. Usando una versin correlacionada del ruido sin la palabra, el filtro de cancelacin de
interferencia, B(z), produce una salida que cancela mucho del ruido. Los pesos del filtro son elegidos para
minimizar el valor al cuadrado total de la salida ek.

La razn de la necesidad de sustraer el ruido en vez de usar un filtro cancelador de ruido


se muestra en la siguiente figura.

Figura 8.17 Seal de palabra, s(t), y ruido, n(t), con espectro densidad de potencia, para el ejemplo de
cancelacin de interferencia. La seal en este caso es de alrededor de 20 dB por debajo del nivel de ruido.

Una muestra de 1 segundo de la seal de palabra, s(t) se muestra a la izquierda junto con
la densidad espectral de potencia de la seal entera. El ruido de construccin, n(t), y su
espectro se ven al derecha. La tasa de muestreo en ambos casos es de 40 KHz. Podemos
ver que filtrando la seal combinada, s(t)+n(t), para mejorar la relacin seal-a-ruido
(SNR) puede ser posible para algn grado pero resultara tambin en prdida de algo de

la seal. Si s(t) y n(t) son independientes, la configuracin en la Fig. 8.16 sera la mejor
eleccin para mejorar la SNR.

Figura 8.18 Un segmento de seal ms ruido, ilustrando una pobre SNR.

Figura 8.19 Segmentos de ruido y ruido correlacionado.

La seal combinada se muestra en la Figura 8.18, en la cual podemos observar que el la


baja SNR en este caso tiende a oscurecer la componente de palabra casi completamente
a ojo. El odo humano es ms adepto que el ojo a separar las dos componentes, pero an
un buen escucha perder mucho de la palabra cundo es mucho el ruido agregado.
Cortos segmentos (0.1 seg) del ruido n(t) y el ruido correlacionado f(t), se muestran en
la Fig. 8.19. En este ejemplo idealizado, el ruido correlacionado es una transformacin
lineal del ruido. En realidad, debemos usualmente aceptar al menos un pequeo grado
de independencia entre el ruido medido y el ruido actual agregado a la seal.
Como en ejemplos previos, el clculo del vector peso ptimo se describe en la Tabla
8.2. Las expresiones Matlab requeridas, en las cuales N es el nmero de pesos, son

El TSE, calculado como en la Tabla 8.2 para valores crecientes de N, es graficado en dB


en la Fig. 8.20.

Figura 8.20 Mnimo TSE vs. Nmero de pesos (N) en el ejemplo de cancelacin de interferencia,
indicando que la SNR crece slo ligeramente a medida que N crece ms all de 4 5.

El TSE se ve que decrece lentamente despus de N=4 5. En la prctica, debido a que


cantidades tales como calidad de palabra o de imagen requieren juicio subjetivo, la
eleccin de N puede ser mejor hecha sobre la base de mejor escucha o mejor vista
en vez de sobre la base del TSE.
En cualquier caso, podemos ver que la cancelacin de interferencia por mnimos
cuadrados es potencialmente capaz de producir un gran incremento en la SNR. La
mejora es ilustrada en la figura final, 8.21, la cual muestra primero la seal ruidosa, s(t)
+n(t), luego la salida del sistema,
, para N=5 y N=12, y finalmente la salida
de palabra original, s(t). Gracias al DSP, el oyente en la Fig. 8.16 es capaz de captar el
mensaje.

Figura 8.21 Grfico final para el ejemplo de cancelacin de interferencia, mostrando


(1) la seal recibida sin cancelacin, (2,3) la seal recibida con cancelacin usando N=5
y 12 pesos y (4) seal original sin ruido.

Potencia y Densidad Espectral de Potencia

La ganancia de potencia de un sistema lineal est dada en trminos del cuadrado de la


magnitud de la funcin de transferencia, la cual a su vez es medida por la DFT de la
respuesta impulsiva.
1
1 0.2 z
1
1
H ( z) =
Y ( z) 2 Y ( z) z = X ( z) 0.2 X ( z) z
1

2z

yn =

xn 0.2 xn1 yn1


2

n 1 1024

xn 0

n1 2 1024

y1 0

yn1

x1 1

impulso

xn1 0.2 xn11 yn11


2

As, podramos decir que el cuadrado de la magnitud de la DFT de cualquier funcin


x(t) es una medida de la distribucin de potencia en x(t) sobre el dominio de frecuencia.
Ahora deseamos perseguir esta idea y arribar a la definicin precisa de la potencia y la
densidad de potencia.
La potencia instantnea de x(t) en cualquier instante arbitrario t es el cuadrado de la
magnitud de la seal, |x(t)|2 . Suponemos que la seale s real, de modo que se puede usar

x(t)2, pero la definicin general se mantiene an para seales complejas. Se sigue con
que la potencia promedio o esperada de una funcin estacionaria x(t) es

Si x es un vector consistente de n muestras de x(t), decimos que la potencia promedio en


x es

xi sin 2

i 1 1024

f ( t) sin ( 2 2 t)

( i 1) 2

1024

N 1024

t 0 0.01 2

1
0.998

0.5

f ( t)
0.5

0.998

0 0.1 0.2 0.3 0.4

1
0

1
Pm
N
T

0.5
N

0.5

xk 2 0.5

k1

N T

N T 0

tiempo de muestreo

f ( t) dt 0.5

La potencia promedio en este sentido es un estimado de la verdadera potencia promedio


en (7.19),
Para expresar la potencia promedio en trminos de la DFT, sustituimos la frmula de la
inversa de la DFT en (3.23) para x, en (7.20) y escribimos el resultado como sigue.

También podría gustarte