Procesamineto Digital
1
http://lonely113.blogspot.com
Generación y Gráfica de Señales
2
Sea una señal:
Dónde: A: Amplitud Fo: Frecuencia phi: Fase La representación de esta señal en tiempo discreto está dada por:
Donde: Fs=1/Ts: Frecuencia de muestreo. La gráfica de señales discretas se realiza con el comando:
stem(t,xt)
http://lonely113.blogspot.comEjemplo: Generación y gráfica de una señal muestreada a 8 KHz.
3
Se genera una señal sinusoidal de 400 Hz y amplitud 2.
2 1.5 1
>> F0=400; >> A=2; >> phi=pi/4; >> Fs=8000; >> Ts=1/Fs; >> t=-0.002:Ts:0.002; >> xt=A*sin(2*pi*F0*t+phi); >> stem(t,xt)
http://lonely113.blogspot.com
0.5 0 -0.5 -1 -1.5 -2 -2
-1.5
-1
-0.5
0
0.5
1
1.5 x 10
2
-3
Ejemplo: Señales nosinusoidales periódicas.
4
Generación de una señal diente de sierra.
>> F0=400; >> A=2; >> Fs=8000; >> Ts=1/Fs; >> t=-0.002:Ts:0.002; >> xt=sawtooth(2*pi*F0*t); >> stem(t,xt) >> hold on >> plot(t,xt) >> xlabel('time (s)'); >> ylabel('x(t)');
http://lonely113.blogspot.com
1 0.8 0.6 0.4 0.2
x(t)
0 -0.2 -0.4 -0.6 -0.8 -1 -2
-1.5
-1
-0.5
0 time (s)
0.5
1
1.5 x 102
-3
Ejemplo: Señal aperiódica.
5
Muestreo de la señal Sinc.
2
>> F0=400; >> A=2; >> Fs=8000; >> Ts=1/Fs; >> t=-0.003:Ts:0.003; >> xt=A*sinc(2*F0*t); >> stem(t,xt)
1.5
1
0.5
0
-0.5 -3
-2
-1
0
1
2 x 10
3
-3
http://lonely113.blogspot.com
Generación de Ruido
6
Se utilizan los comandos:
Y=rand(rows,cols): Genera ruido con distribuciónuniforme. Y=randn(rows,cols):Genera ruido Gaussiano. Dónde: rows, cols: Indica la dimensión de la matriz de ruido aleatorio a generar. Para observar el histograma se utiliza el comando: hist(y,m): Representa el ruido "y" mediante m "contenedores".
http://lonely113.blogspot.com
Ejemplo: Generación y Representación de Ruido Gaussiano
7
4 3.5 3
x 10
4
>> Gnoise=randn(1,1e6); >>hist(Gnoise,100);
2.5 2 1.5 1 0.5 0 -6
-4
-2
0
2
4
6
http://lonely113.blogspot.com
Submuestreo y Sobremuestro
8
Submuestreo
xtDown=downsample(xt,N)
La señal xDown tendrá una frecuencia de muestro Fs/N. Submuestrear la señal significa conservar cada N-ésima muestra y eliminar las muestras restantes.
Sobremuestreo
xtUp=upsample(xt,N)
La señal xUp tendrá unafrecuencia de muestreo N·Fs.
Sobremuestrear la señal significa introducir N-1 ceros entre muestras consecutivas.
http://lonely113.blogspot.com
Ejemplo: Submuestreo.
9
Se submuestrea la señal sinusoidal generada anteriormente (Fs=8 KHz) para obtener una señal xtDown muestreada a 2 KHz.
>> F0=400; >> A=2; >> phi=pi/4; >> Fs=8000; >> Ts=1/Fs; >> t=-0.002:Ts:0.002; >>xt=A*sin(2*pi*F0*t+phi); >> stem(t,xt) >>xtDown=downsample(xt,4); >> tDown=downsample(t,4); >> hold on >> stem(tDown,xtDown,'r');
2 1.5 1 0.5 0 -0.5 -1 -1.5 -2 -2
-1.5
-1
-0.5
0
0.5
1
1.5 x 10
2
-3
http://lonely113.blogspot.com
Procesamiento de Audio
10
Para escuchar un tono de señal en Matlab se utiliza el comando: soundsc(xt,Fs) Donde:
xt: Tono a escuchar. Fs: Frecuencia demuestreo.
Por ejemplo: Para escuchar la señal sinusoidal generada anteriormente:
>> soundsc(xt,Fs)
http://lonely113.blogspot.com
Grabación de Audio
11
Para grabar una señal audible mediante la tarjeta de sonido y un micrófono se utilizan los siguientes comandos:
r=audiorecorder: Crea un objeto de grabación. record(r): Inicio de grabación. pause(r) ,stop(r): Pausa y finalización.play(r): Escuchar la grabación y=getaudiodata(r): Para obtener la matriz que contiene las muestras de la señal audible. Ésta es la señal que se puede procesar. Fs=r.SampleRate: Para obtener la frecuencia de muestreo.
http://lonely113.blogspot.com
Ejemplo:
12
>> r=audiorecorder; >> record(r) >> pause(r) >> record(r) >> stop(r) >> play(r) >> y=getaudiodata(r); >> Fs=r.SampleRate Fs = 8000...
Regístrate para leer el documento completo.