Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Laboratorio 3
Laboratorio 3
Nombre:
Angelo Francescoli Castillo Guerrero
Código:
14190119
Curso:
Laboratorio de Introducción de Telecomunicaciones
Profesor:
Ing. Sixto Llosa Portugal
Tema:
Diseño de Filtros y Ecualizador Digital
2018
MATLAB
PC Pentium II-actual.
III. PROCEDIMIENTO:
1. Diseñe 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,[100 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 4500]*.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 o atenuación de los 4 filtros.
f=[0 .4 .4 .6 .6 1];
H=[0 0 1 1 0 0];
fs=1000;%assumed sampling rate
fhz=f*fs/2;
figure(1)
plot(fhz,H), title('Desired Frecuency Response')
xlabel('Frecuency (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 Frecuency Response')
xlabel('Frecuency (Hz)'), ylabel('Magnitude')
El ancho de banda de cada filtro es: Y los amplificadores tienen una ganancia de:
H1(f) = [0.1 1]KHz G1 = 0.3
H2(f) = [1 2]KHz G2 = 1.5
H3(f) = [2 3]KHz G3 = 0.1
H4(f) = [3 4]KHz G4 = 0.8
Fs=8000;%FMAX=3500hZ
t=(1:8000)/Fs;
%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
bya
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');
IV. CUESTIONARIO
En esta representación
interesa hallar X[k] y α, esto se
realiza de la siguiente
manera:
Entonces:
Ejemplos:
>> t=[0 0 0 0 0 1 0 0 0 0 0]
fftgui(t)
>> t=-10:10;
x=sin(x);
fftgui(x)
4) Transformada de la función cos[n]
>> t = linspace(-2,2,50);
x = sin(2*pi*t)./(2*pi*t);
fftgui(x)
2. ¿Qué es la transformada rápida de Fourier FFT? Desarrolle 5
ejemplos.
Y su simetría implica:
>> t=0:0.001:1;
>> x=sin(2*pi*100*t);
>> Y=fft(x,512);
>> Pyy=Y.*conj(Y)/512;
>> f=1000*(0:255)/512;
>> plot(f,Pyy(1:256))
>> xlabel('frecuencia (Hz)')
>> ylabel('Magnitud de TF')
>> t=0:0.001:1;
>> x=cos(2*pi*100*t);
>> Y=fft(x,512);
>> Pyy=Y.*conj(Y)/512;
>> f=1000*(0:255)/512;
>> plot(f,Pyy(1:256))
>> xlabel('frecuencia (Hz)')
>> ylabel('Magnitud de TF')
>> t=0:0.001:1;
>> x=heaviside(t+0.01)-heaviside(t-0.01);
>> Y=fft(x,512);
>> Pyy=Y.*conj(Y)/512;
>> f=1000*(0:255)/512;
>> plot(f,Pyy(1:256))
>> xlabel('frecuencia (Hz)')
>> ylabel('Magnitud de TF')
4) Transformada
>> t=0:0.001:1;
>> x=sin(2*pi*100*t)+sin(2*pi*20*t);
>> Y=fft(x,512);
>> Pyy=Y.*conj(Y)/512;
>> f=1000*(0:255)/512;
>> plot(f,Pyy(1:256))
>> xlabel('frecuencia (Hz)')
>> ylabel('Magnitud de TF')
5) Transformada
>> t=0:0.001:1;
>> x=cos(2*pi*250*t)+cos(2*pi*100*t)+cos(2*pi*150*t);
>> Y=fft(x,512);
>> Pyy=Y.*conj(Y)/512;
>> f=1000*(0:255)/512;
>> plot(f,Pyy(1:256))
>> xlabel('frecuencia (Hz)')
>> ylabel('Magnitud de TF')
o Filtro FIR
FIR es un acrónimo en inglés para Finite Impulse Response o
Respuesta finita al impulso. Se trata de un tipo de filtros digitales en el
que, como su nombre indica, si la entrada es una señal impulso, la
salida tendrá un número finito de términos no nulos.
o Expresión matemática
Para obtener la salida sólo se basan en entradas actuales y
anteriores. Su expresión en el dominio n es:
o Polos y ceros
Estos filtros tienen todos los polos en el origen, por lo que son
estables. Los ceros se presentan en pares de recíprocos si el filtro se
diseña para tener fase lineal.
o Características
Los filtros FIR tienen la gran ventaja de que pueden diseñarse para
ser de fase lineal, lo cual hace que presenten ciertas propiedades en
la simetría de los coeficientes. Este tipo de filtros tiene especial interés
en aplicaciones de audio. Además son siempre estables.
Por el contrario también tienen la desventaja de necesitar un orden
mayor respecto a los filtros IIR para cumplir las mismas
características. Esto se traduce en un mayor gasto computacional.
o Filtro IIR
IIR es una sigla en inglés para Infinite Impulse Response o Respuesta
infinita al impulso. Se trata de un tipo de filtros digitales en el que,
como su nombre indica, si la entrada es una señal impulso, la salida
tendrá un número infinito de términos no nulos, es decir, nunca vuelve
al reposo.
o Expresión matemática
La salida de los filtros IIR depende de las entradas actuales y
pasadas, y además de las salidas en instantes anteriores. Esto se
consigue mediante el uso de realimentación de la salida.