%Ejemplo 1
close all;
clc
b=[0.5 0.5]; %num
a = 1; %den
w = linspace(0,pi,1000);
H = freqz(b,a,w);%Vector de respuesta de frecuencia de "n" puntos h
H_mag = abs(H);
H_phase = angle(H);%funcion de fase
%a)
% Como podemos observar en la gráfica la magnitud está
% decreciendo desde el valor 1 hasta el valor 0, lo
% cual comprueba ser un filtro pasa bajos
figure(1)
subplot(2,1,1)
plot(w/pi,H_mag)
xlabel('\omega/\pi' )
ylabel('|H(e^{j\omega})|')
title('Respuesta en MAGNITUD')
grid on
subplot(2,1,2)
plot(w/pi,H_phase)
xlabel('\omega/\pi' );
ylabel('\angle H(e^{j\omega})')
title('Respuesta de FASE')
grid on
%inciso b)
% La frecuencia de corte a 3 dB, ??, es la frecuencia a la cual la respuesta
%de magnitud es igual a 3 dB. Esto es: 20log10|Ho(e^jwc)| = 3
%(Se considera que la banda de paso es el rango de frecuencias menores a Wc
%y que la banda de paro es el rango de frecuencias mayores a Wc).
% Determinar gráficamente el valor de esta frecuencia, obteniendo
%la respuesta en frecuencia de magnitud dada en [dB]
fvtool(b,a);
% Sabemos que la frecuencia de corte del filtro se establece típicamente en
% -3(dB). Esta es la frecuencia en la que la amplitud de la señal filtrada
%cae a 0.707 de la amplitud. Ahora como vemos en la grafica esto
%se cumple a totalidad,teniendo como frecuencia de corte fc = 0.5*pi
% c) cambiando las variables (Ho(z))^3=((0.5)*(1+z^-1))^3
%Ho^3(z)=(1/8)*(1+3z^-1+3z^-2+z^-3)
b1=[1 3 3 1]; %numerador
a1 = 8; %denominador
w1 = linspace(0,pi,1000);
fvtool(b1,a1);
H1 = freqz(b1,a1,w1);%Vector de respuesta de frecuencia de "n" puntos h
H_mag1 = abs(H1);
figure(10)
plot(w1/pi,H_mag1)
xlabel('\omega/\pi')
ylabel('|H(e^{j\omega})|')
title('Respuesta en MAGNITUD')
grid on
%filtro pasa altos
w = linspace(0,pi,1000);
b = [1 -1]; %NUMERADOR
a = [2]; %DENOMINADOR
H = freqz(b,a,w);%Vector de respuesta de frecuencia de "n" puntos h
H_mag = abs(H);
figure(1)
plot(w/pi,H_mag)
xlabel('\omega/\pi' )
ylabel('|H(e^{j\omega})|' )
title('Respuesta en magnitud')
fvtool(b,a)
% para b
adc=20*log10(abs(H*exp(1i*3)));
figure(2)
plot(w/pi,adc)
% para f
w1 = linspace(0,pi,1000);
b1 = [1 -3 3 -1]; %NUMERADOR
a1 = [8]; %DENOMINADOR
H1 = freqz(b1,a1,w1);%Vector de respuesta de frecuencia de "n" puntos h
H_mag1 = abs(H1);
figure(3)
plot(w1/pi,H_mag1)
xlabel('\omega/\pi' )
ylabel('|H(e^{j\omega})|' )
title('Respuesta en magnitud')
fvtool(b,a)
%Ejercicio 3
%definimos variables
p1=[1 0 1]; %(1+z^-2)
p2=[1 0 -4 0 5 0 0 0 5 0 -4 0 1]; % (1-(4z^-2)+(5z^-4)+(5z^-8)-(4z^-10)+(z^-12))
b=conv(p1,p2); % Numerador H1 multiplicando ambos terminos
c=64; % Denominador
H1=fvtool(b,c); %realizamos el analisis respectivo con numerador b y denominador c
b2=[0 0 0 0 0 0 0 0 0 0 64 0 0 0 0]; %z^-10
b3=b2-b; %numerador H2
H2=fvtool(b3,c);
%ETN-1015
%Univ. Chávez Murillo Ricardo Alberto
clear all;
close all;
clc;
%Especificaciones del problema:
%Definimos variables
wp=(3*pi)/4;
ws=(5*pi)/6;
Ap=0.01;
As=74;
%Cálculo de variables absolutas (deltas)
dp=((10^(Ap/20)-1)/(10^(Ap/20)+1));
ds=10^(-As/20);
wc=(ws+wp)/2;
dw=ws-wp;
d=min(dp,ds);
L=ceil(11*pi/dw);
M=L-1;
%Filtro ideal pasa bajos
n=0:M;
a=M/2;
for i=0:M
if (i==66)
fid(i+1)=wc/pi;
else
fid(i+1)=(sin(wc*(i-a)))/(pi*(i-a));
end
end
% Generar filtro final
w_b=blackman(L);
f=fid.*w_b';
fvtool(f)
fvtool(fid)
figure(1)
% Respuesta impulso del filtro ideal
stem(fid), title('Filtro ideal'),grid on
figure(2)
% Respuesta impulso del filtro diseñado
stem(f), title('Filtro diseñado'),grid on
%Generamos una señal con distintas frecuencias para filtrar
%probando que el filtro funciona correctamente
% Elegimos una frecuencia de muestreo de 2[KHz]
Fs=2000;
T=1/Fs;
p=0:T:0.1;
f1=800;
w1=2*pi*f1;
f2=150;
w2=2*pi*f2;
%Señal de entrada para el filtro
g_e=3*sin(w1*p)-1.5*cos(w2*p)+5*sin(w2*p);
%La salida del filtro se obtiene mediante la convolución
%entre el filtro y la señal de entrada
y=conv(g_e,f,'same');
figure(5)
subplot(211), plot(p,g_e), title('Entrada'),grid on
subplot(212), plot(p,y), title('Salida filtrada'),grid on