Está en la página 1de 40

Efectos Digitales de audio con MATLAB

Procesamiento Digital de señales (EE612M)

Profesor: Segundo Gamarra


Estudiante: Rodriguez Gatica, Kedein Ybsen
Tinoco Ygnacio, Jordany Marlon
Espinoza Rivas, Jose Carlos
Sandoval Anco, Luis
Índice general

I Parte Uno
1 Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.1 ¿Que es un filtro? 7
1.2 Filtro Digital 7
1.3 Tipos de filtros 8
1.3.1 De acuerdo con la parte del espectro que dejan pasar y que atenúan hay: . . . . 8
1.3.2 De acuerdo con su orden: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.3.3 De acuerdo con el tipo de respuesta ante entrada unitaria: . . . . . . . . . . . . . . . . . 8
1.3.4 De acuerdo con la estructura con que se implementa: . . . . . . . . . . . . . . . . . . . . . 8
1.4 Expresión general de un filtro 8
1.5 Ejemplo del diseño de un filtro 9

2 Análisis en MATLAB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.1 Sistemas digitales (Filtros digitales) 11
2.2 Muestreo y Reconstrucción de señales. 14
2.3 Diseño de FILTROS digitales con MATLAB 21

II Parte Tres
Bibliografía . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Referencias 39
I
Parte Uno

1 Introducción . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.1 ¿Que es un filtro?
1.2 Filtro Digital
1.3 Tipos de filtros
1.4 Expresión general de un filtro
1.5 Ejemplo del diseño de un filtro

2 Análisis en MATLAB . . . . . . . . . . . . . . . . . . 11
2.1 Sistemas digitales (Filtros digitales)
2.2 Muestreo y Reconstrucción de señales.
2.3 Diseño de FILTROS digitales con MATLAB
1. Introducción

1.1 ¿Que es un filtro?


Cualquier medio que atraviesa la señal puede ser considerado un filtro. No pensamos en algo como
filtro si la señal no es modificada. “When you think about it, everything is a filter” (Julius Smith)
Filtro digital
Un filtro digital, es un filtro que opera sobre señales digitales. Es una operación matemática que toma
una secuencia de números (la señal de entrada) y la modifica produciendo otra secuencia de números
(la señal de salida) con el objetivo de resaltar o atenuar ciertas características. Puede existir como una
fórmula en un papel, un loop en un programa de computadora, como un circuito integrado en un chip.

1.2 Filtro Digital


Un filtro digital es un sistema que, dependiendo de las variaciones de las señales de entrada en el
tiempo y amplitud, se realiza un procesamiento matemático sobre dicha señal; generalmente mediante
el uso de la Transformada rápida de Fourier; obteniéndose en la salida el resultado del procesamiento
matemático o la señal de salida.

Los filtros digitales tienen como entrada una señal analógica o digital y en su salida tienen otra señal
analógica o digital, pudiendo haber cambiado en amplitud, frecuencia o fase dependiendo de las
características del filtro digital.

El filtrado digital es parte del procesado de señal digital. Se le da la denominación de digital más por
su funcionamiento interno que por su dependencia del tipo de señal a filtrar, así podríamos llamar filtro
digital tanto a un filtro que realiza el procesado de señales digitales como a otro que lo haga de señales
analógicas.

Comúnmente se usa para atenuar o amplificar algunas frecuencias. Por ejemplo, se puede implementar
un sistema para controlar los tonos graves y agudos de cualquier sistema de audio.

El procesamiento interno y la entrada del filtro serán digitales, por lo que puede ser necesario una
conversión analógica-digital o digital-analógica para uso de filtros digitales con señales analógicas.
8 Capítulo 1. Introducción

Un tema muy importante es considerar las limitaciones del filtro de entrada debido a que la señal debe
poder ser reconstruida, ver Teorema de muestreo de Nyquist-Shannon.

1.3 Tipos de filtros


Hay varios tipos de filtros así como distintas clasificaciones para estos filtros:

1.3.1 De acuerdo con la parte del espectro que dejan pasar y que atenúan hay:
Un filtro paso alto (HPF) es un tipo de filtro electrónico en cuya respuesta en frecuencia se atenúan
los componentes de baja frecuencia pero no los de alta frecuencia, éstas incluso pueden amplificarse
en los filtros activos. La alta o baja frecuencia es un término relativo que dependerá del diseño y de
la aplicación. En particular la función de transferencia de un filtro pasa alta de primer orden corresponde

Un filtro paso bajo corresponde a un filtro electrónico caracterizado por permitir el paso de las frecuen-
cias más bajas y atenuar las frecuencias más altas.1 El filtro requiere de dos terminales de entrada y
dos de salida, de una caja negra, también denominada cuadripolo o bipuerto, así todas las frecuencias
se pueden presentar a la entrada, pero a la salida solo estarán presentes las que permita pasar el filtro.
De la teoría se obtiene que los filtros están caracterizados por sus funciones de transferencia, así
cualquier configuración de elementos activos o pasivos que consigan cierta función de transferencia
serán considerados un filtro de cierto tipo.

Un filtro paso banda es un tipo de filtro electrónico que deja pasar un determinado rango de frecuencias
de una señal y atenúa el paso del resto.

1.3.2 De acuerdo con su orden:


primer orden.
segundo orden.

1.3.3 De acuerdo con el tipo de respuesta ante entrada unitaria:


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 cuya respuesta a una señal impulso como entrada tendrá un número finito de
términos no nulos.

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.

TIIR (Truncated Infinite Impulse Response)

1.3.4 De acuerdo con la estructura con que se implementa:


Laticce.
Varios en cascada.
Varios en paralelo

1.4 Expresión general de un filtro


Hay muchas formas de representar un filtro. Por ejemplo, en función de w (frecuencia digital), en
función de z y en función de n (número de muestra). Todas son equivalentes, pero a la hora de trabajar
a veces conviene más una u otra. Como regla general se suele dejar el término a0 = 1.

Si se expresa en función de z y en forma de fracción:


1.5 Ejemplo del diseño de un filtro 9

M
∑ bk z−k
k=0
H(z) = N
(1.4.1)
∑ ak z−k
k=0

Y en dominio de n:
N M
y[n] = ∑ bk x(n − k) − ∑ ak x(n − k) (1.4.2)
k=−0 k=−0

Los coeficientes ak y bk son los que definen el filtro, por lo tanto el diseño consiste en calcularlos.

1.5 Ejemplo del diseño de un filtro


En primer lugar se parte de las especificaciones y, basándose en éstas, se elige el tipo de filtro. En este
ejemplo se parte de un filtro digital que anule las frecuencias menores a 5Hz y la de 50Hz y que no
altere al resto, la frecuencia de muestreo será 1000Hz, además se quiere fase lineal.

Con estas especificaciones se elige un filtro FIR. El diseño se puede hacer manualmente o con la
ayuda de un ordenador. En este ejemplo el método de diseño será el de Remez. En Matlab se obtienen
los coeficientes que definen el filtro, que en la ecuación anterior se llaman a y b (el numerador es la
variable b y el denominador solo tiene un término que es 1, como corresponde a un filtro FIR):

1 [n,fo,mo,w]=remezord([0 5 45 50 50 55],[0 1 0 1],[0.01 0.1 0.01 0.1],1000);


2 b = remez(n,fo,mo,w)

Nota: remezord en matlab está obsoleto, en su lugar se puede utilizar firpmord.


El siguiente paso es seleccionar la forma de implementarlo, es decir su estructura. Luego se elige el
hardware sobre el que funcionará. Normalmente un Procesador digital de señal o una FPGA, aunque
también puede ser un programa de ordenador. Finalmente se usan los coeficientes obtenidos y la
estructura elegida para crear el programa.
10 Capítulo 1. Introducción

Figura 1.5.1: En la figura se muestra el aspecto del filtro en el centro. En la parte superior se muestra la señal
que se quiere filtrar y en la parte inferior la señal filtrada (se trata de un electrocardiograma).
2. Análisis en MATLAB

2.1 Sistemas digitales (Filtros digitales)


2.1.1
1.1
Respuesta al impulso de un sistema definido por su ecuación en diferencias Creamos los vectores a y b
que contengan los coeficientes x[n] e y[n] de la siguiente ecuación:
y[n] + 0,9y[n − 2] = 0,3x[n] + 0,6x[n − 1] + 0,3x[n − 2]
generamos un impulso unidad con la longitud de 100 elementos ,y calculamos mediante el comando
filter la respuesta h(n) del sistema anterior,representando la respuesta h[n].

1
2 clear,clc, close all;
3 bn=[0.3 0.6 0.3];
4 an=[1 0 0.9];
5 x=zeros(1,100);
6 x(1)=1;y = filter(bn,an,x);
7 stem(y)
8 title('y[n]');

2.1.2

1.2
Resolvemos la ecuación anterior para n=1 hasta 5 ,cuando x[n] = d[n],suponiendo las condiciones
iniciales de reposo y[0] = y[−1] = 0.

n=1
y[1] + 0,9y[−1] = 0,3x[1] + 0,6x[0] + 0,3x[−1]
y[1] = 0,6
12 Capítulo 2. Análisis en MATLAB

Figura 2.1.1: Respuesta al impulso del sistema

n=2
y[2] + 0,9y[0] = 0,3x[2] + 0,6x[1] + 0,3x[0]
y[1] = 0,3
n=3
y[3] + 0,9y[1] = 0,3x[3] + 0,6x[2] + 0,3x[1]
y[1] = −0,54
n=4
y[4] + 0,9y[2] = 0,3x[4] + 0,6x[3] + 0,3x[2]
y[1] = −0,27
n=5
y[5] + 0,9y[3] = 0,3x[5] + 0,6x[4] + 0,3x[1]
y[1] = 0,486
Los valores de y[n] para n = {0, 1, 2, 3, 4, 5} serán
y[n] = {0,6 0,3 − 0,54 − 0,27 0,486}

2.1.3

1.3
calculamos mediante la funcion filter la respuesta al impulso h(n) correspondiente al sistema descrito
por la siguiente ecuación:

π 1
y[n] = 1,8cos( )y[n − 1] + 0,81y[n − 2] = x[n] + x[n − 1] (2.1.1)
16 2
2.1 Sistemas digitales (Filtros digitales) 13

para −10 < n < 10 ,y la respuesta a la funcion escalon u(n). Representamos graficamente la salida y
determinamos su valor constante que alcanza la salida (valor que llamaremos H0) para n > oo.
Verificar, en su caso, que coincide con el valor determinado analíticamente. NOTA La respuesta
constante ,H0, cuando n->00, se denomina respuesta estacionaria. Compruebe gráficamente usando la
función diff (vease help) que la derivada de la respuesta a la función escalón es la respuesta al pulso
unitario.

1
2 clear,clc, close all;
3 t=−10:1:100;
4 bn=[1 0.5];
5 an=[1 −1.8*cos(pi/16) 0.81];
6 u=ones(1,100);
7 u(1:10)=0;
8 y1 = filter(bn,an,u);
9 d=zeros(1,100);
10 d(1)=1;
11 y = filter(bn,an,d);
12
13 stem(y1)
14 title('y1[n]');
15 figure;
16
17 stem(y)
18 title('y[n]');
19 figure;
20
21 y2=diff(y1);
22 stem(y2)
23 title('y2[n]');

Figura 2.1.2
14 Capítulo 2. Análisis en MATLAB

Figura 2.1.3

Figura 2.1.4

2.2 Muestreo y Reconstrucción de señales.


2.2.1
2.1

En este ejercicio se pretende realizar la reconstrucción de la señal y(t) = cos(2 ∗ p ∗ f 0 ∗ t) con f0


=100Hz; señal muestreada con una frecuencia de muestreo f s = 250Hz Represente la señal continua
2.2 Muestreo y Reconstrucción de señales. 15

y(t) en el intervalo [−40ms, 40ms] utilizando una variable independiente t evaluada cada dt = 1/(10 ∗
f s) para que conseguir mediante el comando plot (t, y) una representación adecuada. Represente la
respuesta del filtro h(t). Considere las muestras y[n] que corresponden al muestreo con T s = 1/ f s A
partir de la secuencia y[n] y la función h(t) represente el proceso de reconstrucción que se corresponde
con la aplicación de un filtro pasa baja con una frecuencia de corte f c = 120Hz. Para comprobar el
proceso de reconstrucción se deber representar en un gráfico simultáneamente la señal çontinua", las
muestras tomadas con f s = 250Hz , y la señal reconstruida.

1 clear,clc,close all
2
3 Fs=2500;
4 f0=100;
5 fc=120;
6 wc=2*pi*fc;
7 As=1;
8 ti=−40*10^−3
9 tf=40*10^−3
10 t=ti:1/Fs:tf;
11 h=wc*(As/pi)*sinc(wc*t/pi);
12 y=cos(2*pi*f0*t);
13 H=fft(h);
14 Y=fft(y);
15 G=Y.*H;
16 g=ifft(G);
17
18 plot(t,y)
19 title('Original')
20 figure;
21
22 stem(t,y)
23 title('Muestreada')
24 figure;
25
26 plot(t,g)
27 title('Reconstruida')

2.2.2

2.2
Repita el ejercicio anterior utilizando la función conv de Matlab que permite realizar la convolución
lineal de dos señales. Se pretende calcular la convolución y(t) = x(t) ∗ h(t) que se corresponde con
aplicar el filtro pasa baja en el mundo de frecuencia Y (w) = X(w)H(w).

1
2 clear,clc,close all
3
4 Fs=2500;
5 f0=100;
6 fc=120;
7 wc=2*pi*fc;
8 As=1;
9 ti=−40*10^−3;
10 tf=40*10^−3;
11 t=ti:1/Fs:tf;
12 t1=2*ti:1/Fs:2*tf;
13 h=wc*(As/pi)*sinc(wc*t/pi);
16 Capítulo 2. Análisis en MATLAB

Figura 2.2.1: Original

Figura 2.2.2: Muestreada

14 y=cos(2*pi*f0*t);
15 c=conv(h,y);
16
17 plot(t,y)
18 title('Original')
19 figure
20
2.2 Muestreo y Reconstrucción de señales. 17

Figura 2.2.3: Reconstruida

21 plot(t1,c)
22 axis([ti tf −3000 3000])
23 title('Convolucion lineal')

Figura 2.2.4: Original

2.2.3
18 Capítulo 2. Análisis en MATLAB

Figura 2.2.5: Convolucion Lineal

2.3
Varié la frecuencia de corte del filtro fc1= 50 Hz, fc2= 100Hz , fc3= 150Hz, fc4=125Hz y explique los
resultados.

1 clear,clc,close all
2
3 Fs=2500;
4 f0=100;
5 fc=125; %% Tenemos las diferentes frecuencias {50 100 150 125}
6 wc=2*pi*fc;
7 As=1;
8 ti=−40*10^−3;
9 tf=40*10^−3;
10 t=ti:1/Fs:tf;
11 h=wc*(As/pi)*sinc(wc*t/pi);
12 y=cos(2*pi*f0*t);
13 H=fft(h);
14 Y=fft(y);
15 G=Y.*H;
16 g=ifft(G);
17
18 plot(t,g)
19 title('fc=125')
2.2 Muestreo y Reconstrucción de señales. 19

Figura 2.2.6: fc=50

Figura 2.2.7: fc=100


20 Capítulo 2. Análisis en MATLAB

Figura 2.2.8: fc=150

Figura 2.2.9: fc=125


2.3 Diseño de FILTROS digitales con MATLAB 21

La señal de 50 Hz tiene un comportamiento distinto a los demás debido a que en dicho filtro se tiene
que la frecuencia f0=100Hz y si la frecuencia del filtro viene a ser fc=50Hz, es decir, menor que la
frecuencia de entrada dicho filtro no funciona.

2.3 Diseño de FILTROS digitales con MATLAB


2.3.1
3.1
Usando la función ellip, diseñar un filtro pasabaja de orden N=4 con frecuencia de corte de 600 Hz ,
suponiendo que la señal de entrada será muestrada a una frecuencia de 8192 Hz.

Descripcion

[A,B,C,D] = ellip() diseña un filtro elíptico digital de paso bajo, paso alto, paso de banda o supresión y
devuelve las matrices que especifican su representación de espacio de estado.

1
2 clear all; clc;
3 [A,B,C,D] = ellip(4,3,40,[570 630]/4096);
4 d = designfilt('bandpassiir','FilterOrder',4, ...
5 'PassbandFrequency1',570,'PassbandFrequency2',630, ...
6 'PassbandRipple',3, ...
7 'StopbandAttenuation1',40,'StopbandAttenuation2',40, ...
8 'SampleRate',8192);
9
10 sos = ss2sos(A,B,C,D);
11 fvt = fvtool(sos,d,'Fs',8192);
12 legend(fvt,'ellip','designfilt')

Figura 2.3.1: Filtro con Ellip

2.3.2

3.2
Matlab incorpora la función freqz (ver help) que calcula la función de transferencia H(w).

1
2 b0 = 0.05634;
22 Capítulo 2. Análisis en MATLAB

3 b1 = [1 1];
4 b2 = [1 −1.0166 1];
5 a1 = [1 −0.683];
6 a2 = [1 −1.4461 0.7957];
7 b = b0*conv(b1,b2);
8 a = conv(a1,a2);
9 [h,w] = freqz(b,a,'whole',2001);
10
11 plot(w/pi,20*log10(abs(h)))
12 ax = gca; ax.YLim = [−100 20]; ax.XTick = 0:.5:2;
13 xlabel('Normalized Frequency (\times\pi rad/sample)')
14 ylabel('Magnitude (dB)')

Figura 2.3.2: freqz

2.3.3

3.3
A partir de los vectores b y a obtenidos, construya la función H(w) siguiendo el procedimiento del
ejercicio 4.1.4 y represente H(w) en función de w en el intervalo 0, p. Compruebe que se obtiene el
mismó resultado que utilizando la funcion freqz.

1
2 clear all; clc;
3 sf1 = 0.1; pf1 = 0.35;
4 pf2 = 0.8; sf2 = 0.9;
5 pb = linspace(pf1,pf2,1e3)*pi;
6 bp = designfilt('bandpassfir', ...
7 'StopbandAttenuation1',40, 'StopbandFrequency1',sf1,...
8 'PassbandFrequency1',pf1,'PassbandRipple',3,'PassbandFrequency2',pf2, ...
9 'StopbandFrequency2',sf2,'StopbandAttenuation2',30);
10 [h,w] = freqz(bp,1024); hpb = freqz(bp,pb);
11 subplot(2,1,1)
2.3 Diseño de FILTROS digitales con MATLAB 23

12 plot(w/pi,abs(h),pb/pi,abs(hpb),'.−')
13 axis([0 1 −1 2])
14 legend('Response','Passband','Location','South')
15 ylabel('Magnitude')
16 subplot(2,1,2)
17 plot(w/pi,db(h),pb/pi,db(hpb),'.−')
18 axis([0 1 −60 10])
19 xlabel('Normalized Frequency (\times\pi rad/sample)')
20 ylabel('Magnitude (dB)')

Figura 2.3.3: freqz

2.3.4

3.4
Considere que la señal de entrada esta formada por la suma de dos señales sinusoidales de frecuencia
200 y 800 Hz respectivamente. Usando la función filter compruebe que a la salida ha desaparecido la
componente de 800 Hz.

1
2 Fs=8192;
3 d=fdesign.lowpass('N,Fp,Ap,Ast',4,600,0.5,20,Fs);
4 h=design(d,'ellip');
5 [num,den]=tf(h);
6 t=0:1/Fs:0.02;
7 x=sin(2*pi*200*t)+sin(2*pi*800*t);
8 y=filter(num,den,x);
9 N=2^nextpow2(length(t));
10 f=0:Fs/N:(Fs*(N−1))/N;
11 X=abs(fft(x,N));
12 Y=abs(fft(y,N));
13 plot(t,x,t,y);
24 Capítulo 2. Análisis en MATLAB

14 xlabel('Tiempo (s)');
15 ylabel('Amplitud');
16 grid on
17 figure;
18 plot(f,X,f,Y);
19 xlabel('Frecuencia (Hz)');
20 ylabel('Magnitud');
21 grid on

Se tiene las siguientes gráficas:

Figura 2.3.4: Entrada y salida del filtro

Aquí se compara la señal a la entrada del filtro (gráfica azul) y la función de salida filtrada (gráfica
verde).

Figura 2.3.5: Respuesta en frecuencia del filtro

Al igual que la gráfica anterior aquí se compara la respuesta en frecuencia en la cual podemos ver
fácilmente la atenuación que se da en la frecuencia de 800 Hz.

2.3.5
2.3 Diseño de FILTROS digitales con MATLAB 25

3.5
Manteniendo la frecuencia de corte en la función ellip modificar uno a uno los parámetros N, Rp y Rs.
Use la función freqz para representar las caracteristicas H(w) del filtro y estudie su dependencia con
los parámetros anteriores.

1
2 clear all; clc;
3 [A,B,C,D] = ellip(4,3,40,[570 630]/4096);
4 d = designfilt('bandpassiir','FilterOrder',4, ...
5 'PassbandFrequency1',570,'PassbandFrequency2',630, ...
6 'PassbandRipple',3, ...
7 'StopbandAttenuation1',40,'StopbandAttenuation2',40, ...
8 'SampleRate',8192);
9
10 sos = ss2sos(A,B,C,D);
11 fvt = fvtool(sos,d,'Fs',8192);
12 legend(fvt,'ellip','designfilt')

Figura 2.3.6: Filtro con Ellip

Para Rp=5 y Rs=20 constantes y variando el orden (N):

Figura 2.3.7: N=2

En los primeros órdenes se tiene un Rp=5 esto con el objeto que se observe mejor el comportamiento
del rizado en la banda de paso y de ello se concluye que se tiene un número de máximos y mínimos en
la banda de paso (siendo el último de estos un máximo siempre) igual al número de orden del filtro.
26 Capítulo 2. Análisis en MATLAB

Figura 2.3.8: N=3

Figura 2.3.9: N=4

Figura 2.3.10: N=7

En los órdenes más superiores se usa un Rp=0.5, y se puede ver que al ir aumentando el orden los
valles se van desplazando más en dirección a la frecuencia de corte lo cual en ciertos ordenes genera
una mayor atenuación una banda de transición más pequeña en algunos órdenes, sin embargo para
2.3 Diseño de FILTROS digitales con MATLAB 27

Figura 2.3.11: N=8

Figura 2.3.12: N=9

Figura 2.3.13: N=10

otros esto no sucede. También al seguir subiendo el orden se ve que los órdenes pares y los órdenes
impares empiezan a tener un comportamiento similar.
28 Capítulo 2. Análisis en MATLAB

4.8 Diseñe un
filtro suprime-banda de orden N=6 con frecuencia de paso de 300 y 500 Hz , suponiendo que la señal
de entrada será muestrada a una frecuencia de 8192 Hz. Represente H(w). Considere que la señal de
entrada esta formada por la suma de tres señales sinusoidales de frecuencia 100,400 y 600 Hz
respectivamente. Usando la función filter se debe comprobar que a la salida ha desaparecido la co

Para N=4 y Rs=20 constantes y variando Rp:

Figura 2.3.14: Rp=10

En la banda de paso se observa como al disminuir Rp se tiene una respuesta mucho más plana en dicha
banda, lo que ocurre también en la banda de supresión es un desplazamiento de los valles estos se
alejan de la banda de paso en consecuencia la banda de transición es más ancha y no será y tan buena
la atenuación.
Para N=4 y Rp=0.5 constantes y variando Rs:
Lo que se ve inmediatamente es que la consecuencia de tener una mayor atenuación en la banda de
supresión es que se hace más ancha la banda de transición es decir no se podría filtrar frecuencias que
se encuentren cercanas a la frecuencia de corte.

2.3.6
2.3 Diseño de FILTROS digitales con MATLAB 29

Figura 2.3.15: Rp=8

Figura 2.3.16: Rp=5

Figura 2.3.17: Rp=2

3.6
Diseñe un filtro pasa-alta de orden N=6 con frecuencia de corte de 600 Hz , suponiendo que la
señal de entrada será muestrada a una frecuencia de 8192 Hz. Represente H(w). Considere que la
30 Capítulo 2. Análisis en MATLAB

Figura 2.3.18: Rp=1

Figura 2.3.19: Rp=0.5

Figura 2.3.20: Rp=0.1

señal de entrada esta formada por la suma de dos señale sinusoidales de frecuencia 200 y 800 Hz
respectivamente. Usando la función filter compruebe que a la salida ha desaparecido la componente de
2.3 Diseño de FILTROS digitales con MATLAB 31

Figura 2.3.21: Rs=10

Figura 2.3.22: Rs=15

Figura 2.3.23: Rs=20


32 Capítulo 2. Análisis en MATLAB

Figura 2.3.24: Rs=25

Figura 2.3.25: Rs=30

Figura 2.3.26: Rs=50

200Hz,
2.3 Diseño de FILTROS digitales con MATLAB 33

Figura 2.3.27: Rs=100

1
2 clc
3 close all
4 clear
5 Fs= 8192; %frecuencia de muestreo
6 d = fdesign.highpass('N,Fp,Ast,Ap',6,600,20,0.8,Fs);
7 h = design(d,'ellip');
8 [num1,den1]=tf(h);
9 t=0:1/Fs:5*10^−3;
10 x = sin(2*pi*200*t)+4*sin(2*pi*800*t);
11 y =filter(num1,den1,x);
12 N=2^nextpow2(length(y));
13 F = 0:Fs/N:Fs*(N−1)/N;
14 X=abs(fft(x,N));
15 Y=abs(fft(y,N));
16 plot(F,X,'g','linewidth',2)
17 hold on
18 plot(F,Y,'b','linewidth',2)
19 grid on

2.3.7

3.7
Diseñe un filtro pasa-banda de orden N=6 con frecuencia de paso de 300 y 500 Hz , suponiendo que
la señal de entrada será muestrada a una frecuencia de 8192 Hz. Represente H(w). Considere que la
señal de entrada esta formada por la suma de tres señales sinusoidales de frecuencia 100,400 y 600 Hz
respectivamente. Usando la función filter compruebe que a la salida ha desaparecido la componente de
100 y de 600 Hz.

1
2 clc
3 close all
4 clear
5 Fs= 8192; %frecuencia de muestreo
6 d = fdesign.bandpass('N,Fst1,Fp1,Fp2,Fst2,Ap',6,200,250,550,650,0.8,8192);
7 h=design(d,'ellip');
34 Capítulo 2. Análisis en MATLAB

Figura 2.3.28: Rs=100

8 [num1,den1]=tf(h);
9 t=0:1/Fs:5*10^−3;
10 x = 8*sin(2*pi*100*t)+4*sin(2*pi*400*t)+6*sin(2*pi*600*t);
11 y =filter(num1,den1,x);
12 N=2^nextpow2(length(y));
13 F = 0:Fs/N:Fs*(N−1)/N;
14 X=abs(fft(x,N));
15 Y=abs(fft(y,N));
16 plot(F,X,'g','linewidth',3)
17 hold on
18 plot(F,Y,'b','linewidth',3)
19 grid on

2.3.8

3.8
Diseñe un filtro suprime-banda de orden N=6 con frecuencia de paso de 300 y 500 Hz , suponiendo
que la señal de entrada será muestrada a una frecuencia de 8192 Hz. Represente H(w). Considere que
la señal de entrada esta formada por la suma de tres señales sinusoidales de frecuencia 100,400 y 600
Hz respectivamente. Usando la función filter se debe comprobar que a la salida ha desaparecido la
componente de 400 Hz.

1
2 d=fdesign.bandstop('N,Fp1,Fst1,Fst2,Fp2,Ap',6,250,300,500,600,0.8,8192);
3 h=design(d,'ellip');
4 [num1,den1]=tf(h);
5 t=0:1/Fs:5*10^−3;
6 x = 8*sin(2*pi*100*t)+4*sin(2*pi*400*t)+6*sin(2*pi*600*t);
2.3 Diseño de FILTROS digitales con MATLAB 35

Figura 2.3.29: Rs=100

7 y =filter(num1,den1,x);
8 N=2^nextpow2(length(y));
9 F = 0:Fs/N:Fs*(N−1)/N;
10 X=abs(fft(x,N));
11 Y=abs(fft(y,N));
12 plot(F,X,'g','linewidth',3)
13 hold on
14 plot(F,Y,'b','linewidth',3)
15 grid on
36 Capítulo 2. Análisis en MATLAB

Figura 2.3.30: Rs=100


II
Parte Tres

Bibliografía . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Referencias
Bibliografía

Referencias
[Con07] Alicia Casanueva López Constantino Pérez Vega José Zamanillo Sáinz de la Maza. Sistemas
de Telecomunicaciones. 7.a edición. Eujoa Artes Gráficas, 2007. ISBN: 9788481024548
(véase página 39).
[Gam] Segundo Gamarra. Transmisión Digital en Banda Base. Departamento de Posgrado - Fa-
cultad de Ingeniería Eléctrica y Electrónica - Universidad Nacional de Ingeniería (véase
página 39).
[Ric08] Michael Rice. Digital Communications: A Discrete-Time Approach. 1.a edición. Prentice
Hall, 2008. ISBN: 0130304972 (véase página 39).
[Sim15] Simulink. Software de MATLAB. 2015 (véase página 39).
[Vás15] Sergio Gallardo Vásquez. Elementos de Sistemas de Telecomunicaciones. 1.a edición.
Ediciones Paraninfo S.A., 2015. ISBN: 902995240 (véase página 39).
[Veg] Constantino Pérez Vega. Capítulo 7 - Modulación de Pulsos. Departamento de Ingeniería
de Comunicaciones - Universidad de Cantabria (véase página 39).

[3] [5] [1] [4] [6] [2]

También podría gustarte