Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Filtro Butterworth
Filtro Butterworth
Para adecuar a la función que permite el cálculo del orden del filtro, Fc y Fs deben
llevarse a la forma normalizada
Resultando:
N = 5 Wn = 0.2958
Con este resultado previo, se procede al diseño del filtro de Butterworth que cumpla con
las características especificadas:
[B,A] = BUTTER(N,Wn)
[B,A] = BUTTER(5,0.2958)
Resultando:
B = [0.0065 0.0327 0.0655 0.0655 0.0327 0.0065 ]
5 4 3 2 1
0.0065 z 0.0327 z 0.0655 z 0.0655 z 0.0327 z 0.0065
H ( z)
5 4 3 2 1
z 2.0177 z 2.0732 z 1.1455 z 0.3423 z 0.0428
Luego, ejecutando:
[H,W] = FREQZ(B,A,1000);
plot(W./pi,abs(H))
Con la diferencia que aquí, en la respuesta en amplitud, las magnitudes del eje vertical
están dadas en decibeles (db).
También 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 atenuación, precisamente se necesita que
el eje de ordenadas esté en db, lo que se logra redefiniendo a |H(z)| como 20*log(|H(z)|)
Despejando ahora yn
Mediante Matlab, se puede usar la función filter para realizar esta tarea.
Con la función zplane(Z,P) se pueden graficar los polos y ceros en el plano complejo de
una función de transferencia.
Para ello es necesario calcular previamente los polos (ceros del denominador) y ceros
(ceros del numerador) con la función roots.
[SOS,G] = TF2SOS(B,A)
SOS =
1.0000 0.9988 0 1.0000 -0.3322 0
1.0000 2.0020 1.0020 1.0000 -0.7262 0.2135
1.0000 1.9992 0.9992 1.0000 -0.9593 0.6031
G=
0.0065
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 -3.5866 1.0000 1.0000 0 0
1.0000 1.5435 2.8573 1.0000 0 0
1.0000 1.9001 1.0000 1.0000 0 0
1.0000 1.0335 1.0000 1.0000 0 0
1.0000 0.5402 0.3500 1.0000 0 0
G =
-0.0052
Se utiliza la función
B = fir2(N,F,M,window);
Los parámetros 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 gráfica de
la respuesta deseada del filtro, window es la ventana utilizada en el método (Hamming,
por default).
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)
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 señal deseada
Ed2=d*d'/N;
% verificación 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 el diseño mínimos 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 aproximación mínimos cuadrados a una señal 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 términos de s k retardada por m muestras y
procesada a través de H(z). De nuevo, el proceso de diseño de mínimos cuadrados
consiste en ajustar los pesos de H(z) para hacer de esta versión procesada de la historia
de la entrada la mejor “predicción” del valor presente de la muestra sk.
El diagrama superior con una unidad de retardo, esto es con m=1, es la forma más
común de predictor lineal, aunque no predice actualmente un valor futuro de la entrada.
En muchas aplicaciones DSP, el error ek más de que un valor futuro de sk es necesitado.
Si se necesita una predicción actual de una señal, la forma aumentada en el diagrama
inferior puede ser implementada.
Aquí un sistema lineal H(z) modela o identifica una “planta” desconocida consistente de
un sistema desconocido con ruido interno. El diseño de mínimos cuadrados fuerza a la
salida del sistema lineal gk a ser una aproximación de mínimos cuadrados a la salida de
planta deseada dk para una entrada particular fk.
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 pequeña parte de la potencia en dk, esperamos que H(z) sea
similar a la función de transferencia de sistema desconocido de la planta. Note, sin
embargo, que H(z) no es necesariamente una aproximación de mínimos cuadrados. Así,
el concepto de modelamiento es aplicable donde el objetivo es la mejor aproximación a
una señal, en vez que a una función de transferencia. El tipo de modelamiento ilustrado
en la Fig. 8.2 tiene un amplio rango de aplicaciones incluyendo modelamiento en
ciencias biológicas, sociales y económicas, en sistemas de control adaptativo, en diseño
de filtros digitales y en geofísica.
________
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: LMS
Order of the FIR filter: 2
Stability factor (mu): 1e-6
Initial weights vector: w1 = 0.052
w2 =-0.020
Noise reference input: 50 Hz cosinewave
Cancelación de interferencia
Un locutor está hablando en un contexto de construcción, dond el ruido acústico es tan
fuerte que, cuando el levantado por su teléfono y agregado a sus palabras, la señal
combinada resulta inteligible al oyente. Afortunadamente, un ingeniero en DSP está a
mano para diseñar un cancelador de ruido por mínimos cuadrados, el cual opera
procesándole ruido correlacionado levantado por un micrófono en el mismo contexto. El
cancelador de ruido trabaja por sustracción del ruido correlacionado procesado, gk,
desde la señal combinada, sk,+ nk,.
Figura 8.16 – Cancelación de interferencia por mínimos cuadrados. Ruido fuerte es agregado a la voz del
locutor. Usando una versión correlacionada del ruido sin la palabra, el filtro de cancelación 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.
Figura 8.17 – Señal de palabra, s(t), y ruido, n(t), con espectro densidad de potencia, para el ejemplo de
cancelación de interferencia. La señal en este caso es de alrededor de 20 dB por debajo del nivel de ruido.
Una muestra de 1 segundo de la señal de palabra, s(t) se muestra a la izquierda junto con
la densidad espectral de potencia de la señal entera. El ruido de construcción, 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 señal combinada, s(t)+n(t), para mejorar la relación señal-a-ruido
(SNR) puede ser posible para algún grado pero resultaría también en pérdida de algo de
la señal. Si s(t) y n(t) son independientes, la configuración en la Fig. 8.16 sería la mejor
elección para mejorar la SNR.
Figura 8.18 – Un segmento de señal más ruido, ilustrando una pobre SNR.
Figura 8.20 – Mínimo TSE vs. Número de pesos (N) en el ejemplo de cancelación de interferencia,
indicando que la SNR crece sólo ligeramente a medida que N crece más allá de 4 ó 5.
n1 2 .. 1024 y1 0
xn1 0.2 xn11 yn11
yn1
2
( i 1) 2
i 1 .. 1024 xi sin 2 π N 1024
1024
f ( t) sin ( 2 π 2 t) t 0 , 0.01 .. 2
1
0.998
0.5
f ( t)
0 0.1 0.2 0.3 0.4
0.5
0.998
1
0 t 0.5
N
1
Pm
N � xk 0.5
2
k1
0.5
T tiempo de muestreo
N
N T
1 2
f ( t) dt 0.5
N T 0