Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Informe Procesamiento Digital de Señales

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 14

Facultad de Ciencias Físicas y Matemáticas

Escuela Profesional de Ingeniería Electrónica


Ing. MOSTACERO ARRAGUI Luis

Comandos en Matlab
Procesamiento Digital de Señales
TAPIA TORRES Joe Dante 080873 - G

ZAMBRANO CAMPOS José 080876 - F

2012
Comandos en Matlab

COMANDOS MATLABObjetivo:
El objetivo de esta práctica es presentar al alumno el modo de orientar las
herramientas que ofrece MATLAB a la representación y manejo de señales y
sistemas.

I. Generación y manipulación básica de señales:

Para seguir este apartado escriba en la línea de comando todos los ejemplos
mostrados. Utilice la ayuda de MATLAB para documentarse sobre cualquier
comando que desconozca.

II. Comandos básicos: Algunos comandos para tener en cuenta en las


operaciones son:

clear borra toda la pantalla.


clc borra toda la pantalla pero deja internamente el valor de las variables.
who enumera todas las variables usadas hasta el momento.
help (tema) proporciona ayuda sobre el tema seleccionado.
syms sirve para declarar variables.
round(operación) redondea al entero más cercano:
>> round(9/4)
ans =
2
sqrt calcula raíz cuadrada.
solve resuelve una ecuación o sistema de ecuaciones.

Con este botón se pueden recuperar sentencias anteriormente usadas.


Gráficos:
plot(x,y) genera una gráfica en las variables x e y.
plot(x,y,t) genera una gráfica en las variables x e y siendo t un parámetro.
plot3(x,y,z) genera una gráfica en las variables x,y,z.
grid agrega una grilla al gráfico.

Para crear una ventana de dibujo:

Procesamiento Digital de Señales Página 2


Comandos en Matlab

figure(n)
Ejemplo:
>> x=-pi : 0.1: pi;
>> figure(1);
>> plot(x,sin(x),’b. ’);
>> figure(2);
>> plot(x,cos(x), ’gd-’);

III. Generación y grafica de señales:

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)

Ejemplo: Generación y gráfica de una señal muestreada a 8 KHz.

Se genera una señal sinusoidal de 400 Hz y amplitud 2.

>> 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)

Procesamiento Digital de Señales Página 3


Comandos en Matlab

Ejemplo: Señales no sinusoidales periódicas.

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)');

Procesamiento Digital de Señales Página 4


Comandos en Matlab

Ejemplo: Señal aperiódica.

Muestreo de la señal Sinc.

>> F0=400;
>> A=2;
>> Fs=8000;
>> Ts=1/Fs;
>> t=-0.003:Ts:0.003;
>> xt=A*sinc(2*F0*t);
>> stem(t,xt)

IV. Generación de Ruido:

Se utilizan los comandos:

Y=rand(rows,cols): Genera ruido con distribución uniforme.

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".

Procesamiento Digital de Señales Página 5


Comandos en Matlab

Ejemplo: Generación y Representación de Ruido Gaussiano

>> Gnoise=randn(1,1e6);
>> hist(Gnoise,100);

V. Submuestreo y Sobremuestro

1. 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.

2. Sobremuestreo:
xtUp=upsample(xt,N)
La señal xUp tendrá una frecuencia de muestreo N·Fs.
Sobremuestrear la señal significa introducir N-1 ceros entre muestras
consecutivas.

Procesamiento Digital de Señales Página 6


Comandos en Matlab

Ejemplo: Submuestreo.

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');

VI. Manejo de archivos de sonido

Comandos wavrecord, wavwrite y sound:

Para capturar una señal por la entrada auxiliar de la tarjeta de sonido del
computador, MATLAB cuenta con la función wavrecord(t*Fs,Fs,Ch) cuyos
parámetros corresponden al tiempo en segundos de captura de la señal,
frecuencia de muestreo (admite 8000, 11025, 22050 y 44100), el tipo de
canal (1 para mono y 2 para estéreo).

Procesamiento Digital de Señales Página 7


Comandos en Matlab

Si se desea capturar una señal en estéreo con 5 segundos de duración, con


una frecuencia de muestreo de 11.025 podemos emplear las siguientes
funciones:

Fs = 11025;

y = wavrecord(5*Fs, Fs, 2);

Para guardar una señal capturada en formato wav se puede hacer uso de la
función wavwrite(y,Fs,NBits,'Nombre.wav') cuyos parámetros corresponden a
la señal grabada, la frecuencia de muestreo, el número de bits (puede ser 8,
16, 24 o 32) y el nombre del archivo en el cual se grabará el sonido. Hay que
tener en cuenta que los valores de amplitud que estén fuera del rango [-1,+1]
son clipeados.

Si no se especifican los NBits el programa asume por defecto 16 Bits.


Si no se determina una Fs, el programa asume por defecto 8000 Hz.

Por ejemplo, para guardar el sonido capturado anteriormente se empleará el


siguiente comando:

wavwrite(y,Fs,16,'sonido_uno.wav')

Para escuchar o manipular vectorialmente un sonido almacenado en formato


wav se utilizan dos comandos.

wavread('File.wav')
sound(Var)

Para el ejemplo anterior File es el nombre del archivo que se desea


escuchar, los valores de amplitud deben estar en el rango [-1,+1].

La variable Var corresponde al vector que se desea escuchar cuya frecuencia


de muestreo por defecto será de 8192 Hz.

Si se utiliza sound(var,Fs) el resultado será un sonido con una frecuencia de


muestreo definida por el usuario. Se asume que los valores están dentro del
rango [-1,1] ya que los valores que están fuera del rango son clipeados.

Si se emplea sound(var,Fs,Bits) sonará con una frecuencia de muestreo


definida por el usuario y determinados número de Bits por muestra.

Por ejemplo, para escuchar la señal guardada anteriormente como


sonido_uno, se asigna a una variable s el comando wavread y luego se
escucha con el comando sound.
Procesamiento Digital de Señales Página 8
Comandos en Matlab

s= wavread('sonido_uno.wav');

sound(s,44100)

Si se desean conocer los datos de un archivo en formato wav, como los


valores del vector, su frecuencia de muestreo o el número de bits NBits por
muestra, se emplea la siguiente sintaxis:

[y,Fs,NBits]=wavread('file.wav')

En la variable y se almacenan los valores del vector, en la variable Fs se


almacena la frecuencia de muestreo y en la variable Nbits se almacena el
número de bits por muestra del archivo con formato wav. Si se desea saber
la dimensión de los canales del archivo en formato wav, se utiliza el siguiente
comando:

siz=wavread('file.wav','size')

En la variable siz se almacena la dimensión del archivo en formato wav.

Si se desean leer las primeras N muestras del archivo en formato wav se


emplea el siguiente comando:

[n]=wavread('file.wav',Num)

En donde la variable Num corresponde a la cantidad de muestras que se


desean tomar del archivo.

Si se desea obtener la información adicional contenida en un archivo de


formato wav, como el copyright o el título, se emplea el siguiente comando
[y,Fs,NBits,Opts]=wavread('file.wav')

En la variable y se almacenan los valores del vector, en la variable Fs se


almacena la frecuencia de muestreo, en la variable Nbits se almacena el
número de bits por muestra y en la variable Opts se almacena el resto de la
información.

Ejemplo: Leer un Archivo de Audio

Para leer un archivo de audio en formato wav que se encuentra en la carpeta


de trabajo de Matlab se utiliza la función:
[xt,Fs]=wavread(‘nombre_de_archivo’)
Se guardan las muestras y la frecuencia de muestro en xt y Fs
respectivamente.

Procesamiento Digital de Señales Página 9


Comandos en Matlab

>> [xt,Fs]=wavread('tuner1');

Procesamiento Digital de Señales Página 10


Comandos en Matlab

Ejemplo: Grabación de Audio


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.
Ejemplo1:

>> r=audiorecorder;
>> record(r)
>> pause(r)
>> record(r)
>> stop(r)
>> play(r)
>> y=getaudiodata(r);
>> Fs=r.SampleRate
Fs =
8000

Guardar como Archivo de Audio


Para guardar la señal de audio que se acaba de grabar se utiliza el comando:
wavwrite(y,Fs,’grabacion’)
Se guarda en formato wav en la carpeta de trabajo de Matlab.

Procesamiento Digital de Señales Página 11


Comandos en Matlab

>> wavwrite(y,Fs,'grabacion');
>> which grabacion.wav
C:\Users\Casa\Documents\MATLAB\grabacion.wav

Ejemplo2:

Procesamiento Digital de Señales Página 12


Comandos en Matlab

VII. Campo de uso de los DSPs:

Después de analizar se ha obtenido una visión general del abanico de


aplicaciones que soportan los DSPs. Por ejemplo:

 En el campo militar se utilizan los DSPs para procesamiento de radar, sonar


o guía de misiles.

 En el campo del tratamiento de voz y audio para la codificación, síntesis y


reconocimiento de voz.

 En el sector de las telecomunicaciones para la codificación


ADPCM(Modulación por Codificación de Pulso Diferencial Adaptativo),
cancelación de eco o telefonía móvil.

 Algunos de los avances de los DSPs en instrumentación médica son las


imágenes ultrasónicas, radiografías digitales y varias formas de tomografía
(CAT, tomografía asistida por ordenador; PET, tomografía por emisión de
positrones; MRI, imágenes por resonancia magnética).

 Algoritmos avanzados en control de motores.

Procesamiento Digital de Señales Página 13


Comandos en Matlab

VIII. Bibliografia:

Ω http://musica.unq.edu.ar/personales/ebonnier/cam2/matlab/tutorial2993.ht
ml?page=funcondas2
Ω http://gemini.udistrital.edu.co/comunidad/estudiantes/ocala/matlabTut/
Ω http://arantxa.ii.uam.es/~jbescos/Docencia/SLI/Practicas/Guion_1.pdf
Ω http://www.fceia.unr.edu.ar/prodivoz/
Ω http://html.rincondelvago.com/procesos-aleatorios-en-procesamiento-
digital-de-senales.html

Procesamiento Digital de Señales Página 14

También podría gustarte