Documentos de Académico
Documentos de Profesional
Documentos de Cultura
CURSO:
Control Mecatronico 2
PRACTICA 3: Aliasing
PRESENTADO POR:
GRUPO:
“03”
AREQUIPA – PERÚ
CODIGO N°1
Nota: el código número uno presenta fallas al invocar unas librerías con los comandos por lo cual no se
pudo realizar
CODIGO N°2
clc;
clear all;
close all;
t_end = 0.1;
%buen muestreo
fs=10000; %freuencia del muestreo
t = 0:1/(fs-1):t_end;%tiempo de muestreo de señal
f_vector = (0:1/(length(t)/2-1):1).*fs/2;
x1=2*cos(2*pi*100*t)+(2*pi*1000*t)+0.5*cos(2*pi*2000*t);%ecuacion equivalente
X1=abs(fft(x1));%operacion de valor absoluto
figure
subplot(2,2,1)
plot(t,x1); %operacion plot permite graficar la funcion en continuo
title('buen muestreo - señal')
grid on
subplot(2,2,3)
stem(f_vector,X1(1:end/2));%operacion stem permite graficar la forma discreta de la
funcion
title('buen muestreo - espectro de magnitud')
grid on
%mala muestra
% ahora efectuamo lo anterior
% descrito pero con una frecuencia
% menor mostrando un muestreo no exacto
fs2=3000;
t2 = 0:1/(fs2-1):t_end;
f_vector2 = (0:1/(length(t2)/2-1):1).*fs2/2;
x2=2*cos(2*pi*100*t2)+(2*pi*1000*t2)+0.5*cos(2*pi*2000*t2);
X2=abs(fft(x2));
subplot(2,2,2)
plot(t2,x2);
title('mal muestreo - señal')
grid on
subplot(2,2,4)
stem(f_vector2,X2(1:end/2));
title('mal muestreo - espectro de magnitud')
grid on
CODIGO N°3
hold on
plot(omega,abs(Hy),'r','linewidth',2)
legend('Original Signal','Downsampled Signal')
text(-2.5,0.35,'\downarrow aliasing','HorizontalAlignment','center')
text(2.5,0.35,'aliasing \downarrow','HorizontalAlignment','center')
hold off
plot(omega,abs(Hx))
xlim([-pi pi])
grid
title('Magnitude Spectrum')
xlabel('Radians/Sample')
ylabel('Magnitude')
y = downsample(B1,2,0);
[Hy,W] = freqz(y,1,8192,'whole');
Hy = [Hy(4098:end) ; Hy(1:4097)];
hold on
plot(omega,abs(Hy),'r','linewidth',2)
legend('Original Signal','Downsampled Signal')
text(-2.5,0.35,'\downarrow aliasing','HorizontalAlignment','center')
text(2.5,0.35,'aliasing \downarrow','HorizontalAlignment','center')
hold off
[Hx,W] = freqz(B2,1,8192,'whole');
Hx = [Hx(4098:end) ; Hx(1:4097)];
omega = -pi+(2*pi/8192):(2*pi)/8192:pi;
plot(omega,abs(Hx))
xlim([-pi pi])
y = downsample(B2,2,0);
[Hy,W] = freqz(y,1,8192,'whole');
Hy = [Hy(4098:end) ; Hy(1:4097)];
hold on
plot(omega,abs(Hy),'r','linewidth',2)
grid
legend('Original Signal','Downsampled Signal')
xlabel('Radians/Sample')
ylabel('Magnitude')
hold off
plot(omega,abs(Hx))
xlim([-pi pi])
y = downsample(B3,2,0);
[Hy,W] = freqz(y,1,8192,'whole');
Hy = [Hy(4098:end) ; Hy(1:4097)];
plot(omega,abs(Hx))
hold on
plot(omega,abs(Hy),'r','linewidth',2)
grid
legend('Original Signal','Downsampled Signal')
xlabel('Radians/Sample')
ylabel('Magnitude')
hold off
CODIGO N°4
title(strcat('fm=',num2str(fm),'fm=',num2str(f)));
drawnow;
CODIGO N°5
figure(3)
subplot(211)
plot(t,x1)
hold on
plot(k*T,x1k,'o-r')
subplot(212)
plot(t,x2)
hold on
plot(k*T,x2k,'o-r')
CODIGO N°6
%señal 1 y 2
x1t=cos(2*pi*f1*t);
x2t=cos(2*pi*f2*t);
%visualizacion de señales 1 y 2 en figura 1
figure(1)
subplot(211)
plot(t,x1t)
subplot(212)
plot(t,x2t);
%graficamos el discreto
clear all
close all
%Se crea un vector de tiempos de 10000 puntos tomados cada milisegundo.
ts=1e-4;
t=0:ts:1-ts;
%frecuencias de las señales de entrada
w1=10;
w2=30;
%frecuencias de muestreo
f1=50/2/pi; f2=300/2/pi;
%señal de entrada
y=sin(w1*t)+sin(w2*t);
y1 = muestra(y,ts,f1);
y2 = muestra(y,ts,f2);
plot(t,y)
figure(2)
plot(t,y1)
figure(3)
plot(t,y2)
%Borro todas las gráficas
close all
%Para dibujar los espectros, donde podemos ver si hay aliasing o no,
%usamos el comando psd(señal,N.puntos para fft, frecuencia de muestro de la
%señal)
psd(y,2^14,1/ts);
psd(y1,2^14,1/ts);
psd(y2,2^14,1/ts);
nota: el código anterior al querer correrlo vota un error sobre la variable muestrea
la cual suponemos es por el código mismo que ya definió esa variable.
CODIGO N°8
%señal senoidal de 2 Hz
a = sin(2*pi*2*t); %2Hz sine wave
%señal senoidal de 18 Hz
b = sin(2*pi*18*t); %18Hz sine wave
plot(t, a);
hold on;
plot(t, b, 'red');
CODIGO N°9
%señal senoidal de 2 Hz
a = sin(2*pi*2*t); %2Hz sine wave
%señal senoidal de 18 Hz
b = sin(2*pi*18*t); %18Hz sine wave
%señal senoidal de 2 Hz
a = sin(2*pi*2*t); %2Hz sine wave
%señal senoidal de 18 Hz
b = sin(2*pi*18*t); %18Hz sine wave
%señal senoidal de 22 Hz
c = sin(2*pi*22*t); %22Hz sine wave
%señal senoidal de -2 Hz
d = sin(2*pi*-2*t); %%-2Hz sine wave
% visualizar 4 señales
plot(t, a);
hold on;
plot(t, b, 'r');
plot(t, c, 'ko');
plot(t, d, 'g*');