Está en la página 1de 16

FUNCIONES UTILIZADAS

[1]%------------------PROCESAMIENTO DIGITAL DE SEÑALES-------------------


%------------------------------------------------------------------------
%--------------------------FIEE-UNMSM------------------------------------
%ACUÑA ESTRADA XAVIER 16190107
%CARHUANCHO JUICA YONATHAN 16190155
%MIO MIO JUANPIER 16190168
%------------------------------------------------------------------------
%FECHA DE PRESENTACION 4/06/2019
%------------------------------------------------------------------------
function [db,mag,pha,grd,w] = Freqz_mod(b,a);
% CREACION DE UNA FUNCION A PARTIR DE LA FUNCION Freqz
% db = MAGNITUD EN db DE 0 a PI RADIANES
% mag =MAGNITUD DE 0 A PI A RADIANES
% pha = RESPUESTA DE FASE DE 0 A PI RADIANES
% grd =RETARDO DE GRUPO DE 0 A PI RADIANES
% w = 501 MUESTRAS EN FRECUENCIAS ENTRE 0 A PI RADIANES
% b = NUMERADOR DEL POLINOMIO H(z) (FIR: b=h)
% a = DENOMINADOR DEL POLINOMIO H(z) (for FIR: a=[1])
%OBTENCION DE 1000 PUN
[H,w] = freqz(b,a,1000,'whole');
%POR SIMETRIA TOMAMOS 501 PUNTOS
H = (H(1:1:501))';
%DESNORMALIZAR EL PARAMETRO w
w = ((w(1:1:501))').*(1000/pi);
%OBTENCION DE PARAMETROS magnitud ,decibeles,fase,retardo de grupo,
mag = abs(H); db = 20*log10((mag+eps)/max(mag));
pha = angle(H); grd = grpdelay(b,a,w);

[2]%-------------PROCESAMIENTO DIGITAL DE SEÑALES------------------------


%------------------------------------------------------------------------
%-------------------------FIEE-UNMSM-------------------------------------
%ACUÑA ESTRADA XAVIER 16190107
%CARHUANCHO JUICA YONATHAN 16190155
%MIO MIO JUANPIER 16190168
%------------------------------------------------------------------------
function hd= FiltroPB(wc,M);
%FUNCION FILTRO PASABAJA IDEAL
%hd = RESPUESTA AL IMPULSO IDEAL 0 A M-1
%wc = FRECUENCIA DE CORTE EN RADIANES
%M =LONGITUD DEL FILTRO IDEAL

alpha = (M-1)/2; n = [0:(M-1)];


m = n - alpha;
%FRECUENCIA DE CORTE NORMALIZADA
fc = wc/pi;
%RESPUESTA DE IMPULSO IDEAL
hd = fc*sinc(fc*m);
PROBLEMA1

%------------------PROCESAMIENTO DIGITAL DE SEÑALES----------------------


%------------------------------------------------------------------------
%--------------------------FIEE-UNMSM------------------------------------
%ACUÑA ESTRADA XAVIER 16190107
%CARHUANCHO JUICA YONATHAN 16190155
%MIO MIO JUANPIER 16190168
%------------------------------------------------------------------------
%FECHA DE PRESENTACION 4/06/2019
%------------------------------------------------------------------------

%DISEÑAR UN FILTRO PASA BAJA CONSIDERANDO EL RIPLE(Rp) de 0.25dB


%ATENUACION(As)
%FRECUENCIA DE PASO
wp = 0.1*pi;
%FRECUENCIA DE RECHAZO
ws = 0.2*pi;
%TRANSICION DE FRECUENCIA
tranFrec= ws - wp;
%OBTENER M USANDO TABLA DEL LIBRO PROAKIS
M = ceil(6.6*pi/tranFrec)+1;
n=[0:M-1];
%FRECUENCIA DE CORTE IDEAL
wc = (ws+wp)/2,
%FILTRO IDEAL
hd = FiltroPB(wc,M);
%VENTANA HAMMING DE M PUNTOS
w_hammin = (hamming(M))';
%MULTIPLICACION EN EL TIEMPO DEL FILTRO IDEAL CON EL HAMMING
h = hd .* w_hammin;
%OBTENCION DE PARAMETROS,ANALISIS EN FRECUENCIA
[db,mag,pha,grd,w] = Freqz_mod(h,[1]);
delta_w = 2*pi/1000;
%RIPLE en dB
Rp = -(min(db(1:wp/delta_w+1)));
%ATENUACION EN dB
As = -round(max(db(ws/delta_w+1:1:501)))
%----------------------------------------------------------------------
figure(1)
stem(n,hd);
title('Respuesta al impulso ideal')
axis([1 M -0.1 0.15]); xlabel('n'); ylabel('hd(n)')
%----------------------------------------------------------------------
figure(2);
stem(n,w_hammin);
title('Ventana Hamming ')
xlabel('n'); ylabel('w(n)')
axis([1 M -0.1 1.05])
%------------------------------------------------------------------------
figure(3);
stem(n,h);
title('Respuesta al impulso')
xlabel('n'); ylabel('h(n)')
axis([1 M -0.1 0.15])
%------------------------------------------------------------------------
figure(4);
plot(w,db);
title(' Respuesta en dB');
grid
xlabel('Frecuencia en Hertz ');
ylabel('Magnitud en dB')
PROBLEMA 2
%-------------PROCESAMIENTO DIGITAL DE SEÑALES---------------------------
%------------------------------------------------------------------------
%-------------------------FIEE-UNMSM-------------------------------------
%ACUÑA ESTRADA XAVIER 16190107
%CARHUANCHO JUICA YONATHAN 16190155
%MIO MIO JUANPIER 16190168
%------------------------------------------------------------------------
%FECHA DE PRESENTACION 4/06/2019
%------------------------------------------------------------------------
%FRECUENCIA DE RECHAZO1
ws1 = 0.2*pi;
%FRECUENCIA DE PASO1
wp1 = 0.35*pi;
%FRECUENCIA DE PASO2
wp2 = 0.65*pi;
%FRECUENCIA DE RECHAZO2
ws2 = 0.8*pi;
%As = 60;
%OBTENER TRANSCION DE BANDA MAS PEQUEÑA
transBanda = min((wp1-ws1),(ws2-wp2));
%OBTENER M DE MANERA EXACTA
M = ceil(11*pi/transBanda) + 1
%M = 75
n=[0:1:M-1];
%FRECUENCIAS DE CORTE
wc1 = (ws1+wp1)/2;
wc2 = (wp2+ws2)/2;
%OBTENCION DEL FILTRO PASA ALTA
hd =FiltroPB(wc2,M) - FiltroPB(wc1,M);
%VENTANA BLACKMAN
wblackm = (blackman(M))';
%VENTANEO CON BLACKMAN
h = hd .* wblackm;
%OBTENCION DE PARAMETROS EN FRECUENCIA
[db,mag,pha,grd,w] =Freqz_mod(h,[1]);
delta_w = 2*pi/1000;
%OBTENCION DEL RIPLE
Rp = -min(db(wp1/delta_w+1:1:wp2/delta_w))
%OBTNECION DE LA ATENUACION DE LA BANDA DE RECHAZO
As = -round(max(db(ws2/delta_w+1:1:501)))
%------------------------------------------------------------------------
subplot(2,2,1);
stem(n,hd);
title('Respuesta al impulso ideal')
axis([0 M-1 -0.4 0.5]); xlabel('n'); ylabel('hd(n)')
%------------------------------------------------------------------------
subplot(2,2,2);
stem(n,wblackm);
title('Ventana Blackman')
axis([0 M-1 0 1.1]);
xlabel('n'); ylabel('w(n)')
%------------------------------------------------------------------------
subplot(2,2,3);
stem(n,h);
title('Respuesta al impulso ideal')
axis([0 M-1 -0.4 0.5]);
xlabel('n'); ylabel('h(n)')
%------------------------------------------------------------------------
subplot(2,2,4);
plot(w,db);
title('Magnitud de respuesta en dB');
grid;
xlabel('Frecuencia en Hertz');
ylabel('Decibeles')
%--------------------FILTRO RECHAZABANDA MEDIANTE VENTANA BLACKMAN---------------------------

%---------------------------------------------------EJERCICIO-------------------------------------------------------

% DISEÑAR UN FILTRO RECHAZABANDA USANDO LA VENTANA DE BLACKMAN CON LOS


SIGUIENTES DATOS:

%FRECUENCIA DE CORTE INFERIOR (500HZ) Y SUPERIOR (FC2=2000HZ)

%FRECUENCIA DE MUESTREO = 10000HZ

%ORDEN DEL FILTRO = 200

%LIMPIAMOS PANTALLA

close all;

%COLOCAMOS LA FRECUENCIA DE CORTE INFERIOR

fc1=500;

%COLOCAMOS LA FRECUENCIA DE CORTE SUPERIOR

fc2=2000;

% COLOCAMOS LA FRECUENCIA DE MUESTREO

fs=10000;
%COLOCAMOS EL ORDEN DEL FILTRO

n=200;

%CALCULAMOS EL VECTOR QUE REPRESENTARÁ LA FRECUENCIA DE CORTE

fc=[fc1/(fs/2) fc2/(fs/2)];

%USAMOS EL COMANDO FIR1 PARA FILTRAR LA SEÑAL HACIENDO USO DE LA VENTANA DE


BLACKMAN

y=fir1(n,fc,'stop',blackman(n+1));

figure(1)

% GRAFICAMOS LA SALIDA DEL FILTRO

plot(y);

%COLOCAMOS EL TITULO A LA GRAFICA DE LA SALIDA

title('Respuesta en impulso mediante la ventana Blackman');

%COLOCAMOS NOMBRES A LOS EJES

xlabel('número de muestras');

ylabel('hd[n]');

%COLOCAMOS CUADRICULAS AL GRÁFICO

grid;

figure (2)

% GRAFICAMOS SU RESPUESTA EN FRECUENCIA PARA UN NÚMERO MUESTRA CUALQUIERA (FS/4)

freqz(y,1,fs/4);
%--------------------FILTRO PASAALTO MEDIANTE VENTANA DE HANNING---------------------------

%---------------------------------------------------EJERCICIO-------------------------------------------------------

% DISEÑAR UN FILTRO PASA ALTO USANDO LA VENTANA DE HANNING CON LOS SIGUIENTES
DATOS:

%FRECUENCIA DE CORTE =1000HZ

%FRECUENCIA DE MUESTREO = 8000HZ

%ORDEN DEL FILTRO = 150

%LIMPIAMOS PANTALLA

close all;

%COLOCAMOS LA FRECUENCIA DE CORTE

fc=1000;

%COLOCAMOS LA FRECUENCIA DE MUESTREO

fs=40000;

%COLOCAMOS EL NUMERO DE MUESTRAS

n=200;

%USAMOS EL COMANDO FIR1 PARA FILTRAR LA SEÑAL HACIENDO USO DE LA VENTANA DE


HANNING

y=fir1(n,fc./(fs/2),'high',hanning(n+1));

figure (1)

% GRAFICAMOS LA SALIDA DEL FILTRO

plot(y);

%COLOCAMOS EL TITULO AL GRAFICO DE LA SALIDA

title('Respuesta en impulso mediante la ventana Hanning');

%COLOCAMOS NOMBRES A LOS EJES

xlabel('número de muestras');

ylabel('hd[n]')

%COLOCAMOS CUADROS A LA GRÁFICA

grid;

figure 2

% GRAFICAMOS SU RESPUESTA EN FRECUENCIA PARA UN NÚMERO MUESTRA CUALQUIERA (FS/4)


freqz(y,1,fs/4);
%--------------------FILTRO PASA BAJO MEDIANTE VENTANA DE HAMMING---------------------------

%---------------------------------------------------EJERCICIO-------------------------------------------------------

% DISEÑAR UN FILTRO PASA BAJO USANDO LA VENTANA DE HAMMING CON LOS SIGUIENTES
DATOS:

%FRECUENCIA DE CORTE =1500HZ

%FRECUENCIA DE MUESTREO = 20000HZ

%ORDEN DEL FILTRO =200

%LIMPIAMOS PANTALLA

close all;

%COLOCAMOS LA FRECUENCIA DE CORTE

fc=1000;

%COLOCAMOS LA FRECUENCIA DE MUESTREO

fs=40000;

%COLOCAMOS EL NUMERO DE MUESTRAS

n=200;

%USAMOS EL COMANDO FIR1 PARA FILTRAR LA SEÑAL Y YA PONEMOS LA VENTANA DE


HAMMING POR QUE EL COMANDO FIR1 LO TOMA DEFECTO

y=fir1(n,fc./(fs/2));

figure (1)

% GRAFICAMOS LA SALIDA DEL FILTRO

plot(y);

%COLOCAMOS EL TITULO AL GRAFICO DE LA SALIDA

title('Respuesta en impulso mediante la ventana Hamming');

%COLOCAMOS NOMBRES A LOS EJES

xlabel('número de muestras');

ylabel('hd[n]')

%COLOCAMOS CUADROS A LA GRÁFICA

grid;

figure 2

% GRAFICAMOS SU RESPUESTA EN FRECUENCIA PARA UN NÚMERO MUESTRA CUALQUIERA (FS/4)


freqz(y,1,fs/4);

También podría gustarte