Sei sulla pagina 1di 21

UNIVERSIDAD DE LAS FUERZAS ARMADAS ESPE

INGENIERIA ELECTRONICA E INSTRUMENTACION


PROCESAMIENTO DIGITAL DE SEÑALES

NOMBRE: Santiago Guanoluisa


FECHA: 16 de junio del 2018
TEMA: PRÁCTICA No. 1: Muestreo de Señales Continuas.

1.- INFORMACIÓN TEÓRICA

a) Teoría de muestreo

El proceso idealizado de muestreo de una señal y de la reconstrucción


subsiguiente de la señal desde las muestras se representa en la Figura 1.

x(nTs)
f(t) C/D D/C y(t)

Figura 1: Muestreo y reconstrucción de una señal continua en el tiempo.

Esta figura muestra una señal continua f(t) , que se muestrea usando un
conversor C/D (continua a discreta) para producir una sucesión de valores
discretos x[n] =f(nTs), donde n es un entero que es el índice de muestreo y Ts es
el período de muestreo. La frecuencia de muestreo es el valor fs = 1/Ts.
El conversor D/A (discreta a continua) ideal discreto permite transformar de
nuevo los valores discretos e interpolar una curva suave entre ellos. El Teorema
de Muestreo dice que si se elige una frecuencia de muestreo superior a dos veces
la frecuencia mayor, fmax, presente en la señal de entrada, es decir fs > 2*fmax,
entonces la salida y(t) en el sistema, será igual a la entrada f(t) si se reconstruye
adecuadamente la señal. Para obtener la frecuencia fmax se puede representar la
entrada como una suma de sinusoidales y fmax será le frecuencia asociada a la
componente de mayor frecuencia con amplitud distinta de cero.

La mayoría de los computadores tienen un conversor análogico-digital


incorporado (A/D) y un conversor digital-análogico (D/A) incluido en la tarjeta
de sonido. Estos sistemas son las realizaciones físicas de los conceptos idealizados
de convertidores A/D y D/A respectivamente.

b) Conversión D/A

El proceso de conversión digital/analógico que se necesita solo va a


depender del tiempo (Ts) entre las muestras de la señal y en caso de querer
reproducir la señal con la tarjeta de sonido, deben corresponder al valor de
muestreo del conversor D/A que se este usado. Desde Matlab, esto se hace por
el comando sound (x,fs).

Esta función soporta muestreo variable si el hardware de la máquina tiene


tal capacidad, una elección conveniente para la conversión D/A es el valor es
8000 muestreos por segundo, y Ts = 1/8000 segundos. Otra elección común es
11.025 Hz que corresponde a un cuarto del valor de muestreo en uso para discos
CD audio.

c) Generación de sonido con MATLAB.

Para generar un sonido, el primer paso consiste en entender el


funcionamiento del comando MatLab

sound(x,fs)

Para obtener la información relativa al comando utilice la ayuda: help sound .

En los ejercicios se pide generar diferentes señales sinusoidales discretas


en el tiempo con Matlab. Varie la amplitud, el tiempo de muestreo y la frecuencia
de las señales y escúchelas con el comando sound. Tenga en cuenta que se pueden
producir efectos de saturación y en este caso se debe escalar adecuadamente la
amplitud de la señal para permitir observar diferencias en el comportamiento de
las señales.

2.- DESARROLLO DE LA PRÁCTICA

a) Muestreo de señales continuas. Representación en el dominio del tiempo

Un conversor A/D ideal se implementará en Matlab tomando la fórmula


para la señal continua y evaluando la señal en los valores de tiempo nTs.

Procedimiento:
- Represente los dos primeros ciclos de la señal continua.

yc(t)= cos (2*pi*f*t)


- Utilice dt = 0.0001 = 100 microsec y calcule los valores para un intervalo de
1 segundo. t = 0:dt:1 y una frecuencia f = 100Hz.

dt=0.0001;
t = 0:dt:1;
f=100;
yc = cos(2*pi*f*t);
disp(yc)

- Considere la Frecuencia de muestreo fs = 1000Hz, calcule la señal discreta


resultante yd[n] de la evaluación de la señal continua yc(t) en los tiempos de t
= nTs (es decir, yd[n]= yc(nTs) ).

dt=0.0001;
t = 0:dt:1;
f=100;
yc = cos(2*pi*f*t);
disp(yc)

- Represente la señal discreta en la misma escala para compararla con la


primera.

% MUESTREO
dt=0.0001;
t = 0:dt:1;
f=100;
yc = cos(2*pi*f*t);
subplot(2,1,1);
plot(t,yc);
grid
xlabel('Tiempo, s');
ylabel( 'Amplitud');
title('Señal continua y_{c}(t)');
axis([0 1 -1.1 1.1]) ;
subplot(2,1,2);
fs=1000;
Ts = 1/fs;
T =0:Ts:1;
yd = cos(2*pi*f*T);
k = 0:length(T)-1;
stem(k,yd);
grid
xlabel('índice de muestreo')
ylabel('Amplitud')
title('Señal discreta y_d[n]')
Nota: “Para diferenciar las representaciones utilice siempre que sea
posible la función plot para las señales continuas y stem para las
segundas”.

b) Criterio de muestreo.

El cambio de frecuencia de muestreo va a permitir analizar los criterios de


muestreo.

Procedimiento:

- Pruebe bajo las mismas condiciones que en el ejercicio anterior las siguientes
modificaciones.

- Mantenga la frecuencia de muestreo fs = 1000 Hz y represente señales con f


= 10 Hz, f = 50 Hz, f = 250 Hz, f = 500 Hz, f = 1000 Hz, f = 450 Hz.

f=10 Hz
F=50 Hz
f=250 Hz

f=500 Hz

F=1000 Hz
f=450 Hz

- Realice las mismas representaciones y señale que ocurre cuando la frecuencia


de la señal coincide con la mitad de la frecuencia de muestreo.
f=10 Hz y fs=10 Hz

El muestreo a la misma freciuencia toma una muestra por ciclo.

- Compruebe a partir de que frecuencia de muestreo la señal representada por


muestras discretas no se parece a la señal continua.

f=10 Hz y fs=100 Hz
f=10 Hz y fs=50 Hz

f=10 Hz y fs=20 Hz
f=10 Hz y fs=19 Hz

Con frecuencias de muestreo menores al doble de la frecuencia de la señal


continua la señal muestreada no se parece a la señal continua.

c) Multiples aliasing de una señal muestreada

La variación de la frecuencia de muestreo en forma inadecuada y sin


cumplir las condiciones ocasiona el aliasing.

Procedimiento:
- Represente en la misma gráfica dos señales sinusoidales continuas de diferente
frecuencia y sus señales discretas correspondientes, que cumplan la relación
f2 = f1 + kfs, siendo k un entero y fs la frecuencia de muestreo.

%aliasig
clc
clear all
%señales continuas
dt = 0.0001;
t =0:dt:1;
f1=10;
yc1= sin(2*pi*f1*t);
subplot(3,1,1)
plot(t,yc1,'b')
hold on
fs=100;
k=0;
f2=f1+k*fs;
yc2= sin(2*pi*f2*t);
plot(t,yc2,'r')
xlabel('Tiempo, s');
ylabel( 'Amplitud');
title('Señales continuas ');
%señal discreta
Ts = 1/fs;
T =0:Ts:1;
yd1 =sin(2*pi*f1*T);
k = 0:length(T)-1;
subplot(3,1,2)
stem(k,yd1);
grid
xlabel('índice de muestreo')
ylabel('Amplitud')
title('Señal discreta y1_d[n]')
yd2 = sin(2*pi*f2*T);
k = 0:length(T)-1;
subplot(3,1,3)
stem(k,yd2,'r');
grid
xlabel('índice de muestreo')
ylabel('Amplitud')
title('Señal discreta y2_d[n]')

- Pruebe con diferentes valores de k y explique los resultados.

f=10 Hz , fs=100 Hz y k=0


f=10 Hz , fs=100 Hz y k=5

Para k mayores a 0 la señal yc2 toma frecuencias más altas por tanto la frecuencia de muestreo
no satisface la frecuencia Nyquist y no es posible recuperarla (son frecuencias alias).

- Generar una señal sinusoidal de frecuencia 5 Hz, muestreada a fs = 20 Hz . Se


pide obtener un conjunto de señales sinusoidales que sean un alias de esta
señal sinusoidal de frecuencia 5 Hz.

𝐹𝑎𝑙𝑖𝑎𝑠 = 𝐹0 + 𝑘. 𝐹𝑠

Con k=0
Con k=2

Con k=5

- Para una señal sinusoidal de frecuencia 5 Hz, muestreada a fs = 2.5 Hz, fs = 5


Hz fs = 10 Hz y fs = 20 Hz . Determine la frecuencia de Nyquist e indique
para cuales de las frecuencias anteriores se presenta el problema de aliasing.
𝐹𝑁𝑌𝑄𝑈𝐼𝑆𝑇 ≥ 2. 𝐹𝑜

𝐹𝑁𝑌𝑄𝑈𝐼𝑆𝑇 ≥ 2(5)

𝐹𝑁𝑌𝑄𝑈𝐼𝑆𝑇 ≥ 10 𝐻𝑧

Con fs=2.5 Hz ( existe aliasing)

Con fs=5 Hz ( existe aliasing)


Con fs=10 Hz ( existe aliasing)

Con fs=20 Hz ( no existe aliasing)


d) Generación de sonido con Mattlab

La comprobación de los efectos del muestreo con la generación de sonido


complementa la comprensión de este tema.

Procedimiento:
- Para utilizar el comando sound, obtenga un vector x1 de valores muestreados
en una sinusoidal con A = 1, f = 400 Hz y  = 0. Use un valor de muestreo de
8000 muestras/segundo, y calcule el número total de muestras equivalente a
un tiempo de duración de 2 segundos.

clc
clear
RA = 1;
f = 400;
fase = pi;
Fs = 8000;
n = 1:2*Fs;
Ts = 1/Fs;
x1 = RA*sin(2*pi*f*(n*Ts) + fase); sound(x1, 16e3)

- Mediante el comando, sound( ), escuche el resultado de convertir el vector x1


a través del convertidor D/A de la tarjeta de sonido del PC. ( Estas tarjetas
suelen soportar fs = 8000 Hz o fs = 11025 Hz.

clc
RA= 1;
f = 800;
fa = pi/3;
Fs = 8000;
n = 1:2*Fs;
Ts = 1/Fs;
R2 = RA*sin(2*pi*f*(n*Ts) + fa);
sound(R2, Fs)
xx = [x1 zeros(1,2000) x2];

- Varíe la amplitud de la señal y calibre a partir de que valor se satura la tarjeta


de sonido ¿Cómo puede conseguirse que una señal se escuche a la mitad de
volumen? Para una amplitud no saturada varíe la fase ¿Qué efecto auditivo
produce el cambio de fase?.

 La señal de audio se satura cuando A=5


 Produce un tono fuerte al inicio y final del sonido generado.
 El sonido se va estabilizando al variar la fase

- Calcule un nuevo vector x2 ( 2 segundos de duración) de muestras tomadas en


una sinusoidal con A = 1, f = 800 Hz, y  = pi/3. Escuche el sonido de la señal
reconstruida a partir de las muestras.¿ Cuales son las diferencias encontradas
con respecta a la señal del apartado?. Genere una nueva señal que incluya
ambas mediante la siguiente sentencia Matlab ( se supone que ambos vectores
son vectores fila):

xx = [ x1 zeros(1,2000) x2];

clc
a=1
wo=2*pi*400
fi=36
t=0:2/16000:2
y=a.*sin((wo.*t)+fi)
plot(t,y)
sound(y)
a=1
wo=2*pi*800
fi=pi/3
t=0:2/16000:2
y1=a.*sin((wo.*t)+fi)
xx=[y zeros(1,2000) y1];
sound(xx)

Que se escuchará? Compruébelo.

Se escucha 2 tonos el cual el segundo obtenemos un resultado más limpio


- Vuelva a escuchar el resultado de enviar la señal xx al conversor D/A, pero
cambie la frecuencia de muestreo en el comando sound( ) a un valor de 16.000
muestras/segundo. No hay que recalcular las muestras de xx, solamente
indicar que la frecuencia de muestreo del convertidor D/A será 16.000
muestras/segundo. Describa las diferencias que se escuchan en este caso, tono,
duración...

El sonido es más limpio y más fino

d) Generación de un alias de una señal audible

La comprobación de los efectos del aliasing con la generación de sonido


complementa la comprensión de este tema.

Procedimiento:
- Compruebe audiblemente el problema de aliasing, para ello genere y escuche
un tono a 440 Hz, utilizando una fs= 8000Hz.

clc
clear
close all
RA = 1;
f = 440;
fas = 0;
Fs = 8000;
n = 1:2*Fs;
Ts = 1/Fs;
x = RA*sin(2*pi*f*(n*Ts) + fas);
sound(x, Fs)
subplot(2, 1, 1)
stem(n(1:120)*Ts, x(1:120),'b');
grid on
hold on
title(['F = ', num2str(f), ' Hz'])
k =2;
f2 = f+k*Fs;
x2 = RA*sin(2*pi*f2*(n*Ts) + fas);
sound(x, Fs)
subplot(2, 1, 2)
stem(n(1:120)*Ts, x2(1:120), 'b');
grid on
title(['F = ', num2str(f2), ' Hz', ' y k = ', num2str(k)])

F = 440 Hz
1

0.5

-0.5

-1
0 0.005 0.01 0.015

F = 16440 Hz y k = 2
1

0.5

-0.5

-1
0 0.005 0.01 0.015

- Se pide determinar bajo que condiciones en frecuencias se producen alias de


este tono y verificarlo tanto con una representación gráfica como de manera
audible. ¿Cuál es la frecuencia de Nyquist para este tono?.

La frecuencia para este tono es 16000Hz

e) Representación del muestreo en el dominio de la frecuencia

Utilizando funciones de Matlab que permiten la representación de las señal


en el dominio de frecuencias, se puede observar que esta ocurriendo para una
frecuencia de muestreo dada, si se varía la frecuencia de la señal.
Procedimiento:
- Considere el siguiente programa en Matlab que representa el espectro de una
sinusoide de frecuencia f= 10 Hz, muestreada con fs=100Hz.

f = 10;
fs = 100;
n = 0:1:99;

y = cos(2*pi*(f/fs)*n);
yw = abs(fft(y))/length(y);
wn = linspace(0,0.5,50);
plot(wn,yw(1:50));

axis([0 0.5 0 1])

f = 10;
fs = 100;
n = 0:1:99;
y = cos(2*pi*(f/fs)*n);
yw = abs(fft(y))/length(y);
wn = linspace(0,0.5,50);
plot(wn,yw(1:50));
axis([0 0.5 0 1])

La representación aparece normalizada respecto a la frecuencia de muestro


fs, tiene en cuenta que la función fft se aplica a 100 puntos, y solo se representa
la parte de frecuencia positiva del modulo de yw. Si prefiere para ver mas
claramente que el espectro es un línea como corresponde a una señal sinusoidal
de un frecuencia dada, represente el espectro con stem.

Para más detalles: help fft

- Como ejercicio varíe la frecuencia f a los siguientes valores f= k*10 Hz donde


k un entero de 0 a 15 y represente los resultados mas significativos de lo que
observa. Explique el resultado.

- Como cambian las representaciones si se cambia fs.

clc
clear
k = 1;
f = k*10;
fs = 300;
n = 0:1:99;
y = cos(2*pi*(f/fs)*n);
yw = abs(fft(y))/length(y);
wn = linspace(0,0.5,50);
stem(wn,yw(1:50),'fill');
axis([0 0.5 0 1])
grid on
title(['Frecuencia: ', num2str(f), ' Hz y Fs = ', num2str(fs), '
Hz'])

Frecuencia: 10 Hz yFs = 300 Hz


1

0.9

0.8

0.7

0.6

0.5

0.4

0.3

0.2

0.1

0
0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5

Para K= 5

Frecuencia: 50 Hz yFs = 300 Hz


1

0.9

0.8

0.7

0.6

0.5

0.4

0.3

0.2

0.1

0
0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5
Para K=8

Frecuencia: 80 Hz yFs = 300 Hz


1

0.9

0.8

0.7

0.6

0.5

0.4

0.3

0.2

0.1

0
0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5

Potrebbero piacerti anche