Una señal de un solo tono s = sin(400πt) se transmite a un amplificador de audio y bocina para
producir una señal de advertencia. Un filtro con respuesta al impulso h = 400 e–200tcos(400πt) u(t) se
ha diseñado para reducir la interferencia aditiva en la señal recibida.
a. Determine la señal de salida del filtro, y, cuando se recibe la señal de entrada x = [cos(100 t) +
sin(400πt) – cos(800πt)] u(t).
b. Determine el espectro de magnitud de las señales de entrada y salida, y la magnitud de la respuesta en
frecuencia del filtro.
c. En una misma figura gráfica de las señales del tiempo x, h, y (en la primera columna) y sus espectros
de magnitud correspondientes en la segunda columna.
Desarrollo de la Sección a:
N=512;
fs=1000;
dt=1/fs;
T=N*dt;
t=0:dt:T-dt;
t1=(0:dt:T-dt)/9;
s=sin(400*pi.*t);
u=(0).*(t<0)+(1).*(t>=0);
h=((400*(exp(-200.*t))).*(cos(400*pi.*t))).*u;
ht1=((400*(exp(-200.*t1))).*(cos(400*pi.*t1))).*u;
x=(cos(100*pi.*t)+sin(400*pi.*t)-cos(800*pi.*t)).*(u);
xt1=(cos(100*pi.*t1)+sin(400*pi.*t1)-cos(800*pi.*t1)).*(u);
% a
[z tz]=conv_n(x,t,h,t);
y=z;
[z1 tz1]=conv_n(xt1,t1,ht1,t1);
yt1=z1;
desarrollo de la sección b:
xf=fft(x/N);
x1=abs(xf);
x2=x1(1:(N/2)+1);
x2(2: end-1)=2*x2(2:end-1);
hf=fft(h/N);
h1=abs(hf);
h2=h1(1:(N/2)+1);
h2(2: end-1)=2*h2(2:end-1);
N1=2*N-1;
yf=fft(y/N1, N1);
y1=abs(yf);
y2=y1(1:(N1/2)+1);
y2(2:end-1)=2*y2(2:end-1);
desarrollo de la sección c:
subplot(3,2,1)
plot(t1,xt1)
xlabel('t(s)');
ylabel('|x(t)|');
title('Senal de entrada x(t)');
subplot(3,2,3)
plot(t1,ht1,'r')
xlabel('t(s)');
ylabel('h(t)');
title('Respuesta del filtro al impulso ');
tz2=tz1/10;
subplot(3,2,5)
plot(tz1,yt1, 'g')
xlabel('t(s)');
ylabel('y(t)');
title('Senal de salida y(t)');
fx1=(fs/2)*(linspace(0,1,length(x2)));
subplot(3,2,2)
plot(fx1,x2,'r');
xlabel('f(Hz)');
ylabel('x(f)');
title('Espectro de magnitud de un lado de x(t)');
fh1=(fs/2)*(linspace(0,1,length(h2)));
subplot(3,2,4)
plot(fh1,h2,'m')
xlabel('f(Hz)');
ylabel('h(f)');
title('Respuesta en frecuencia del filtro');
fy1=(fs/2)*(linspace(0,1,length(y2)));
subplot(3,2,6)
plot(fy1,y2,'b')
xlabel('f(Hz)');
ylabel('y(f)');
title('Espectro de magnitud de un solo lado de la salida');
5. Considerando la señal periódica rectangular x(t), con periodo T0, definida por:
Gráficas de señal x utilizando la función pulstran, demostrando sus espectros de magnitud y fase. Parte 5,
secciones a, b, c.
desarrollo de la sección a:
T = 60;
N = 1000; % numero de muestras
dt = T/N; % periodo de muestreo
t = (0:N-1)*dt-40;
df = 1/T;
Fs = 1/dt;
f = (0:N-1)*df;
To = 10;
to = 1;
d = (-3:3)*To;
y = pulstran(t,d,'rectpuls',2*to);
desarrollo de la sección b:
%%
Y = fft((y)/N);
Y2 = abs(fftshift(Y));
Y1 = Y2(end/2+1:end);
Q = ceil((N+1)/2);
fQ = (Q-1)*df;
f2 = f-fQ;
f1 = f2(end/2+1:end);
P = angle(fftshift(Y));
desarrollo de la sección c:
Q = ceil((N+1)/2);
fQ = (Q-1)*df;
f2 = f-fQ; %eje f doble lado
f1 = f2(end/2+1:end); %eje f de un solo lado
figure
subplot (3,1,1), plot (t,y, 'b'), title('Pulsos generados'),
xlabel('t(s)'), ylabel('Amplitud'), axis([-40 40 -0.5 1.5]);
subplot (3,1,2), plot (f1,Y1,'g'), title('Espectro de Magnitud'),
xlabel('f(Hz)'), ylabel('Magnitud'), axis([-3 4 -0.05 0.25]);
subplot (3,1,3), plot (f2,P,'r'), title('Espectro de fase'),
xlabel('f(Hz)'), ylabel('Fase (rad/s)'), axis([-4 4 -5 5]);
desarrollo de la sección a:
N = 1000;
T = 50e-3;
dt = T/N;
fs = 1/dt;
df = 1/T;
t = (-N:N).*dt;
f = (-N:N).*df;
for i = 1:length(t)
if (t(i)>=0 & t(i)<=45e-3)
x(i) = cos(2*47*t(i)*pi) + cos(2*219*t(i)*pi);
else
x(i) = 0;
end
end
figure (1)
plot(t,x,'r');
title('x vs t');
xlabel('t(s)');
ylabel('x(t)');
grid on;
axis([-5e-3 50e-3 -2 2]);
Gráfica de la señal muestreada resultante (stem). esta gráfica se muestra con la del punto a en una sola figura.
Parte 6, sección b.
Desarrollo de la sección b:
%% b
figure (2)
subplot(2,1,1);
plot(t,x,'r');
title('Gráfica de la señal x vs. t');
xlabel('t(s)');
ylabel('x(t)');
grid on;
axis([-5e-3 50e-3 -2 2]);
subplot(2,1,2);
stem(t,x,'r');
title('Gráfica de la señal x vs. t');
xlabel('t(s)');
ylabel('x(t)');
grid on;
axis([-5e-3 50e-3 -2 2]);
Gráficas de espectros de amplitud y fase de la señal x(t). Parte 6, sección c.
desarrollo de la sección c:
%% c
X1 = fft(x).*dt;
X = fftshift(X1);
subplot(2,1,1);plot(f,abs(X),'m');
title('Espectro de Magnitud de la señal X(f)');
xlabel('f(Hz)');
ylabel('|Y(f)|');
grid on;
axis([-0.2e4 0.2e4 0 0.0215]);
subplot(2,1,2);plot(f,angle(X),'m');
title('Espectro de Fase de la señal X(f)');
xlabel('f(Hz)');
ylabel('°');
grid on;
axis([-500 500 -3 3]);
Gráfica de la respuesta en frecuencia del filtro pasa bajas Butterworth de orden 4 y frecuencia de corte de 100
Hz. Parte 6, sección d.
Desarrollo de la sección d:
%% d
[B,A] = butter(4,100/fs,'low');
figure (5)
freqz(B,A);
title('Respuesta en Frecuencia del Filtro Pasa Baja de orden 8, con fc = 100Hz');
Desarrollo de la sección e:
%% e
figure (6)
impz(B,A);
title('Respuesta al impulso');
axis([0 1000 -1.5e-3 6e-3]);
grid on;
Gráfica de la señal x(t) a través del filtro. Grafica de la señal de salida y(t), espectro de magnitud y de
fase. Parte 6, sección f.
Desarrollo de la sección f:
%% f
y = filter(B,A,x);
Y1 = fft(y).*dt;
Y = fftshift(Y1);
subplot(3,1,1);
plot(t,y);
grid on;
title('y(t)');
xlabel('t(seg)');
ylabel('y(t)');
axis([0 0.05 -4 4]);
subplot(3,1,2);
plot(f,abs(Y));
grid on;
title('Espectro de Magnitud de Y(F)');
xlabel('f(Hz)');
ylabel('|Y(f)|');
axis([-0.2e4 0.2e4 0 0.06]);
subplot(3,1,3);
plot(f,phase(Y));
grid on;
title('Espectro de Fase de Y(F)');
xlabel('f(Hz)');
ylabel('°');
axis([-0.2e4 0.2e4 -2 8]);
Gráfica de la respuesta en frecuencia del filtro pasa bajas Butterworth de orden 8 y frecuencia de corte de 100
Hz. Parte 6, sección g.1.
Gráfica de la señal x(t) a través del filtro de orden 8. Grafica de la señal de salida y(t), espectro de
magnitud y de fase. Parte 6, sección g.3.
Desarrollo de la sección g.3:
y = filter(B,A,x);
Y1 = fft(y).*dt;
Y = fftshift(Y1);
subplot(3,1,1);
plot(t,y);
grid on;
title('y(t)');
xlabel('t(seg)');
ylabel('y(t)');
axis([0 0.05 -4 4]);
subplot(3,1,2);
plot(f,abs(Y));
grid on;
title('Espectro de Magnitud de Y(F)');
xlabel('f(Hz)');
ylabel('|Y(f)|');
axis([-0.2e4 0.2e4 0 0.06]);
subplot(3,1,3);
plot(f,phase(Y));
grid on;
title('Espectro de Fase de Y(F)');
xlabel('f(Hz)');
ylabel('°');
axis([-0.2e4 0.2e4 -2 8]);