Documente Academic
Documente Profesional
Documente Cultură
Escuela de Ingenieras El
ectrica, Electr
onica y de Telecomunicaciones
Introducci
on
El objetivo de este taller es poner en practica algunos conceptos del modulo
Procesamiento digital de se
nales continuas. Especficamente, vamos a poner en
pr
actica los conceptos de cuantizacion y sus efectos, y de dise
no de filtros digitales para el procesamiento de se
nales continuas. Este taller requiere un paquete
de archivos, taller5.zip, que se puede descargar desde el portal del curso.
Los archivos en este paquete le permitiran realizar el taller y verificar sus resultados. En la tabla 1, puede encontrar un resumen de los archivos contenidos en
el paquete.
Archivo
energy.m
digitize.m
snr.m
getwindow.m
getlength.m
getfilter.m
ecg.mat(*)
check.m(*)
answers.mat(*)
Descripcion
Energy of a signal
Digitize a signal by quantization
Signal to noise ratio
Select function for windowing
Select length of windowing function
Impulse response of FIR filter
Se
nal ECG para filtrado
Funcion para verificar la solucion de los ejercicios
Archivo para verificar solucion de los ejercicios
1.
Energa
X
E=
|x(n)|2
(1)
n=
Ejercicio
Modifique el archivo energy.m para que permita el calculo de la energa de
una se
nal. La funci
on deber
a tener una entrada y una salida. La entrada x es un
vector correspondiente a una secuencia discreta y la salida E es un escalar con
la energa de dicha secuencia. Una vez la funcion sea debidamente modificada y
editada, esta podr
a invocarse en Octave como:
E = energy(x);
2.
Efectos de la cuantizaci
on
La cuantizaci
on es el proceso que tiene lugar cuando una secuencia discreta
es digitalizada para su representacion en un sistema de procesamiento digital.
Usando la notaci
on de operador, este proceso se puede representar como:
xQ (n) = Q{x(n)},
(2)
(3)
(4)
N 1
Para minimizar el impacto del proceso de cuantizacion en la digitalizacion de
una se
nal, el conversor AD se dise
na de tal manera que su rango dinamico coincida con el rango de la se
nal de entrada, tal que | max{x(n)} mn{x(n)}|.
=
2.1.
Cuantizaci
on uniforme
(5)
3 bits
16 bits
Q{x(n)}
x(n)
Q{x(n)}
x(n)
Q{x(n)}
1
1
0
x(n)
(a)
(b)
(c)
Figura 1: Cuantizaci
on uniforme por redondeo. (a) Relacion entrada-salida. (b)
Cuantizaci
on de una se
nal sinusoidal usando un conversor de 3 bits. (b) Cuantizaci
on de una se
nal sinusoidal usando un coversor de 16 bits
Ejercicio
Modifique el archivo digitize.m para que permita la digitalizacion de una
secuencia discreta mediante cuantizacion por redondeo. La funcion tendra dos
entradas y una salida. La primera entrada, x, corresponde a un vector con una
secuencia discreta. La segunda entrada, B, corresponde al n
umero de bits del
sistema de representaci
on. La salida, xQ, correspondera a la version cuantizada
de la entrada, mediante cuantizacion uniforme por redondeo. Ajuste el rango
din
amico del cuantizador de tal forma que coincida con el rango de la secuencia
de entrada. Los niveles de cuantizacion se deben determinar seg
un 5. Una vez la
funci
on sea correctamente editada y modificada, esta podra invocarse en Octave
como:
xQ = digitize(x);
Para verificar que la funcion digitize ha sido editada correctamente, utilice la funci
on check:
check('digitize');
2.2.
Ruido de cuantizaci
on
(6)
(8)
3.
Filtrado
El dise
no de filtros FIR mediante el metodo del enventanda (windowing) es
bastante simple y se puede dividir en tres pasos:
1. A partir de las frecuencias de corte deseadas, determinar la respuesta al
impulso h(n) del filtro ideal correspondiente
2. Seg
un las especificaciones de rizado, banda de transicion y atenuacion
deseados, seleccionar la ventana apropiada y determinar su longitud L
3. Multiplicar la ventana del paso anterior con h(n M ), donde M = (L
1)/2
Como resultado de seguir los pasos anteriores, se obtiene la respuesta al
impulso de un filtro FIR. A manera de ilustracion, en este taller vamos a realizar
el dise
no de un filtro FIR pasabajas.
1 Nota:
SNR
pdf()
200
Experimental
S = 6.02B + 1.76
150
100
50
10
12
14
16
(a)
(b)
Figura 2: Relaci
on se
nal a ruido (SNR). (a) Funcion de distribucion de probabiliadad (PDF) del error de cuantizacion para un cuantificador de 16 bits. (b)
Variaci
on del SNR en funci
on del n
umero de bits. La curva teorica corresponde
a (8)
3.1.
Enventanado
(10)
donde M es un n
umero entero que corresponde a un desplazamiento y v(n) es
una ventana de truncamiento. En este taller, vamos a considerar 5 ventanas:
rectangular, Bartlett, Hanning, Hamming y Blackmann. La secuencia de datos
correspondiente a estas cuantro ventanas se puede generar en Octave mediante
las funciones bartlett, hanning, hamming y blackman, respectivamente.
La longitud L de la ventana se selecciona de tal manera que L = 2M + 1.
Por ejemplo, para generar una ventana tipo Blackman de longitud L = 51, se
ejecutan los comandos:
L = 51;
v = blackman(51);
Ejercicio
Modifique la funci
on getfilter para obtener la respuesta al impulso de
un filtro pasabajas realizable mediante la tecnica del enventanado. La funcion
tiene cuatro entradas y una salida. La primera entrada window corresponde
a una cadena de caracteres con el nombre de la ventana a utilizar. Dicha cadena de caracteres puede ser rectangular, bartlett, hanning,
hamming o blackman. La segunda entrada, L, corresponde a la longitud
de la ventana. La tercera entrada, fc, es la frecuencia de corte en Hertz del
filtro. Esta frecuencia corresponde a la frecuencia deseada en tiempo continuo y
por lo tanto debe ser convertida a frecuencia discreta. Finalmente, la cuarta entrada fs corresponde a la frecuencia de muestreo del sistema discreto. La salida
h corresponde a la respuesta al impulso del filtro pasabajas realizable. Una vez
h(n)
|H()|
25
(a)
(b)
Figura 3: Dise
no de filtros por enventanado. (a) Respuesta al impulso. (b) Respuesta en frecuencia
la funci
on sea correctamente editada y modificada, esta se debera poder invocar
en Octave como:
fs = 200;
%Sampling frequency (200 Hz)
fc = 20;
%Cutoff frequency (20Hz)
L = 51;
%Filter length = 51 samples.
h = getfilter('hanning', L, fc, fs);
3.2.
El dise
no de filtros mediante la tecnica de envantanado se reduce a seleccionar
el tipo de ventana y longitud apropiadas para obtener unas especificaciones
dadas. Especficamente, son tres las especificaciones que se tienen en cuenta al
momento de dise
nar un filtro. Las siguientes definiciones hacen referencia a la
figura 4:
Rizado en banda de paso. Se mide en decibelios y se define en funcion
del par
ametro p como:
1 + p
Ap = 20 log
(11)
1 p
Atenuaci
on. Se mide en decibelios y esta en funcion del rizado en la
banda de atenuaci
on:
1
As = 20 log
(12)
s
6
1+ p
1 p
As
s
rizado (p = s )
0.09
0.05
0.0063
0.0022
0.0022
Transicion
1.8/L
6.1/L
6.2/L
6.6/L
11/L
Atenuacion (As )
21
26
44
53
74
Tension (mV)
0
10
tiempo (s)
tiempo (s)
tiempo (s)
(a)
(b)
(c)
Figura 5: Eliminaci
on de ruido. (a) Se
nal ECG original. (b) Se
nal ECG contaminada con ruido. (c) Se
nal ECG filtrada
Ejercicio opcional
En este ejercicio aplicaremos las funciones desarrolladas anteriormente para
filtrar una se
nal electrocardiografica (ECG) contaminada con ruido. La se
nal en
cuesti
on corresponde a una se
nal ECG de ritmo normal muestreada a 128 Hz.
Para detalles sobre esta se
nal, visitar Physionet2 .
La se
nal original (5a), ha sido contaminada con ruido de alta frecuencia
dando como resultado la se
nal mostrada en la figura 5b. Con el objetivo de
aplicar un filtro de eliminacion de ruido, se dise
nara un filtro pasabajas de
frecuencia de corte 50 Hz. Con este proposito, digite los siguientes comandos:
load ecg
%Load signals
figure
subplot(1,3,1), plot(t, x) %plot original signal
xn = x + 3*n;
%add noise
subplot(1,3,2), plot(t, xn) %plot Noisy signal
Ap = 0.1;
%ripple
As = 50;
%atenuation
fs = 128;
%sampling frequency
fc = 50;
%cut-off frequency
df = 5;
%transition band
w = getwindow(Ap, As);
%get tappering window
L = getlength(w, df, fs);
%get filter length
h = getfilter(w, L, fc, fs); %get impulse response
xf = filter(h, 1, xn);
%filter noisy signal
subplot(1,3,3), plot(t, xf) %plot filtered signal
Entrega
Para entregar la soluci
on de los ejercicios, comprima los archivos que edito en
un archivo de nombre solucion5.zip. Dicho archivo comprimido s
olo debe
tener los archivos mostrados en la tabla 3, y que han sido editados por usted
durante la realizaci
on de este taller. El archivo comprimido debe ser subido en
el portal del curso en el lugar correspondiente y antes de la fecha lmite.
2 Goldberger AL, Amaral LAN, Glass L, Hausdorff JM, Ivanov PCh, Mark RG, Mietus JE,
Moody GB, Peng C-K, Stanley HE. PhysioBank, PhysioToolkit, and PhysioNet: Components
of a New Research Resource for Complex Physiologic Signals. Circulation 101(23):e215-e220
Circulation Electronic Pages. 2000 (June 13)
No.
1
2
3
4
5
6
Archivo
energy.m
digitize.m
snr.m
getwindow.m
getlength.m
getfilter.m
puntos
8
8
10
10
12
12
10