Vous êtes sur la page 1sur 7

Taller 3.

An
alisis transformado

Introducci
on
El objetivo de este taller es poner en practica algunos conceptos del modulo
An
alisis transformado I del curso. Especficamente, vamos a poner en practica
los conceptos de respuesta en frecuencia, generacion de tonos DTMF y sntesis
de se
nales a partir de su espectro. Este taller requiere un paquete de archivos,
taller3.zip, que se puede descargar desde el portal del curso. Los archivos
en este paquete le permitir
an realizar el taller y verificar sus resultados. En la
tabla 1, puede encontrar un resumen de los archivos contenidos en el paquete.
Archivo
response1.m
synthez1.m
process1.m
synthez2.m
process2.m
dtmf.m
check.m(*)
answers.mat(*)

Descripcion
Respuesta en frecuencia del sistema reverberacion
Sintetizar se
nal sinusoidal
Procesar con el sistema reverberacion
Sintetizar superposici
on de sinusoidales
Procesar con un sistema arbitrario
Generaci
on de secuencia de tonos DTMF
Funcion para verificar la solucion de los ejercicios
Archivo para verificar solucion de los ejercicios

Tabla 1: Archivos en el paquete taller3.zip. Los archivos marcados con (*)


no deben ser modificados por el estudiante y son suministrados para verificar la
soluci
on de los ejercicios
Importante: Una vez descargado el paquete de archivos, descomprmalos
e inicie una sesi
on de Octave cuyo directorio de trabajo sea la carpeta con los
archivos descomprimidos. Para esto, puede usar el comando cd de octave. Por
ejemplo, si los archivos descomprimidos en su PC se encuentran en la direccion
C:\Documents\taller3, entonces al iniciar Octave debe escribir el comando:
cd('C:\Documents\taller3')

1.

Respuesta en frecuencia

La respuesta en frecuencia de un sistema permite determinar facilmente la


respuesta de dicho sistema a una entrada sinusoidal pura. Especficamente, si
la entrada a un sistema es una se
nal x(n) = cos(0 n), entonces la salida del
sistema viene dada por:
y(n) = |H(0 )| cos(n + H(0 )),

(1)

donde |H(0 )| y H(0 ) son la magnitud y el angulo de la respuesta en frecuencia del sistema evaluados en = 0 , respectivamente.

A su vez, la respuesta en frecuencia de un sistema se puede determinar como


la transformada de Fourier de la respuesta al impulso:

H() =

h(n)ejn

(2)

n=

1.1.

Sistema reverberaci
on

A partir de la ecuaci
on en diferencias del sistema de reverberacion de primer
orden, y(n) = x(n)y(n1), es posible deterimar recursivamente la respuesta
al impulso:
h(n) = n u(n)

(3)

Por lo tanto, reemplazando (3) en (2), tenemos que la respuesta en frecuencia


del sistema de reverberaci
on sera:
H() =
=

X
n=0

n ejn
ej

n

(4)
(5)

n=0

P
La sumatoria en (5) es una serie geometrica de la forma n=0 rn , con r =
ej . Dicha serie geometrica converge a 1/(1 r), siempre y cuando |r| < 1.
Por lo tanto, imponiendo la restriccion que | < 1|,(5) se simplifica a:
H() =

1
1 ej

(6)

Ejercicio 1
Modifique el archivo response1.m que permita evaluar la respuesta en
frecuencia del sistema reverberacion de primer orden en un valor de frecuencia
determinado. Asuma que el par
ametro en (6) es = 0.5. La entrada
debe ser un valor de frecuencia omega0 (rad/s), que corresponde a la frecuencia a la que se quiere evaluar dicha respuesta en frecuencia; y la salida debe
ser un coeficiente complejo H. La magnitud de dicho coeficiente debe corresponder a |H(0 )| y el
angulo debe corresponder a H(0 ). En Octave, la funcion
debera invocarse como:
omega0 = pi/2;
H = response1(omega0);

La respuesta debe corresponder a evaluar (6) en = 0 .


Para verificar que la funcion response1 ha sido editada correctamente,
utilice la funci
on check:
check('response1');

Si el ejercicio ha sido completado exitosamente, en la pantalla se muestra el


mensaje Function response seems to be OK! :) y se genera la figura
1. Esta funci
on permitir
a determinar el escalado y desfase que sufre una se
nal
sinusoidal pura al ser procesada por el sistema.

|H()|

|()|

1
|H(0)|
(0)
pi

pi

pi

(a)

pi

(b)

Figura 1: Respuesta en frecuencia del sistema reverberacion de primer orden a


una entrada sinusoidal de frecuencia 0 = /2. (a) Respuesta en magnitud (b)
Respuesta en fase
Ejercicio 2
Modifique el archivo synthez1.m para que permita generar una secuencia
sinusoidal pura, x(n) = A cos(0 n + ). La funcion debe tener tres entradas. La
primera entrada debe ser un coeficiente complejo X. La magnitud de X corresponde a la amplitud de la sinusoidal, A, y su angulo corresponde a la fase de la
sinusoidal, . La segunda entrada, omega0 debe corresponder a la frecuencia
(en radianes por segundo) de la sinusoidal. La tercera entrada, N, corresponde
al n
umero de puntos de la sinusoidal. En este punto, puede encontrar u
tiles las
funciones abs y angle de Octave. Por ejemplo, para generar 400 puntos de la
sinusoidal x(n) = 0.5 cos(2n/200 + /4), evaluada en n = 0, 1, 2, , 399, la
funci
on deber
a invocarse como:
omega0 = 2*pi/200; %Frecuencia de la sinusoidal
N = 400;
%Numero de puntos
X = 0.5*exp(j*0.25*pi)
x = sinthes(X, omega0, N);

Para verificar que la funcion synthez1 ha sido editada correctamente, utilice la funci
on check:
check('synthez1');

Si el ejercicio ha sido completado exitosamente, en la pantalla se muestra el


mensaje Function synthez1 seems to be OK! :).
Ejercicio 3
Editar el archivo process1 de tal forma que permita calcular la respuesta del sistema reverberaci
on de primer orden a una entrada sinusoidal pura.
Asuma que el par
ametro en (6) es = 0.5. El sistema debe tener tres
entradas. La primera X, es un coeficiente complejo con la amplitud y la fase de
la sinusoidal pura (como en el ejercicio anterior). La segunda, omega0, corresponde a la frecuencia (radianes por segundo) de la se
nal de entrada. La tercera,
N, corresponde al n
umero de puntos que debe tener la secuencia de salida del
sistema. Por ejemplo, en Octave, para generar 100 puntos de la respuesta del
sistema reverberaci
on de primer order a la sinusoidal x(n) = cos( 2n
20 + /2), la
funci
on deber
a invocarse como:
omega0 = 2*pi/20;
N = 100;

%Frecuencia de la sinusoidal
%Numero de puntos

Input
Output

Figura 2: Entrada y salida del sistema reverberacion de primer orden. Las muestras de cada secuencia se han unido con lineas rectas para cuestiones de visualizaci
on.

X = exp(j*0.5*pi)
y = process1(X, omega0, N);

Para verificar que la funcion process1 ha sido editada correctamente, utilice la funci
on check.
check('process1');

Si el ejercicio ha sido completado exitosamente, en la pantalla se muestra


el mensaje Function process1 seems to be OK! :) y se generara una
gr
afica como la mostrada en la figura 2. En esta figura se muestran la entrada
y la salida del sistema reverberacion de primer orden a una entrada sinusoidal
pura.

1.2.

Filtrado en el dominio de la frecuencia

Por la propiedad de convolucion, el filtrado de una se


nal por un sistema LTI
puede interpretarse como la multiplicacion, punto a punto, de la respuesta en
frecuencia del sistema, H() con el espectro de la se
nal, X():
Y () = H()X(),

(7)

donde Y () es la transformada de Fourier de la se


nal de salida del sistema.
Ejercicio 1
Bas
andose en el archivo synthez1, modifique el archivo synthez2 de tal
forma que permita generar una se
nal discreta, x(n), que es la superposicion de
M sinusoidales puras:
x(n) =

M
1
X

Am cos(m n + m ),

(8)

m=0

donde Am , m y m son la magnitud, frecuencia y fase de la m-esima componente de la se


nal, respectivamente.
Las entradas de la funci
on deben ser tres. La primera entrada, es un vector X
de coeficientes complejos, de dimensiones 1 M , donde cada coeficiente codifica
la magnitud y fase de una componente sinusoidal. La segunda entrada, omega
es un vector de dimensiones 1 M con las frecuencias (rad/s) correspondientes
a cada una de las componentes sinusoidales de la sen
nal de entrada. La tercera

x(n)

tiempo (s)

Figura 3: Superposici
on de sinusoidales. Esta secuencia corresponde a a superposicion de cuatro arm
onicos de la frecuencia f0 = 440 Hz y simula la nota A4
en un piano
entrada, N, corresponde al n
umero de puntos de la se
nal a generar. Por ejemplo,
si se quieren generar las 400 primeras muestras de la secuencia:
x(n) = 0.5 cos(2n/50 + /50) + 0.25 cos(2n/100)

(9)

En Octave debera escribir los comandos:


N = 400;
X = [0.5*exp(j*pi/50), 0.25];
omega = [2*pi/50, 2*pi/100];
x = sinthes2(X, omega, N);

Para verificar que la funcion synthez2 ha sido editada correctamente, utilice la funci
on check .
check('synthez2');

Si el ejercicio ha sido completado exitosamente, en la patalla se muestra el


mensaje Function synthez2 seems to be OK! :) y se genera la grafica
de la figura 3. Esta figura corresponde a los primeros 25 ms de la nota A4 generada sinteticamente para simular un piano. En el directorio actual de trabajo,
se generar
a un archivo de audio piano-A4.wav con la nota generada.
Ejercicio 2
Modifique el archivo process2 para permitir el filtrado de una superposici
on de sinusoidales, por un sistema arbitrario descrito por una CCDE1 de la
forma:
M
1
X

am y(n m) =

m=0

N
1
X

bm x(n m),

(10)

m=0

donde am y bm son coeficientes reales y constantes.


Para solucionar este ejercicio, puede encontrar u
til la funcion freqz de
Octave, la cual permite evaluar la respuesta en frecuencia de un sistema en
determinados valores de frecuencia a partir de los coeficientes de la ecuacion en
diferencias.
La funci
on process2 debera tener 5 entradas:
1 Ecuaci
on

lineal en diferencias con coeficientes constantes

Figura 4: Tonos DTMF. Cada tecla se codifica con la combinacion de dos tonos
1. B, un vector con los coeficientes de la variable independiente, x(n), de la
ecuaci
on en diferencias (10), tal que B = [b0 , b1 , , bN 1 ].
2. A, un vector con los coeficientes de y(n) en (10), tal que A = [a0 , a1 , , aM 1 ].
3. X, un vector de coeficientes complejos que codifican la magnitud y fase de
las diferentes componentes sinusoidales de la entrada.
4. omega, un vector con la frecuencias de las componentes de la se
nal de
entrada
5. N, un entero con el n
umero de puntos de la se
nal de salida
En Octave, la funci
on debera invocarse como:
process2(B, A, X, omega, N);

Para verificar que la funcion process2 ha sido editada correctamente, utilice la funci
on check:
check('process2');

Si el ejercicio ha sido completado exitosamente, en la pantalla se muestra


el mensaje The function process2 seems to be OK! :). En el directoria actual de trabajo, se generara el archivo de audio pianoA4f.wav que
corresponde a la misma nota del punto anterior, pero filtrada por un sistema
que aten
un las bajas frecuencias y acent
ua las altas.

2.

Tonos DTMF (Dual tone multi-frecuency )

Un tono DTMF, codifica una tecla de un telefono y se constituye a partir


de la combinaci
on de dos tonos sinusoidales puros:
x(t) = sin(2f0 t) + sin(2f1 t)

(11)

donde las frecuencias f0 y f1 , se seleccionan seg


un la tecla correspondiente, tal
como se ilustra en la figura 4.

Ejercicio
Edite el archivo dtmf.m para que permita generar un tono DTMF de duraci
on 1 segundo. La funcion tiene dos entradas. La primera, key, es una
cadena de caracteres con la tecla a la que se debe generar el codigo. La segunda,
fs, es la frecuencia de muestreo a la que se debe generar la secuencia discreta
correspondiente x(n) a partir de (11), tal que x(n) = x(t)|t=nT . Por ejemplo,
para generar un segundo de audio de la secuencia correspondiente a la tecla
n
umero 8, la funci
on debe invocarse en Octave como:
key = '8';
fs = 8000;
x = dtmf(key, fs);

En este ejercicio, puede encontrar u


tiles las funciones strcmp y find para
determinar la tecla de entrada. Para verificar el correcto funcionamiento de la
funci
on, utilice check:
check('dtmf');

Si el ejercicio ha sido completado exitosamente, en la pantalla se muestra


el mensaje Function dtmf seems to be OK! :) y en el directorio actual
de trabajo se generar
a un archivo de audio dtmf_tones.wav correspondiente
a la secuencia de n
umeros 2627700.

Entrega
Para entregar la soluci
on de los ejercicios, comprima los archivos que edito en
un archivo de nombre solucion1.zip. Dicho archivo comprimido s
olo debe
tener los archivos mostrados en la tabla 2, 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.
No.
1
2
3
4
5
6

Archivo
response.m
synthez1.m
process1.m
synthez2.m
process2.m
dtmf

puntos
10
10
10
10
10
10

Tabla 2: Lista de archivos a entregar. Los archivos deben comprimirse en un


archivo de nombre solucion1.zip

Vous aimerez peut-être aussi