You are on page 1of 11

Universidad Nacional

MAYOR DE SAN MARCOS


(UNIVERSIDAD NACIONAL, DECANA DE AMÉRICA)

FACULTAD DE INGIENERIA ELECTRICA Y


ELECTRONICA

E.A.P. ING. DE ELÉCTRONICA

INFORME FINAL N°2


MANEJO DE SONIDO CON MATLAB

PROFESOR : ING. OPORTO DIAZ, EDGARD

CURSO : LABORATORIO DE PDS

TURNO : Viernes (8-10pm) / L-15

ALUMNOS :

 Flores Mendoza Edson Diego 15190112


 Iparraguirre Tamariz Joel David 15190147

2019
EXPERIENCIA N°2 LABORATORIO DE PDS

I. OBJETIVOS
a) Abrir archivos de sonido en formato WAV y acceder a las muestras digitalizadas
b) Comprender y manipular la frecuencia y periodo de muestreo de los audios digitales para
su reproducción
c) Manipular archivos de sonido estéreo
d) Realizar diversos procesamientos a los sonidos digitalizados

II. EQUIPOS Y MATERIALES


Computador con Matlab

III. MARCO TEORICO


a) El computador funciona en forma discreta, no continua.
b) La señal análoga pasa por un proceso de muestreo y digitalización.
c) El muestreo se realiza a cierta frecuencia (fs) o periodo (Ts).
d) Cuanto menor sea el periodo de muestreo, el sonido será más próximo al real.
e) A cada muestra tomada le corresponde un tiempo discreto y la misma muestra pero
digitalizada a N bits.

En la Figura 1, se muestra una señal digitalizada a 8bits/muestra.

Figura 1 – Señal digitalizada a 8bits/muestra

VI. PROCEDIMIENTO

01.- Generación y reproducción de una señal audible

fs = 44000 %Definimos la frecuencia de muestreo


Ts = 1/fs %Definimos el periodo de muestreo
T = 3 %Duración del sonido en segundos
tn = 0:Ts:T %Generación de los instantes de muestreo

y = sin(2*pi*440*tn);
%Generación de señal muestreada
%Generación de las muestras digitalizadas
%Note que está reproduciendo una señal de 440 Hz

wavwrite(y,fs,'d:\tono440.wav')
audiowrite('d:\tono440.wav', y, fs)
%Grabe en formato WAV

plot(tn,y) %Graficar la señal en el tiempo


%¿Cuántos puntos se graficó?
Se graficaron 132001 puntos.

sound(y,fs) %Reproduzca el sonido por los parlantes

pause
%¿Para qué sirve este comando?
Para pausar el sonido en reproducción.

y1 = y(1:1000) %Se parte la señal, mil puntos


tn1 = 0:Ts:999*Ts %Mil instantes de muestreo
plot(tn1,y1) %Gráfico, ¿qué tiempo se graficó y escuchó?

sound(y1,fs)

%¿Qué tiempo se escuchó? %Escuche la señal


Se escuchó durante 0.227 segundos.
02.- Tonos y operaciones con tonos.
Para generar un sonido en Matlab se usa el comando SOUND, utilice HELP para obtener mayor
información.

Un tono se define como un coseno de cierta frecuencia:


y(t) =Acos(wt +) = Acos(2¶ f t + )
Al reproducir se escuchará un tono de frecuencia f.

Genere una frecuencia fundamental y dos armónicos y realice lo siguiente:


a) Súmelos
b) Multiplíquelos
c) Combine varias operaciones entre ellas.
Grafíquelos y reprodúzcalos.

03.- Generación y reproducción de una señal de audio estéreo.


Genere una matriz de dos columnas, cada una con una señal distinta y envíela a los parlantes con
el comando SOUND.

fs = 44000 %Definimos la frecuencia de muestreo


Ts = 1/fs %Definimos el periodo de muestreo
T = 3 %Duración del sonido

tn = 0:Ts:T; %Generación de los instantes de muestreo, vector FILA


x1 = sin(2*pi*340*tn); %Generación de la señal 1
x2 = sin(2*pi*840*tn); %Generación de la señal 2
size(x1) %
size(x2) %
sound(x1, fs)
sound(x2, fs)

x3=[x1 x2]; %Genere otro audio combinando x1 y x2


size(x3)
plot(tn, x3)

sound(x3, fs)

x1=x1'; %Transpuesta
x2=x2'; %Transpuesta
x3=[x1 x2]; %Combine las transpuestas
size(x3)
plot(tn, x3)
sound(x3, fs)

%Cuál es la diferencia de usar o no usar transpuesta


La diferencia es que la primera señal (x1) esta transpuesta sobre la
segunda señal (x2) y que cuando se hace el uso de la transpuesta en la
combinación se unen la dos señales.
04.- Generación de una señal senoidal con intensidad creciente o decreciente
%Generar una señal senoidal de 1.5KHz
fs = 8000 %Definimos la frecuencia de muestreo
Ts = 1/fs %Definimos el periodo de muestreo
T = 3 %Duración del sonido
tn = 0:Ts:T %Generación de los instantes de muestreo
x1 = sin(2*pi*1500*tn); %Generación de la señal muestreada
sound(x1,fs)

Ahora generar una señal rampa de la misma duración:


rampa=tn/T;

Combinarla con la señal senoidal de tal forma que:

a) Escuche la senoidal de menor a mayor intensidad.

b) Escuche la senoidal de mayor a menor intensidad.


05.- Tonos para barrido de frecuencia
Desarrolle un programa que genere una onda senoidal de frecuencia creciente en el tiempo, que
barra desde unos 15 Hz hasta los límites de audición.

fs = 96000 %Definimos la frecuencia de muestreo


Ts = 1/fs %Definimos el periodo de muestreo
T = 20 %Duración del sonido
tn = 0:Ts:Ts; %Generación de los instantes de muestreo
rampa = 22000*tn/T; %Frecuencia máxima
x1 = sin(2*pi*rampa.*tn); %Generación de la señal
plot(tn,x1)
sound(x1,fs)

Pruebe con otras: fs, frecuencia máxima y duración

Probaremos con una señal con los siguientes parámetros:

 Frecuencia de muestreo:3000Hz
 Duración: 5s
 Frecuencia máxima: 330Hz
06.- Modificación de la velocidad de reproducción y otros efectos
Consiga un archivo WAV estéreo, puede buscar en Internet
[s fs] = wavread('estereo.wav');
[s fs nbits] = wavread('estereo.wav');
fs
nbits
[s fs] = audioread('estereo.wav');
fs
length(s)
size(s)
Duracion = length(s)*(1/fs) %Duración en segundos

%wavplay(s,fs) %Comando antiguo


Audio = audioplayer(s, fs);
play(Audio);

Canal_L = s(:,1); %Canal izquierdo


Canal_R = s(:,2); %Canal derecho
length(Canal_L) %Cantidad de muestras
wavplay(Canal_L, fs) %Reproducción a velocidad normal
wavplay(Canal_L, 2*fs) %Reproducción a doble velocidad
wavplay(Canal_L, .8*fs) %Reproducción a 0.8 de velocidad

%Reproduzca a las velocidades indicadas usando audioplayer y play


%Verifique si los sonidos son los mismos en cada canal

%Grafique cada canal


subplot(3,1,1)
plot(s)
subplot(3,1,2)
plot(Canal_L)
subplot(3,1,3)
plot(Canal_R)
Recorte del sonido a la mitad
>>s_recortado = canal_L(1:length(s)/2)
>>length(s_recortado)

>>Duracion2 = length(s_recortado)*(1/fs) %Duración en segundos


>>wavplay(s_recortado,fs)

Inversión del sonido


>>s_inv = canal_R(end:-1:1)
>>wavplay(s_inv,fs)

Eliminación de muestras
>>s_di = canal_L(1:2:end)
>>wavplay(s_di,fs)

07.- Palindromos
Pronuncie y grabe el siguiente texto con el Matlab o la grabadora de Windows, use formato WAV:

“DABALE ARROZ A LA ZORRA EL ABAD”

Lea el archivo de sonido desde Matlab:


[y fs] = wavread('palindromo.wav');

Obtenga la longitud o cantidad de muestras:


Tamano = length(y)

Invierta las muestras y reproduzca la invertida y luego la original.


z = y(end:-1:1)
sound(z,fs)
pause
sound(y,fs)

Grafique ambas señales y compare.


10.- Pruebe con otros palíndromos.

A mamá Roma le aviva el a amor a Papá y a Papá Roma le aviva el amor a Mamá.
Eva usaba rímel y le miraba suave.

La ruta nos aportó otro paso natural.


Le avisará Sara si va él.
Sometamos o matemos.
Adán no cede con Eva y Yavé no cede con nada.

You might also like