Está en la página 1de 30

“UNIVERSIDAD CATÓLICA DE SANTA MARÍA”

ESCUELA PROFESIONAL DE INGENIERIA MECÁNICA,


MECÁNICA ELECTRICA Y MECATRÓNICA

PROCESAMIENTO DIGITAL DE SEÑALES


PRÁCTICA

GRUPO : 01

TEMA : MUESTREO

PROFESOR : ING. JUAN CARLOS CUADROS MACHUCA

ALUMNO : RAMIREZ ZAMORA JOSE FELIPE BLAIR

2021
UNIVERSIDAD CATÓLICA DE SANTA MARÍA
Página: 1/30
FACULTAD DE CIENCIAS E INGENIERÍAS FISICAS Y
FORMALES Jefe de Prácticas:
ESCUELA PROFESIONAL Ing. Juan Carlos Cuadros
INGENIERIA MECÁNICA, MECÁNICA-ELÉCTRICA Y
MECATRÓNICA
Laboratorio de Procesamiento Digital de Señales
Código: 4E08143
Práctica 7 -Tema 2: MUESTREO Semestre: VIII
Grupo: 01
Apellidos y Nombres: RAMIREZ ZAMORA JOSE FELIPE P1-Tema N°: FECHA:
BLAIR 02 23/12/2020

INDICE
OBJETIVO.........................................................................................................................................................2
MATERIAL Y EQUIPO....................................................................................................................................2
PROCEDIMIENTO...........................................................................................................................................2
CONCLUSIONES Y OBSERVACIONES......................................................................................................30

OBJETIVO

 Ilustrar los dos principios básicos del proceso de muestreo; solapamiento (aliasing) y
reconstrucción.
 Analizar los fenómenos de solapamiento (aliasing).
 Comprender el concepto de reconstrucción de señales muestreadas.

MATERIAL Y EQUIPO

 Una PC con SO Windows y MATLAB con el toolbox de PDS instalado.

PROCEDIMIENTO

MUESTREO Y SOLAPAMIENTO
Considere una señal sinusoidal de la forma:
x ( t )=sin ( 2 π f 0 + φ )
Podemos obtener una señal de tiempo discreto muestreando x ( t ) a una frecuencia de muestreo

1
f 0=
Ts
f0
x [ n ] =x (t )|t=n / f =sin 2 π
s ( fs
+φ )
Si hacemos la representación de x [n]para diferentes valores de f 0 y f s se puede ver el efecto del
solapamiento.
Para los siguientes apartados tome como frecuencia de muestreo f s=8 KHz .
1.1. Haga la representación de una onda sinusoidal muestreada. La frecuencia de la onda
sinusoidal será de 300 Hz, tomándose las muestras cada 10 ms. La fase 𝜑 puede ser
arbitraria. Represente, con la función stem, la señal de tiempo discreto que se obtiene. Se
apreciará con facilidad que la envolvente de la señal discreta es una sinusoide, dado que la
vista obtiene una reconstrucción visual de la sinusoide.
PROGRAMA
f=300;%Establecemos la Frecuencia
fs=8000;%Frecuencia de muestreo
w=2*pi*f/fs;%se establece w
n=0:10/1000:30;%Valores de muestreo
phi=0;%Desfase
x1=sin(w.*n+phi);%Señal Seno
stem(n,x1)%aplicamos stem
title('Señal sinusoidal f=300 fs=8000');
xlabel('Tiempo');%eje x
ylabel('Amplitud');%eje y
grid on;
axis([0 30 -1.1 1.1]);%vision de la grafica
GRAFICA

1.2. Si es necesario, haga la representación con plot. En este caso, los puntos se conectan con
líneas rectas, resultando obvio el comportamiento sinusoidal. Conectar las muestras de la
señal con líneas rectas es una forma de «reconstrucción de la señal», obteniéndose una señal
de tiempo continuo a partir de las muestras de una señal de tiempo discreto. Ésta no es la
reconstrucción ideal de la señal especificada por el teorema de muestreo, pero en la mayoría
de las ocasiones será suficiente.
PROGRAMA
title('Señal sinusoidal f =300 fs=8000(Hz)');%titulo
plot(n,x1)%Aplicamos plot
xlabel('Tiempo');%eje x
ylabel('Amplitud');%eje y
grid on;
GRAFICA

1.3. Ahora haga una serie de representaciones, igual que en el apartado (4.1), pero variando la
frecuencia de la sinusoide desde 100 a 475 Hz, en saltos de 125 Hz. Observe que la
frecuencia aparente de la sinusoide se va incrementando, como era de esperar. Utilice
preferiblemente un subplot para que aparezcan las cuatro representaciones en una misma
pantalla.
PROGRAMA

L=length(f);%PASO UNO DETERMINAR LA CANTIDAD DE FIGURAS


f=100:125:475;%Saltos de frecuencia
for (i=3:L+2)%INICIAMOS EL BUCLE
w=2*pi*f(i-2)/8000;%w
n=0:10/1000:80;%intervalo n
phi=0;%aplicamos el desface
x1=sin(w.*n+phi);%Graficando la señal seno con f variable
figure(i)%Mostrando la gráfica con diferentes frecuencias
stem(n,x1);%aplicamos stem
title('Señal Sen');%titulo
xlabel('Tiempo');%eje x
ylabel('Amplitud');%eje y
grid on;
end

GRAFICA
1.4. Realice ahora una serie de representaciones, igual que en el apartado (IV.3) , pero variando
la frecuencia sinusoidal desde 7525 a 7900 Hz, en saltos de 125 Hz. Observe que la
frecuencia aparente de la sinusoide es ahora decreciente. Explique este fenómeno.
PROGRAMA
f=7525:125:7900;%Primero aplicamos los saltos de frecuencia
L=length(f);%aplicamos length
for (i=3:L+2)%INICIAMOS EL BUCLE
w=2*pi*f(i-2)/8000;%establecemos w
n=0:10/1000:1;%establecemos el intervalo n
phi=0;%aplicamos desface
x1=sin(w.*n+phi);%Graficando la señal seno con f variable
figure(i+4)%Mostrando la gráfica con diferentes frecuencias
stem(n,x1);%graficamos cons stem
title('Señal Senoidal');%titulo
xlabel('Tiempo');%eje x
ylabel('Amplitud');%eje y
grid on;
axis([0 1 -1.5 1.5]);%vision de la grafica
end
GRAFICA
1.5. De nuevo haga una serie de representaciones similares, pero variando la frecuencia de la
sinusoide desde 32100 a 32475 Hz, en saltos de 125 Hz. Pronostique si aumentará o
disminuirá la frecuencia aparente.
PROGRAMA
L=length(f);%
f=32100:125:32475;%aplicamos los saltos de frecuencia (f)
for (i=3:L+2)
w=(2*pi*f(i-2))/8000;
n=0:10/1000:1;%Valores de muestreo
phi=0;%aplicamos desfase
x1=sin(w.*n+phi);%Graficando la señal senoidal
figure(i+8)%Mostrando la gráfica con todos los valores de frecuencia
stem(n,x1);%graficamos aplicando stem
title('Señal Senoidal');%titulo
xlabel('Tiempo');%eje x
ylabel('Amplitud');%eje y
grid on;
axis([0 1 -1.5 1.5]);%Vision de la grafica
end
GRAFICA
MUESTREO EN EL DOMINIO DE LA FRECUENCIA
Cuando muestreamos una señal de tiempo continuo, su espectro presenta el efecto del
solapamiento (aliasing) porque existen repeticiones desplazadas de regiones del dominio de la
frecuencia. En MATLAB sólo se puede simular este efecto y éste es el objeto de este apartado.
La simulación constará de una operación de muestreo, seguida por un convertidor D/A (filtro
reconstructor incluido). Este sencillo sistema será excitado por sinusoides de diferentes
frecuencias y se compararán las transformadas de Fourier de las señales analógicas de la entrada
y de la salida. Los diferentes ejercicios van analizando cada una de las partes de los procesos de
muestreo y reconstrucción. Estos procesos deberían combinarse en un único programa que
realice la simulación completa.
Este programa habrá que guardarlo en un fichero con extensión *.m.
Sugerencias
Para simular las señales analógicas, deberá usarse una frecuencia de muestreo muy alta (al menos
cinco veces mayor que la frecuencia más alta que pueda tener la señal). Por tanto, tendremos dos
“frecuencias de muestreo” en el problema (una para el muestreo real bajo estudio y otra para
simular la señal de tiempo continuo). Una segunda cuestión es cómo representar la transformada
de Fourier de una señal de tiempo continuo. De nuevo, ésta únicamente puede ser simulada. El
siguiente archivo *.m debería usarse para representar el espectro analógico. Observe que una de
las entradas para la simulación es dt.
function ftplot(xa,dt)
%FTPLOT
% ftplot(xa,dt)
%
% xa: señal "ANALÓGICA"
% dt: el período de muestreo para la simulación de xa(t)
L=length(xa);
Nfft=round(2.^ round(log2(5*L)));
Xa=fft(xa,Nfft);
range=0:(Nfft/4);
r=length(range);
ff=range/Nfft/dt;
plot(ff/1000,abs(Xa(1:range)))
title('MÓDULO DE LA TRANSFORMADA DE FOURIER DE TIEMPO CONTINUO')
xlabel('FRECUENCIA(kHz)')
grid on
1.6. Genere una señal analógica simulada que sea una onda cosenoidal con frecuencia analógica
f 0.
x ( t )=cos ( 2 π f 0+ φ ) 0 ≤ t ≤T
Tome una fase aleatoria. Obtenga las muestras (a la frecuencia de muestreo) en un intervalo
de tiempo de longitud T. Seleccione la longitud T de la señal para tener de 900 a 1.000
muestras de la señal analógica simulada.

PROGRAMA

f=360;%Empecemos el muestro con la frecuencia


fs=80000;%paso 2 Frecuencia de muestreo
w=2*pi*f/fs;%establecemos w
T=1000;%establecemos T
n=0:10/1000:T-1;%establecemos el intervalo n
phi=0;%Aplicamos desface
x1=cos(w.*n+phi);%Señal Coseno
stem(n,x1)%aplicamos stem para graficar
title('Señal cosenoidal f=300 fs=80000 (Hz)');%titulo
xlabel('Tiempo');%eje x
ylabel('Amplitud');%eje y
grid on;
axis([0 1000 -1.3 1.3]);%vision de la grafica
GRAFICA

1.7. Represente la señal en el tiempo con plot a fin de que las muestras estén conectadas.
Asegúrese de que el eje de tiempo representa ahora el tiempo analógico verdadero.
PROGRAMA
title('Señal cosenoidal f=300 fs=80000 (Hz)');%titulo
plot(n,x1)%Aplicamos plot pra graficar
xlabel('Tiempo Analógico');%eje x
ylabel('Amplitud');%eje y
grid on;
axis([0 1000 -1.5 1.5]);%vision de la grafica
GRAFICA

1.8. Represente la transformada de Fourier de esta señal (utilice ftplot).


CONVERSIÓN A/D
El convertidor A/D toma muestras cada T S. Se simula tomando un subconjunto de las muestras
de x (t ). Para evitar complicaciones no necesarias, el cociente entre f ¿ y la frecuencia de muestreo
del convertidor A/D, f S, será un número entero Ɩ. Entonces, para simular la conversión A/D se
puede seleccionar una de cada Ɩ muestras del vector x (t ).
PROGRAMA
function ftplot(xa,dt)%Activamos ftplot
dt=1/80000;%aplicamos la frecuencia de muestreo
f=360;%aplicamos frecuencia
dt=80000;%frecuencia de muestreo
w=2*pi*f/dt;%establecemos w
n=0:10/1000:1000;%numero de intervalos para n
phi=0;%aplicamos el desface
xa=cos(w.*n+phi);%Señal Cosenoinal
L=length(xa);%aplicamos length
Nfft=round(2.^ round(log2(5*L)));
Xa=fft(xa,Nfft);
range=0:(Nfft/4);
r=length(range);
ff=range/Nfft/dt;
y=abs(Xa);%aplicamos abs
plot(ff/1000,y(1:length(range)));%graficamos plot
title('Modulo de la trasformada de fourier ')%titulo
xlabel('Frecuencia kHz');%eje x
ylabel('Amplitud');%eje y
grid on;
end
GRAFICA

1.9. Represente la señal de tiempo discreto resultante cuando f S =8 KHz.

PROGRAMA

f=360;%Empezamos estableciendo la frecuencia

fs=8000;%tenemos la frecuencia de muestreo

w=2*pi*f/fs;%

T=1000;%establecemos T

n=0:10/1000:T-1;%Valores de muestreo

phi=0;%aplicamos el desface

x1=cos(w.*n+phi);%Señal Cosenoidal

stem(n,x1)%graficamos con stem

title('Señal cosenoidal a f=300 fs=8000 (Hz)');%Titulo


xlabel('Tiempo');%eje x

ylabel('Amplitud');%eje y

grid on;

axis([0 100 -1.5 1.5]);%vision de la grafica

GRAFICA

1.10. Calcule la DTFT de la señal de tiempo discreto y explique cómo se relaciona con la
transformada de Fourier de la señal analógica del ítem 4.8.
DISEÑO DE UN FILTRO RECONSTRUCTOR
La sección D/A consta de dos partes; un espaciado en el tiempo, de valor el tiempo de muestreo
TS, de las muestras de tiempo discreto, seguido por un filtro reconstructor analógico.
PROGRAMA
xdftmod=abs(xdft);%PROBLEMA 9
xdft=fft(x1);
stem(n,xdftmod)%Graficamos con stem
title('DFT de la señal coseno');%titulo
xlabel('Tiempo');%eje x
ylabel('Amplitud');%eje y
grid on;
axis([-10 110 -20 4000]);%vision de grafica

GRAFICA

1.11. El filtro reconstructor tendrá que ser, por supuesto, un filtro digital que simule el
verdadero filtro analógico. Utilice la función del MATLAB cheby2 para diseñar este filtro:
[b,a]=cheby2(9,60,fcut). Esto diseñará un filtro de orden 9 con 60 dB de atenuación

1
en la banda atenuada. La frecuencia de corte analógica tiene que ser f . Para el MATLAB
2 S
ésta se ha escalado a fcut=2*(fsamp/2)/fsim.
PROGRAMA
%problema 4.11
fsamp=360;%Aplicamos fsamp
fsim=80000;%fsim
fcut=2*(fsamp/2)/fsim
[b,a] = cheby2(9,60,fcut);
freqz(b,a);%frecuencia
RESPUESTA

fcut = 0.0045

1.12. Ahora use freqz para representar la respuesta en frecuencia del filtro reconstructor
simulado. Para obtener en la representación la verdadera frecuencia de corte analógica, debe

1
recordar que éste es un filtro digital, donde la frecuencia w=π se asigna a f .
2 ¿
CONVERSIÓN D/A
La conversión D/A consta de la creación de una señal analógica x ̂ (t) a partir de la señal de
tiempo discreto x [n] y a continuación una etapa de filtrado realizada con un filtro de Chebyshev.
El vector de MATLAB que simula la señal analógica x ̂ (t) se reconstruye a partir del vector de
la señal de tiempo discreto insertando un número de ceros entre cada muestra. El número de
ceros dependerá del cociente f ¿ / f s.
1.13. Realice la inserción de ceros sobre la señal generada en el ítem 4.6 y muestreada en el
apartado Conversión A/D. Seguidamente aplique el filtro reconstructor de Chebyshev para
conseguir una salida «suavizada»
1.14. Represente la señal de salida de tiempo continuo x r (t) y su transformada de Fourier.
PRUEBAS
Todos los pasos anteriores se deberán introducir en un único archivo *.m. A continuación, se
pueden realizar las pruebas.
PROGRAMA
n=9;%Establecemos el grado
wp=360;%establecemos wp
wn=100;%establecemos wn
fsamp=360;%aplicamos la frecuencia
fsim=8000;%aplciamos frecuencia de muestreo
T=1/fsim;%establecemos T
L=1000;%establecemos la longitud de la señal que nos da el ejercicio
t=(0:L-1)*T;
phi=0;%aplicamos el desface
x1=cos(2*pi*fsamp*t+phi);%Señal coseno
fcut=2*(fsamp/2)/fsim;%aplicamos frecuencia de corte
[b,a]=cheby2(n,wp,fcut);%aplicamos filtro Chebyshev
subplot(211);
plot(t,x1);%graficamos con plot
grid on;
subplot(212);
xdft=fft(x1);
absxdft=abs(xdft);
plot(t,absxdft);%Graficando con plot
grid on;
[h w]=freqz(b,a);%Respuesta en frecuencia
plot(w,abs(h));%graficamos con plot la frecuencia
grid on;
senhalfilt=filter(b,a,x1);%aplicamos laseñal filtrada
xdftfiltr=fft(senhalfilt);%DFT de la señal filtrada
subplot(211);
plot(senhalfilt);%Graficando la señal filtrada
grid on;
subplot(212);
xdft=fft(x1);
plot(t,xdftfiltr);%Graficando la DFT con plot
grid on;
GRAFICAMOS
1

1
0.5

0.5
0

0
-0.5

-0.5
-1
0 0.02 0.04 0.06 0.08 0.1 0.12 0.14
-1
0 0.02 0.04 0.06 0.08 0.1 0.12 0.14

600

600

400

400

200

200

0
0 0.02 0.04 0.06 0.08 0.1 0.12 0.14
0
0 0.02 0.04 0.06 0.08 0.1 0.12 0.14

1
0.5

0.5
0

0
-0.5

-0.5
-1
0 0.02 0.04 0.06 0.08 0.1 0.12 0.14
-1
0 0.02 0.04 0.06 0.08 0.1 0.12 0.14

600

600

400

400

200

200

0
0 0.02 0.04 0.06 0.08 0.1 0.12 0.14
0
0 0.02 0.04 0.06 0.08 0.1 0.12 0.14

1.15. Tome como frecuencia de muestreo f ¿=8 kHz; y como frecuencia de la señal de
entrada f 0=6 KHz . Haga las representaciones de las transformadas de Fourier de las señales
de entrada y salida y compárelas representándolas de forma conjunta.
PROGRAMA
n=9;%Establecemos n
wp=60;%establecemos wp
wn=200;%establecemos wn
fsamp=6000;%aplicamos la frecuencia
fsim=8000;%aplicamos la frecuencia de muestreo
T=1/fsim;%establecemos T
L=100;%Colocamos la longitud de la señal
t=(0:L-1)*T;
phi=0;%aplicamos el desface
x1=cos(2*pi*fsamp*t+phi);%Señal cosenoidal
fcut=2*(fsamp/2)/fsim;%aplicamos frecuencia de corte
[b,a]=cheby2(n,wp,fcut);%Filtro Chebyshev
subplot(211);
plot(t,x1);%graficamos con plot
title('Señal cosenoidal');%titulo
xlabel('Tiempo');%eje x
ylabel('Amplitud');%eje y
grid on;
subplot(212);
xdft=fft(x1);
absxdft=abs(xdft);
plot(t,absxdft);%graficamos con plot
title('DFT de la señal cosenoidal');%titulo
xlabel('Frecuencia');%eje x
ylabel('Amplitud');%eje y
grid on;
[h w]=freqz(b,a);%tenemos la respuesta en frecuencia
plot(w,abs(h),'r');%Gráfica con plot
title('Gráfica de la frecuencia');%titulo
xlabel('Frecuencia');%eje x
ylabel('Amplitud');%eje y
grid on;
senhalfilt=filter(b,a,x1);%aplicamos la señal filtrada
xdftfiltr=fft(senhalfilt);%DFT de la señal filtrada
subplot(211);
plot(senhalfilt);%Graficando la señal filtrada
title('Señal filtrada');%titulo
xlabel('Tiempo');%eje x
ylabel('Amplitud');%eje y
grid on;
subplot(212);
xdft=fft(x1);
plot(t,xdftfiltr);%Graficando la DFT de la señal filtrada
title('DFT de la señal filtrada');%titulo
xlabel('Frecuencia');%eje x
ylabel('Amplitud');%eje y
grid on;
GRAFICA
Gráfica de la frecuencia
1 Gráfica de la frecuencia
1

0.9
0.9

0.8
0.8

0.7
0.7

0.6
0.6
Amplitud
Amplitud

0.5
0.5

0.4
0.4

0.3
0.3

0.2
0.2

0.1
0.1

0
00 0.5 1 1.5 2 2.5 3 3.5
0 0.5 1 1.5 2 2.5 3 3.5
Frecuencia
Frecuencia

1.16. Ahora pruebe para diferentes frecuencias de la señal de entrada:


f 0=6 kHz ,7 kHz , 9 kHz , 10 kHz y 15 kHz . Como f s, es solamente 100 kHz, la frecuencia de
entrada no se deberá tomar mayor de 20 kHz. Represente y compare las transformadas de
Fourier de las señales de entrada y salida. Indique dónde comienza a aparecer el
solapamiento.
PROGRAMA
n=9;%Establecemos n
wp=60;%establecemos wp
wn=200;%establecemos wn
fsamp=6000;%Aplicamos la frecuencia
fsim=100000;%Aplicamos la frecuencia de muestreo
T=1/fsim;%establecemos T
L=100;%Ingresamos la longitud de la señal
t=(0:L-1)*T;%establecemos t
phi=0;%aplicamos desface
x1=cos(2*pi*fsamp*t+phi);%Aplicamos senal cosenoidal
fcut=2*(fsamp/2)/fsim;%Aplicamos la frecuencia de corte
[b,a]=cheby2(n,wp,fcut);%Filtro Chebyshev
subplot(211);
plot(t,x1);%Señal cosenoidal
title('Señal coseno');%titulo
xlabel('Tiempo');%eje x
ylabel('Amplitud');%eje y
grid on;
subplot(212);
xdft=fft(x1);
absxdft=abs(xdft);%aplciamos abs
plot(t,absxdf);%Graficamos con plot
title('DFT señal coseno');%titulo
xlabel('Frecuencia');%eje x
ylabel('Amplitud');%eje y
grid on;
[h w]=freqz(b,a);%obtenemos la respuesta en frecuencia
plot(w,abs(h),'r');%Gráficamos en plot la frecuencia
title('Gráfica de la frecuencia');%titulo
xlabel('Frecuencia');%eje x
ylabel('Amplitud');%eje y
grid on;
senhalfilt=filter(b,a,x1);%aplicamos la señal filtrada
xdftfiltr=fft(senhalfilt);%DFT de la señal filtrada
subplot(211);
plot(senhalfilt);%graficamos plot
title('Señal filtrada');%titulo
xlabel('Tiempo');%eje x
ylabel('Amplitud');%eje y
grid on;
subplot(212);
xdft=fft(x1);
plot(t,xdftfiltr,'b');%Graficamos con plot
title('DFT señal filtrada');%titulo
xlabel('Frecuencia');%eje x
ylabel('Amplitud');%eje y
grid on;

GRAFICAMOS

Señal filtrada
0.04 Señal filtrada
0.04

0.02
0.02
Amplitud
Amplitud

0
0

-0.02
-0.02
0 10 20 30 40 50 60 70 80 90 100
0 10 20 30 40 50 60 70 80 90 100
Tiempo
Tiempo
DFT de la señal filtrada
DFT de la señal filtrada
0.5
0.5
Amplitud
Amplitud

0
0

-0.5
-0.5
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
Frecuencia 10
-3
Frecuencia 10
-3

1.17. Utilice subplot para ilustrar gráficamente los efectos del solapamiento. Para ello,
haga las siguientes cuatro representaciones de forma conjunta: x (t ), x [n], x ̂ (t) y x r (t) .
Otra representación múltiple interesante mostrará conjuntamente x (t ), x r (t) y sus
correspondientes transformadas de Fourier.

CONCLUSIONES Y OBSERVACIONES

 Este practica se concluyó de manera correcta ya que las gráficas fueron obtenidas de manera
óptima de la manera que fueron explicadas en el laboratorio correspondiente
 En esta práctica se logró ilustrar los dos principios básicos del proceso de muestreo;
solapamiento aliasing y reconstrucción en los apartados de la practica con lo que llegamos a
comprenderlos.
 En la práctica realizada nos pedían analizar los fenómenos de solapamiento o más conocido
como aliasing lo cual fue bastante tedioso, pero se logró solucionar los apartados que nos
solicitaban dicho análisis.
 En la mayoría de aparatados las gráficas obtenidas son de forma senoidal esto es muy bueno
ya que esta grafica es conocida por todos y es mucho más fácil la interpretación de dicho
resultado
 Para la resolución de esta práctica se necesitaba previamente comprender el concepto de
reconstrucción de señales muestreadas ya que en la práctica bastantes apartados daban
mención a ello se recomienda que para la resolución se tenga un breve concepto de
reconstrucción de señales

También podría gustarte