Universidad Nacional Mayor de San Marcos
UNIVERSIDAD NACIONAL
MAYOR DE SAN MARCOS
(Universidad del Perú, Decana de América)
FACULTAD DE INGENIERÍA ELECTRÓNICA Y ELECTRÍCA
PRACTICA N°3
DISEÑO DE FILTROS Y ECUALIZADOR DIGITAL
Curso : [Link] Analogica
Profesor : Ing. Sixto Llosa
EAP : Ing. Electrónica
Integrantes : 16190183 Ramos Lopez Brandon Bryan
15 de abril del 2019
Ciudad Universitaria UNMSM- Abril 2019
Universidad Nacional Mayor de San Marcos
LABORATORIO DE COMUNICACIÓN ANALÓGICA
PRACTICA N°3
TEMA: DISEÑO DE FILTROS Y ECUALIZADOR DIGITAL
Prof: Ing. Sixto Llosa
I. OBJETIVOS:
Diseñar filtros en respuesta en frecuencia de audio, y determinar las características en el dominio
del tiempo y de la frecuencia. Asimismo diseñar ecualizadores digitales de audio frecuencia,
usando el MATLAB.
II. 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
Filtro n°1
>> 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]);
Figura 1:
Señal de
entrada al
ecualizador.
Ciudad Universitaria UNMSM- Abril 2019
Universidad Nacional Mayor de San Marcos
>> [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));
Figura 2:
Filtro pasabanda
de ganancia 1,
frecuencias de
corte f1=100 Hz y
f2=1 KHz
>> 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]);
Figura 3:
Señal resultante
en la salida del
filtro pasabanda
anterior.
Ciudad Universitaria UNMSM- Abril 2019
Universidad Nacional Mayor de San Marcos
>> S1=fft(s,513);
>> SF1=fft(sf1,513);
>> w=(((0:255)/256)*(Fs/2));
>> figure(4)
>> plot(w,abs(S1(1:256)));
>> hold on
>> plot(w,abs(SF1(1:256)));
>> hold off
>> xlabel('FRECUENCIA(Hz)');ylabel('MAG. DE TRANSF. DE FOURIER');
Figura 4:
Transformada
de Fourier de la
señal original
que entra al
ecualizador, en
verde se
muestra la
transformada de
Fourier de la
señal de salida
del primer filtro.
Filtro n°2
>> [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));
Figura 5:
Ciudad Universitaria UNMSM- Abril 2019
Universidad Nacional Mayor de San Marcos
Filtro pasabanda de ganancia 1 y frecuencias de corte f 1= 1KHz y f2 = 2 KHz
>> 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]);
Figura 6:
Señal de salida
del filtro
pasabanda.
>> S2=fft(s,513);
>> SF2=fft(sf2,513);
>> w=(((0:255)/256)*(Fs/2));
>> figure(7)
>> plot(w,abs(S2(1:256)));
>> hold on
>> plot(w,abs(SF2(1:256)));
>> hold off
>> xlabel('FRECUENCIA(Hz)');ylabel('MAG. DE TRANSF. DE FOURIER');
Ciudad Universitaria UNMSM- Abril 2019
Universidad Nacional Mayor de San Marcos
Figura 7:
Transformada de
Fourier de la señal
de entrada,
también se
muestra la
transformada de
Fourier de la señal
en la salida del
filtro.
Filtro n°3
>> [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));
Figura 8:
Filtro pasabanda
de ganancia 1 y
frecuencias de
corte f1 = 2,5 KHz y
f2 = 3,5 KHz
>> sf3=filter(b,a,s);
>> figure(9)
Ciudad Universitaria UNMSM- Abril 2019
Universidad Nacional Mayor de San Marcos
>> plot(t,sf3);
>> xlabel('Tiempo(seg)');ylabel('FORMA DE ONDA VS. TIEMPO')
>> axis([0 0.01 -4 4]);
Figura 9:
Señal de la salida
del filtro
pasabanda
anterior.
>> S3=fft(s,513);
>> SF3=fft(sf3,513);
>> w=(((0:255)/256)*(Fs/2));
>> figure(10)
>> plot(w,abs(S3(1:256)));
>> hold on
>> plot(w,abs(SF3(1:256)));
>> hold off
>> xlabel('FRECUENCIA(Hz)');ylabel('MAG. DE TRANSF. DE FOURIER');
Figura 10:
Transformada de
Fourier de la señal
de entrada,
Ciudad Universitaria UNMSM- Abril 2019
Universidad Nacional Mayor de San Marcos
también se muestra la transformada de Fourier de la señal presente en la salida
del filtro.
Filtro n°4
>> [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));
Figura 11:
Filtro pasabanda
de ganancia 1 y
frecuencias de
corte f1 = 3,5 KHz
y f2 = 3999Hz
>> 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]);
Figura 12:
Señal de la salida
del filtro
pasabanda
anterior.
Ciudad Universitaria UNMSM- Abril 2019
Universidad Nacional Mayor de San Marcos
>> S4=fft(s,513);
>> SF4=fft(sf4,513);
>> w=(((0:255)/256)*(Fs/2));
>> figure(13)
>> plot(w,abs(S4(1:256)));
>> hold on
>> plot(w,abs(SF4(1:256)));
>> hold off
>> xlabel('FRECUENCIA(Hz)');ylabel('MAG. DE TRANSF. DE FOURIER');
Figura 13:
Transformada
de Fourier de
la señal de
entrada,
también se
muestra la
transformada
de Fourier de
la señal
presente en la
salida del
filtro.
>> 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]);
Ciudad Universitaria UNMSM- Abril 2019
Universidad Nacional Mayor de San Marcos
Figura 14:
Señal de
entrada al
filtro.
>> S5=fft(s,513);
>> ZF5=fft(zf5,513);
>> w=(((0:255)/256)*(Fs/2));
>> figure(15)
>> plot(w,abs(S5(1:256)));
>> hold on
>> plot(w,abs(ZF5(1:256)));
>> hold off
>> xlabel('FRECUENCIA(Hz)');ylabel('MAG. DE TRANSF. DE FOURIER');
Figura 15:
Transformadas
de Fourier de la
señal de entrada
y de la señal de
salida.
2. Verificar la respuesta
de frecuencia de otros filtros: modificar sus variables como ancho de banda,
amplitud o atenuación de los 4 filtros.
Filtro n°1
Ciudad Universitaria UNMSM- Abril 2019
Universidad Nacional Mayor de San Marcos
>> f=[0 .4 .4 .6 .6 1];
>> H=[0 0 1 1 0 0];
>> fs=1000;
>> fhz=f*fs/2;
>> figure(1)
>> plot(fhz,H),title('Desired Frequency Response');
>> xlabel('Frequency(Hz)');ylabel('Magnitude');
Figura 1:
Filtro pasabanda
con frecuencias
de corte f1=200
Hz y f2=300 Hz
Filtro n°2
>> 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');
Ciudad Universitaria UNMSM- Abril 2019
Universidad Nacional Mayor de San Marcos
Figura 2:
Filtro n°3
>> 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 Chebyshev filters');
Figura 3:
Filtro n°4
Ciudad Universitaria UNMSM- Abril 2019
Universidad Nacional Mayor de San Marcos
>> figure(4)
>> plot(ff(2:n),20*log10(h(2:n,:)))
>> title('Yule Walk, Butterworth and Chebyshev filters');
>> xlabel('Frequency (Hz)');
>> ylabel('Magnitude in dB');
Figura 4
3. De acuerdo al ejercicio anterior (1) , diseñe un ecualizador digital de 4 canales,
usando los filtros IIR, si la señal 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
>> Fs=10000;
>> t=(1:10000)/Fs;
>> 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)
>> grid
>> axis([0 0.01 -4 4]);
Ciudad Universitaria UNMSM- Abril 2019
Universidad Nacional Mayor de San Marcos
>> [b,a]=ellip(4,0.1,40,[100 1000]*2/Fs);
>> b=0.3*b;
>> [H,w]=freqz(b,a,512);
>> figure(2)
>> plot(w*Fs/(2*pi),abs(H));
>> grid
>> sf1=filter(b,a,s);
>> figure(3)
>> plot(t,sf1);
>> grid
>> xlabel('Tempo(seg)');ylabel('FORMA DE ONDA VS. TIEMPO');
>> axis([0 0.01 -4 4]);
Ciudad Universitaria UNMSM- Abril 2019
Universidad Nacional Mayor de San Marcos
>> 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)]));
>> grid
>> xlabel('FRECUENCIA(Hz)');ylabel('MAG. DE LA TRANS. DE FOURIER');
>> [b,a]=ellip(4,0.1,40,[1000 2000]*2/Fs);
>> b=1.5*b;
>> [H,w]=freqz(b,a,512);
>> figure(5)
>> plot(w*Fs/(2*pi),abs(H));
>> grid
Ciudad Universitaria UNMSM- Abril 2019
Universidad Nacional Mayor de San Marcos
>> sf2=filter(b,a,s);
>> figure(6)
>> plot(t,sf2);
>> xlabel('Tempo(seg)');ylabel('FORMA DE ONDA VS. TIEMPO');
>> axis([0 0.01 -4 4]);
>> grid
>> 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 LA TRANS. DE FOURIER');
>> grid
Ciudad Universitaria UNMSM- Abril 2019
Universidad Nacional Mayor de San Marcos
>> [b,a]=ellip(4,0.1,40,[2000 3000]*2/Fs);
>> b=0.1*b;
>> [H,w]=freqz(b,a,512);
>> figure(8)
>> plot(w*Fs/(2*pi),abs(H));
>> grid
>> sf3=filter(b,a,s);
>> figure(9)
>> plot(t,sf3);
>> xlabel('Tempo(seg)');ylabel('FORMA DE ONDA VS. TIEMPO');
>> axis([0 0.01 -4 4]);
>> grid
Ciudad Universitaria UNMSM- Abril 2019
Universidad Nacional Mayor de San Marcos
>> 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 LA TRANS. DE FOURIER');
>> grid
>> [b,a]=ellip(4,0.1,40,[3000 4000]*2/Fs);
>> b=0.8*b;
>> [H,w]=freqz(b,a,512);
>> figure(11)
>> plot(w*Fs/(2*pi),abs(H));
>> grid
Ciudad Universitaria UNMSM- Abril 2019
Universidad Nacional Mayor de San Marcos
>> sf4=filter(b,a,s);
>> figure(12)
>> plot(t,sf4);
>> xlabel('Tempo(seg)');ylabel('FORMA DE ONDA VS. TIEMPO');
>> grid
>> axis([0 0.01 -4 4]);
>> S4=fft(s,513);
>> SF4=fft(sf3,513);
>> w=(((0:255)/256)*(Fs/2));
>> figure(13)
>> plot(w,abs([S4(1:256);SF4(1:256)]));
>> xlabel('FRECUENCIA(Hz)');ylabel('MAG. DE LA TRANS. DE FOURIER');
>> grid
Ciudad Universitaria UNMSM- Abril 2019
Universidad Nacional Mayor de San Marcos
>>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,512);
>>ZF5=fft(zf5,512);
>>w=((0:255)/256*(Fs/2));
>>figure(15)
>>plot(w,abs(S5(1:256)))
>>hold on
>>plot(w,abs(ZF5(1:256)))
>>hold off
Ciudad Universitaria UNMSM- Abril 2019
Universidad Nacional Mayor de San Marcos
>>xlabel('Frecuencia(Hz)');
>>ylabel('Mag. de Transf. de Fourier');
4. Cuestionario final
1. Explique detalladamente la transformada de Fourier DFT. Desarrolle 5 ejemplos de la
trans. De Fourier funciones discretas y su aplicación en el proceso de señales
Transformada Discreta de Fourier
En matemáticas, la transformada discreta de Fourier o DFT (del inglés, discrete Fourier
transform) es un tipo de transformada discreta utilizada en el análisis de Fourier. Transforma
una función matemática en otra, obteniendo una representación en el dominio de la frecuencia,
siendo la función original una función en el dominio del tiempo. Pero la DFT requiere que la
función de entrada sea una secuencia discreta y de duración finita. Dichas secuencias se suelen
generar a partir del muestreo de una función continua, como puede ser la voz humana. Al
contrario que la transformada de Fourier en tiempo discreto (DTFT), esta transformación
únicamente evalúa suficientes componentes frecuenciales para reconstruir el segmento finito
que se analiza. Utilizar la DFT implica que el segmento que se analiza es un único período de una
señal períodica que se extiende de forma infinita; si esto no se cumple, se debe utilizar una
ventana para reducir los espúreos del espectro. Por la misma razón, la DFT inversa (IDFT) no
puede reproducir el dominio del tiempo completo, a no ser que la entrada sea periódica
indefinidamente. Por estas razones, se dice que la DFT es una transformada de Fourier para
análisis de señales de tiempo discreto y dominio finito. Las funciones sinusoidales base que
surgen de la descomposición tienen las mismas propiedades.
Definición
La secuencia de N números complejos x0, ..., xN−1 se transforma en la secuencia de N números
complejos X0, ..., XN−1 mediante la DFT con la fórmula:
Ciudad Universitaria UNMSM- Abril 2019
Universidad Nacional Mayor de San Marcos
donde i es la unidad imaginaria y es la N-ésima raíz de la unidad. (Esta expresión se puede
escribir también en términos de una matriz DFT; cuando se escala de forma apropiada se
convierte en una matriz unitaria y Xk puede entonces ser interpretado como los coeficientes
de x en una base ortonormal.)
La transformada se denota a veces por el símbolo , igual que en o
o .
La transformada inversa de Fourier discreta (IDFT) viene dada por
Suponiendo que se tiene una señal discreta X[n] periódica (periodo N) esta señal se puede
expresar usando deltas desplazadas, como:
X(n)=∑ x ( k ) . δ (n−k)
k=0
Se puede representar también utilizando exponenciales complejas, ya que éstas son la base del
dominio frecuencial.
N−1
X(n)=α . ∑ x ( n ) . e j 2 πkn / N
k=0
En esta representación interesa hallar X[k] y α, esto se realiza de la siguiente manera:
N −1 j 2 πkn
x ( n) . e− j2 πsn/ N
=α . (∑ k=0
x (k ) . e N
) . e− j 2 πsn/ N
N−1 − j 2 πsn N−1 N−1
N
∑ x (n ). e =α . ∑ ∑ X ( k ) . e j 2 π (k−s ) n/ N
n =0 k=0 k=0
Ortogonalidad
Los vectores forman una base ortogonal sobre el cuerpo de los vectores complejos N-
dimensionales:
Ciudad Universitaria UNMSM- Abril 2019
Universidad Nacional Mayor de San Marcos
donde es la delta de Kronecker. Esta condición de ortogonalidad puede ser utilizada para
obtener la fórmula de la IDFT a partir de la definición de la DFT, y es equivalente a la propiedad
de unicidad.
Aplicando ortogonalidad de funciones complejas, es decir:
N−1
∑ e− j 2 π (k −s) n /N ={ N0 kk=s
≠s
n =0
Entonces:
Tomando α=1/N y reemplazando s por K resulta:
N−1 N−1
∑ x (n)e− j 2 π sn/ N =αNX ( s) X(k)= ∑ x (n) e − j 2 π kn/ N
n =0 n =0
Esta expresión es la transformada de Fourier en Tiempo Discreto.
En matlab existe un programa “fftgui.m” que se puede utilizar para hallar la Transformada
Discreta de Fourier.
Aplicaciones:
Tratamiento de imagen (JPEG) y audio (MP3)
Reducción de ruido en señales, como el ruido blanco
Análisis en frecuencia de cualquier señal discreta
Análisis de materiales y estadística
Síntesis, mediante la transformada inversa IFFT
Ciudad Universitaria UNMSM- Abril 2019
Universidad Nacional Mayor de San Marcos
Grafica 1
x=(0:20)/20; >> x=(0:20)/20;
y1=sin(2*pi*x); >> y=sin(2*pi*x);
figure(5) >> s=fft(y);
stem(x,y1) >> figure(6)
grid >> stem(x,s)
Grafica 2
>> x=linspace(-2,2,50); >> grid
>> y=sin(2*pi*x)./(2*pi*x); >> s=fft(y);
>> figure(7) >> figure(8)
>> stem(x,y) >> stem(x,s)
>> grid
Ciudad Universitaria UNMSM- Abril 2019
Universidad Nacional Mayor de San Marcos
Grafica 3
>> x=[0 0 0 0 1 1 1 1 0 0 0 0]; >> s=fft(x);
>> figure(9) >> figure(10)
>> stem(x) >> stem(s)
>> grid >> grid
>> x=[0 0 0 0 1 1 1 1 0 0 0 0];
Grafica 4
x1=(0:10)/10; hold off
y1=x1; s1=fft(y1);
x2=(10:20)/10; s2=fft(y2);
y2=-x2+2; figure(4)
figure(3) stem(s1)
stem(x1,y1) hold on
hold on stem(s2)
stem(x2,y2) hold off
Ciudad Universitaria UNMSM- Abril 2019
Universidad Nacional Mayor de San Marcos
2. ¿Qué es la transformada rápida de Fourier FFT?, desarrolle 5 ejemplos.
FFT es la abreviatura usual (del inglés Fast Fourier Transform) de un eficiente algoritmo que
permite calcular la transformada de Fourier discreta (DFT) y su inversa. La FFT es de gran
importancia en una amplia variedad de aplicaciones, desde el tratamiento digital de señales y
filtrado digital en general a la resolución de ecuaciones en derivadas parciales o los algoritmos de
multiplicación rápida de grandes enteros. El algoritmo pone algunas limitaciones en la señal y en el
espectro resultante. Por ejemplo: la señal de la que se tomaron muestras y que se va a
transformar debe consistir de un número de muestras igual a una potencia de dos. La mayoría de
los analizadores TRF permiten la transformación de 512, 1024, 2048 o 4096 muestras. El rango de
frecuencias cubierto por el análisis TRF depende de la cantidad de muestras recogidas y de la
proporción de muestreo.
Definicion:
Sean x0, ...., xn-1 números complejos. La transformada discreta de Fourier (DFT, por sus siglas en
inglés) se define como
Algoritmo de diezmado en el tiempo:
Es el algoritmo más famoso para el cálculo de una FFT, diseñado por J.W. Cooley y John Tukey en
1965. Tomando como entrada una señal discreta x[n] con N muestras, se basa en dividir la señal de
entrada en otras dos señales de N/2 muestras (por un lado los coeficientes pares y por otro los
impares), y se envían cada una de estas subseñales a una FFT de tamaño N/2 puntos. Cada uno de
los coeficientes de salida de la FFT de las muestras impares se multiplica por ,
donde k es la posición del vector salida, y se suma a las muestras pares. A su vez, las FFT de N/2
puntos se pueden resolver de esta misma manera, realizando esta operación de manera recursiva
hasta obtener una FFT de una señal de tamaño 2, cuyo resultado es:
Los 5 ejemplos :
FFT en Matlab de una onda senoidal:
Ciudad Universitaria UNMSM- Abril 2019
Universidad Nacional Mayor de San Marcos
FFT en Matlab de una onda cuadrada:
Ciudad Universitaria UNMSM- Abril 2019
Universidad Nacional Mayor de San Marcos
FFT en Matlab de datos guardados:
Ciudad Universitaria UNMSM- Abril 2019
Universidad Nacional Mayor de San Marcos
Ciudad Universitaria UNMSM- Abril 2019