Sei sulla pagina 1di 38

UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

FACULTAD DE INGENIERA ELECTRNICA, ELCTRICA Y


TELECOMUNICACIONES
LABORATORIO INTRODUCCIN A LAS TELECOMUNICACIONES

ASIGNATURA : INTRODUCCIN A LAS TELECOMUNICACIONES


PROFESOR : SIXTO LLOSA
SEMESTRE : 2015-II

ALUMNO : FELIXGUTIERREZ BILLY MARCOS


CDIGO : 12190096

PRCTICA N3 DISEO DE FILTROS Y ECUALIZADOR DIGITAL

I. OBJETIVO:

Disear filtros de respuesta en frecuencia de audio, y determinar las caractersticas en el


dominio del tiempo y de la frecuencia. Asimismo disear ecualizadores digitales de audio y
frecuencia, usando MATLAB.

II. EQUIPOS Y MATERIALES:

1. MATLAB

2. PC Pentium II-actual.

III. PROCEDIMIENTO:

1. Disee un ecualizador digital usando el comando ELLIP y grafique las ondas en el dominio
del tiempo y su respectiva transformada de Fourier. dibuje el esquema de bloques
correspondiente del ecualizador resultante.

>> Fs=8000;
>> t=(1:8000)/Fs;
>> f1=sin(2*pi*t*500); f2=sin(2*pi*t*1500); f3=sin(2*pi*t*3000); f4=sin(2*pi*t*4000);
>> s=f1+f2+f3+f4;
>> figure(1)
>> plot(t,s)
>> axis([0 0.01 -4 4]);

>> [b,a]=ellip(4,0.1,40,[100 1000]*2/Fs);


>> [H,w]=freqz(b,a,512);
>> figure(2)
>> plot(w*Fs/(2*pi),abs(H));
>> sf1=filter(b,a,s);
>> figure(3)
>> plot(t,sf1);
>> xlabel('Tiempo(seg)');ylabel('FORMA DE ONDA VS. TIEMPO')
>> axis([0 0.01 -4 4]);
>> S1=fft(s,513);
>> SF1=fft(sf1,513);
>> w=(0:255)/256*(Fs/2);
>> figure(4)
>> plot(w,abs([S1(1:256)+SF1(1:256)]));
>> xlabel('FRECUENCIA(Hz)');ylabel('MAG. DE TRANSF. DE FOURIER');

>> [b,a]=ellip(4,0.1,40,[1000 2000]*2/Fs);


>> [H,w]=freqz(b,a,512);
>> figure(5)
>> plot(w*Fs/(2*pi),abs(H));
>> sf2=filter(b,a,s);
>> figure(6)
>> plot(t,sf2);
>> xlabel('Tiempo(seg)');ylabel('FORMA DE ONDA VS. TIEMPO')
>> axis([0 0.01 -4 4]);
>> S2=fft(s,513);
>> SF2=fft(sf2,513);
>> w=(0:255)/256*(Fs/2);
>> figure(7)
>> plot(w,abs([S2(1:256)+SF2(1:256)]));
>> xlabel('FRECUENCIA(Hz)');ylabel('MAG. DE TRANSF. DE FOURIER');

>> [b,a]=ellip(4,0.1,40,[2500 3500]*2/Fs);


>> [H,w]=freqz(b,a,512);
>> figure(8)
>> plot(w*Fs/(2*pi),abs(H));
>> sf3=filter(b,a,s);
>> figure(9)
>> plot(t,sf3);
>> xlabel('Tiempo(seg)');ylabel('FORMA DE ONDA VS. TIEMPO')
>> axis([0 0.01 -4 4]);
>> S3=fft(s,513);
>> SF3=fft(sf3,513);
>> w=(0:255)/256*(Fs/2);
>> figure(10)
>> plot(w,abs([S3(1:256)+SF3(1:256)]));
>> xlabel('FRECUENCIA(Hz)');ylabel('MAG. DE TRANSF. DE FOURIER');

>> [b,a]=ellip(4,0.1,40,[3500 3999]*2/Fs);


>> [H,w]=freqz(b,a,512);
>> figure(11)
>> plot(w*Fs/(2*pi),abs(H));
>> sf4=filter(b,a,s);
>> figure(12)
>> plot(t,sf4);
>> xlabel('Tiempo(seg)');ylabel('FORMA DE ONDA VS. TIEMPO')
>> axis([0 0.01 -4 4]);
>> S4=fft(s,513);
>> SF4=fft(sf4,513);
>> w=(0:255)/256*(Fs/2);
>> figure(13)
>> plot(w,abs([S4(1:256)+SF4(1:256)]));
>> xlabel('FRECUENCIA(Hz)');ylabel('MAG. DE TRANSF. DE FOURIER');

>> zf5= 0.8*sf1 + 0.5*sf2 + 0.2*sf3 + 0.4*sf4;


>> figure(14);
>> plot(t,zf5);
>> xlabel('tiempo(seg)');ylabel('FORMA DE ONDA VS. TIEMPO')
>> axis([0 0.01 -4 4]);
>> S5= fft(s,513);
>> ZF5=fft(zf5,513);
>> w=(0:255)/256*(Fs/2);
>> figure(15)
>> plot(w,abs([S5(1:256)+ZF5(1:256)]));
>> xlabel('FRECUENCIA(Hz)'), ylabel('MAG. DE TRANSF. DE FOURIER')
2. Verificar la respuesta en frecuencia de otros filtros: modificar sus variables como ancho de banda
amplitud y atenuacin de los 4 filtros.

>> f=[0 .4 .4 .6 .6 1];


>> H=[0 0 1 1 0 0];
>> fs=1000;% assumed sampling rate (velocidad de muestreo asumido)
>> fhz=f*fs/2;
>> figure(1)
>> plot(fhz,H), title('Desired Frequency Response') % (Desired Frequency Response=Respuesta de
frecuencia deseada)
>> xlabel('Frequency (Hz)'), ylabel('Magnitude')

>> N=8;
>> [Bh,Ah]=yulewalk(N,f,H);
>> n=256;
>> hh=freqz(Bh,Ah,n);
>> hy=abs(hh);
>> ff=fs/(2*n)*(0:n-1);
>> figure(2)
>> plot(fhz,H,ff,hy)
>> title('Actual vs Desired Frequency Response')
>> xlabel('Frequency (Hz)'), ylabel('Magnitude')

>> N=4; passband=[.4 .6]; ripple=1;


>> [Bb,Ab]=butter(N,passband);
>> [Bc,Ac]=cheby1(N,ripple,passband);
>> h=[abs(hh) abs(freqz(Bb,Ab,n)) abs(freqz(Bc,Ac,n))];
>> figure(3)
>> plot(ff,h)
>> title('Yule Walk, Butterworth and Chbyshev filters')
>> figure(4)
>> plot(ff(2:n),20*log10(h(2:n)))
>> title('Yule Walk, Butterworth and Chbyshev filters')
>> xlabel('Frequency (Hz)'), ylabel('Magnitude in dB')

3. De acuerdo al ejercicio anterior (1), disee un ecualizador digital de cuatro canales, usando los filtros
IIR, si la seal de entrada es f=sin(2*pi*t*500)+ sin(2*pi*t*1500)+ sin(2*pi*t*2500)+ sin(2*pi*t*3500).
Grafique la onda resultante en cada etapa del ecualizador en el dominio del tiempo y en el dominio de la
frecuencia.
>> %Introduciendo la tasa de muestreo
>> Fs=8000; %FMAX=3500Hz
>> t=(1:8000)/Fs;

>> %Se define la funcion y se plotea su grafica


>> f1=sin(2*pi*t*500); f2=sin(2*pi*t*1500); f3=sin(2*pi*t*2500); f4=sin(2*pi*t*3500);
>> s=f1+f2+f3+f4;
>> figure(1)
>> plot(t,s)
>> axis([0 0.1 -4 4]);
>> title('SEAL DE ENTRADA VS TIEMPO')
>> xlabel('tiempo(seg)'), ylabel('f(t)')

>> %Ingresando los parametros del filtro


>> N=4; %Orden del filtro
>> Rp=0.1; %rizado en la banda de paso en DB
>> Rs=40; %rizado en la banda de rechazo en DB
>> %las frecuencias de corte se especificaran para cada filtro.

>> %Filtro f1
>> BW1=[100 1000]*2/Fs; %ancho de banda normalizado respecto a la freq de Nyquist
>> [b,a]=ellip(N,Rp,Rs,BW1); %Filtro Eliptico
>> [H,w]=freqz(b,a,512); %respuesta en frecuencia del filtro
>> H=H*0.3;%ganancia del filtro
>> figure(2)
>> plot(w*Fs/(2*pi),abs(H));
>> title('RESPUESTA EN FRECUENCIA DEL FILTRO 1')
>> xlabel('FRECUENCIA(Hz)');ylabel('GANANCIA');
>> sf1=filter(b,a,s); % Filtra el contenido de "s" con lo descrito por los vectores b y a
>> figure(3)
>> plot(t,sf1);
>> xlabel('Tiempo(seg)');ylabel('FORMA DE ONDA VS. TIEMPO')
>> axis([0 0.01 -4 4]);
>> S1=fft(s,513);
>> SF1=fft(sf1,513);
>> w=(0:255)/256*(Fs/2);
>> figure(4)
>> plot(w,abs([S1(1:256)+SF1(1:256)]));
>> xlabel('FRECUENCIA(Hz)');ylabel('MAG. DE TRANSF. DE FOURIER');

>> %Filtro f2
>> BW2=[1000 2000]*2/Fs;
>> [b,a]=ellip(N,Rp,Rs,BW2);
>> [H,w]=freqz(b,a,512);
>> H=H*1.5;
>> figure(5)
>> plot(w*Fs/(2*pi),abs(H));
>> title('RESPUESTA EN FRECUENCIA DEL FILTRO 2')
>> xlabel('FRECUENCIA(Hz)');ylabel('GANANCIA');
>> sf2=filter(b,a,s);
>> figure(6)
>> plot(t,sf2);
>> xlabel('Tiempo(seg)');ylabel('FORMA DE ONDA VS. TIEMPO')
>> axis([0 0.01 -4 4]);
>> S2=fft(s,513);
>> SF2=fft(sf2,513);
>> w=(0:255)/256*(Fs/2);
>> figure(7)
>> plot(w,abs([S2(1:256)+SF2(1:256)]));
>> xlabel('FRECUENCIA(Hz)');ylabel('MAG. DE TRANSF. DE FOURIER');

>> %Filtro f3
>> BW3=[2000 3000]*2/Fs;
>> [b,a]=ellip(N,Rp,Rs,BW3);
>> [H,w]=freqz(b,a,512);
>> H=H*0.1;
>> figure(8)
>> plot(w*Fs/(2*pi),abs(H));
>> title('RESPUESTA EN FRECUENCIA DEL FILTRO 3')
>> xlabel('FRECUENCIA(Hz)');ylabel('GANANCIA');
>> sf3=filter(b,a,s);
>> figure(9)
>> plot(t,sf3);
>> xlabel('Tiempo(seg)');ylabel('FORMA DE ONDA VS. TIEMPO')
>> axis([0 0.01 -4 4]);
>> S3=fft(s,513);
>> SF3=fft(sf3,513);
>> w=(0:255)/256*(Fs/2);
>> figure(10)
>> plot(w,abs([S3(1:256)+SF3(1:256)]));
>> xlabel('FRECUENCIA(Hz)');ylabel('MAG. DE TRANSF. DE FOURIER');

>> %Filtro f4
>> BW4=[3000 3999]*2/Fs;
>> [b,a]=ellip(N,Rp,Rs,BW4);
>> [H,w]=freqz(b,a,512);
>> H=H*0.8;
>> figure(11)
>> plot(w*Fs/(2*pi),abs(H));
>> title('RESPUESTA EN FRECUENCIA DEL FILTRO 4')
>> xlabel('FRECUENCIA(Hz)');ylabel('GANANCIA');
>> sf4=filter(b,a,s);
>> figure(12)
>> plot(t,sf4);
>> xlabel('Tiempo(seg)');ylabel('FORMA DE ONDA VS. TIEMPO')
>> axis([0 0.01 -4 4]);
>> S4=fft(s,513);
>> SF4=fft(sf4,513);
>> w=(0:255)/256*(Fs/2);
>> figure(13)
>> plot(w,abs([S4(1:256)+SF4(1:256)]));
>> xlabel('FRECUENCIA(Hz)');ylabel('MAG. DE TRANSF. DE FOURIER');

>> %ECUALIZADOR
>> zf5= 0.3*sf1 + 1.5*sf2 + 0.1*sf3 + 0.8*sf4;
>> figure(14);
>> plot(t,zf5);
>> xlabel('tiempo(seg)');ylabel('FORMA DE ONDA VS. TIEMPO')
>> axis([0 0.01 -4 4]);
>> S5= fft(s,513);
>> ZF5=fft(zf5,513);
>> w=(0:255)/256*(Fs/2);
>> figure(15)
>> plot(w,abs([S5(1:256)+ZF5(1:256)]));
>> xlabel('FRECUENCIA(Hz)'), ylabel('MAG. DE TRANSF. DE FOURIER')
CUESTIONARIO FINAL

1. Explique en detalle la transformada discreta de Fourier DFT. Desarrolle 5 ejemplos


de la transformada de funciones discretas y su aplicacin en el procesamiento de seales.
Transforma una funcin matemtica en otra, obteniendo una representacin en el dominio
de la frecuencia, siendo la funcin original una funcin en el dominio del tiempo. Pero la DFT
requiere que la funcin de entrada sea una secuencia discreta y de duracin finita, que se suelen
generar a partir del muestreo de una funcin continua (ejemplo: la voz humana). Al contrario
que la transformada de Fourier en tiempo discreto (DTFT), nicamente evala suficientes
componentes frecuenciales para reconstruir el segmento finito que se analiza.

Usar la DFT implica que el segmento que se analiza es un nico perodo de una seal
peridica que se extiende de forma infinita; si esto no se cumple, se debe usar una ventana para
reducir los espurios del espectro. Por la misma razn, la DFT inversa (IDFT) no puede
reproducir el dominio del tiempo completo, a no ser que la entrada sea peridica
indefinidamente. Por eso, se dice que la DFT es una transformada de Fourier para anlisis de
seales de tiempo discreto y dominio finito. Las funciones sinusoidales base que surgen de la
descomposicin tienen las mismas propiedades.

La entrada de la DFT es una secuencia finita de nmeros reales o complejos, lo cual es


ideal para procesar informacin almacenada en soportes digitales. En particular, la DFT se
utiliza comnmente en procesado digital de seales y otros campos relacionados dedicados a
analizar las frecuencias que contiene una seal muestreada, para resolver ecuaciones
diferenciales parciales y llevar a cabo operaciones como convoluciones o multiplicaciones de
enteros largos. Un factor muy importante para este tipo de aplicaciones es que la DFT puede ser
calculada de forma eficiente en la prctica utilizando el algoritmo de la transformada rpida de
Fourier o FFT (Fast Fourier Transform).

Los algoritmos FFT se utilizan tan habitualmente para calcular DFTs que el trmino
"FFT" muchas veces se utiliza en lugar de "DFT" en lenguaje coloquial. Formalmente, hay una
diferencia clara: "DFT" hace alusin a una transformacin o funcin matemtica,
independientemente de cmo se calcule, mientras que "FFT" se refiere a una familia especfica
de algoritmos para calcular DFTs.

Definicin.- La secuencia de N nmeros complejos x0,..., xN1 se transforma en la


secuencia de N nmeros complejos X0,..., XN1 mediante la DFT con la frmula:
N 1 2 i
kn
X k = xn e N
k=0, , N1
n=0

2 i
Donde i es la unidad imaginaria y e N es la N-sima raz de la unidad. (Esta
expresin se puede escribir tambin en trminos de una matriz DFT; cuando se escala de forma
apropiada se convierte en una matriz unitaria y X k puede entonces ser interpretado como los
coeficientes de x en una base ortonormal). La transformada se denota a veces por el smbolo
F , igual que en X =F { x } o F ( x ) o F x . La transformada inversa de Fourier
discreta (IDFT) viene dada por:
N 1 2 i
1 kn
x n=
N
Xk e N
n=0, , N 1
k=0

Una descripcin simple de estas ecuaciones es que los nmeros complejos X k


representan la amplitud y fase de diferentes componentes sinusoidales de la seal de entrada
x n . La DFT calcula X k a partir de x n , mientras que la IDFT muestra cmo calcular
2 i
kn
xn como la suma de componentes sinusoidales ( 1/ N ) X k e N con una frecuencia de
k/ N ciclos por muestra. Escribiendo las ecuaciones de este modo, estamos haciendo un uso
extensivo de la frmula de Euler para expresar sinusoides en trminos de exponentes complejas,
lo cual es mucho ms sencillo de manipular. Del mismo modo, escribiendo X k en forma
polar, obtenemos una sinudoide de amplitud A k / N y fase k a partir del mdulo y
argumento complejos de X k , respectivamente:

2 2
A k =|X k|= ( X k ) + ( X k ) k =arg ( X k ) =atan2 ( ( X k ) , ( X k ) )

Donde atan2 es la forma bi-argumental de la funcin arcotangente. Ntese que el factor


de normalizacin que multiplica a la DFT y la IDFT (que son 1 y 1/N) y los signos de los
exponentes se colocan meramente por convenio, y varan dependiendo de la aplicacin. El nico
requisito para este convenio es que la DFT y la IDFT tengan exponentes de signo opuesto y que
el producto de sus factores de normalizacin sea 1/N. Una normalizacin de 1/ N para
ambas DFT y IDFT hace las transformadas unitarias, lo cual tiene ciertas ventajas tericas, pero
suele ser ms prctico a la hora de efectuar operaciones numricas con el ordenador efectuar el
escalado de una sola vez (y un escalado unitario suele ser conveniente en otras ocasiones).

El convenio del signo negativo en el exponente suele ser adecuado porque significa que
Xk es la amplitud de una "frecuencia positiva" 2 k / N . De forma equivalente, la DFT
se suele considerar como un filtro adaptado: cuando se busca una frecuencia de +1, se correla la
seal de entrada con una frecuencia de 1. En adelante, los trminos "secuencia" y "vector" se
considerarn equivalentes.

EJEMPLOS.-

clc;clear all;close all


n=-1:8;
no=0;
a=input('Difgite el valor de alfa...');
un1=(n>=no);
xn=un1.*a.^n;%seal x[n]=a^n*u[n]
subplot(2,1,1)
stem(n,xn)%grafica de la seal x(n)
title('seal x[n]')
grid
%calculo de la transformada de fourier en tiempo discreto
syms k w
tdf=symsum((a*exp(-i*w))^k,k,0,inf);
%grafica de la transformada de fourier
w=-10:0.01:10;
tdfp=-1./(a.*exp(-i.*w)-1);
subplot(2,1,2)
plot(w,abs(tdfp))
title('transformada x[n]')
Obtener la FFT de una seal senoidal de 20 Hz sumada a una seal tipo chirp con un
desplazamiento desde 5 hasta 40 Hz en un tiempo D.

>> D=1; N=128;


>> ts=D/N;
>> d=ts/2;
>> t=0:ts:D-d;
>> x=sin(2*pi*20*t)+chirp(t,5,D,40);
>> X=fft(x);
>> %Reordenar X
>> M=N/2;
>> Xaux=X;
>> X(M+1:N)=Xaux(1:M);
>> X(1:M)=Xaux(M+1:N);
>> Xm=abs(X)/N;
>> Xf=unwrap(angle(X))*180/pi;
>> %Reordenar los ndices k
>> faux(M+1:N)=0:M-1;
Figura (1)
>> faux(1:M)=-M:-1;
>> f=faux/D;
>> % Grfica de la seal
>> figure(1);
>> plot(t,x,'-g');zoom;
>> xlabel('Tiempo (s)');ylabel('x(t)');
>> title('x(t)=sin(2Pi20t)+chirp(5-
40)');

>> % Graficar fft de xn Xk


>> figure(2);
>> stem(f,Xm,'r')
>> zoom;
>> xlabel('Frecuencia (Hz)');ylabel('|
X[k]|');
>> title('Mdulo de Coeficientes Espectrales |X[k]|'); Figura (2)

>> % Grafica de la fase


>> figure(3);
>> stem(f,Xf,'g');zoom;
>> xlabel('Frecuencia (Hz)');ylabel('Fase
()');
>> title('Fase de Coeficientes Espectrales
X[k]');

Figura (3)

Obtener la FFT de una seal exponencial modulada en amplitud con una frecuencia portadora
de 200 Hz. N es el nmero de puntos de muestreo durante D segundos de la seal. Se requiere
una frecuencia de muestreo de por lo menos 400 Hz, N/D>400

>> N=128; D=0.2;


>> ts=D/N;
>> d=ts/2;
>> t=0:ts:D-d;
>> x=exp(-2*t).*sin(2*pi*200*t);
>> X=fft(x);
>> %Reordenar X
>> M=N/2;
>> Xaux=X;
>> X(M+1:N)=Xaux(1:M);X(1:M)=Xaux(M+1:N);
>> Xm=abs(X)*ts;
>> Xf=unwrap(angle(X))*180/pi;
>> %Reordenar los ndices k
>> faux(M+1:N)=0:M-1;faux(1:M)=-M:-1;
>> f=faux/D;
Figura (1)
>> figure(1);
>> plot(t,x,'-g');zoom;
>> title('x(t)=exp(-2t)sin(2pi200t)');
>> xlabel('Tiempo (t)');ylabel('x(t)');

>> figure(2);
>> plot(f,Xm,'-r')
>> title('Mdulo de los coeficientes espectrales de x(t)');
>> xlabel('Frecuencia (Hz)');ylabel('|X[k]|');

>> figure(3);
>> stem(f,Xf,'-b');zoom;
>> title('Fase de los coeficientes espectrales X[k]');
>> xlabel('Frecuencia (Hz)');ylabel('Fase X[k]');

Figura (2) Figura (3)

Potrebbero piacerti anche