2. Sonido y Audio
Sonido
Sensación o impresión producida en el oído por un conjunto de vibraciones que
se propagan por un medio elástico, como el aire. Estas vibraciones están
relacionadas con las variaciones de presión que se producen en el medio
3. Sonido y Áudio
Audio:
Representación eléctrica del Sonido (Audio Analógico o Audio Digital)
Analógico:
Se toma una señal como la voz, se convierte a una señal eléctrica a través de un
transductor de presión (micrófono), viaja a través de un cable o en una
mezcladora de audio.
4. Sonido y Áudio
Audio Digital: Señal de audio analógica convertida a un lenguaje que
comprende la computadora (ceros y unos). Esto se realiza a través de un
conversor analógico digital (CAD).
Este proceso comprende básicamente los siguientes pasos:
Muestreo – Cuantificación – Codificación – Procesamiento Digital de Señales
7. Generación de ondas en Matlab
Declarar variable de Frecuencia de Muestreo:
Fs = 8000;
Tiempo de duración de la señal:
Td = 6 ;
Generación del vector de tiempo:
t = (0:1/Fs:Td-1/Fs);
Declaración de la variable de frecuencia (Hz).
f = 100;
Generación de la onda seno de 100 Hz.
x = sin(2*pi*f*t);
8. Generación de ondas en Matlab
Graficar
plot(t,x)
title('Onda Seno');
xlabel('Tiempo (s)');
ylabel('Amplitud');
NOTA: Generaremos varias
Ondas.
• F = 100 Hz, 300 Hz y
• 500 Hz.
• Y algunas sumadas
11. Análisis en frecuencia
Transformada Discreta de Fourier
nfft = 1024; %Tamaño de la Transformada (Número de muestras a utilizar)
X = fft(x,nfft); %Cálculo de la transformada de fourier
X = X(1:nfft/2); % Omitir la otra parte de la FFT (ya que es periódica)
mx = abs(X); % Calcular magnitud de la FFT
f = (0:nfft/2-1)*Fs/nfft; % Generar el vector de Frecuencia
figure(1); % Declaramos una figura nueva (Señal en tiempo)
plot(t,x);
title('Onda Seno');
xlabel('Tiempo (s)');
ylabel('Amplitud');
12. Análisis en frecuencia
Transformada Discreta de Fourier
figure(2);
plot(f,mx);
title('Espectro de potencia');
xlabel('Frecuencia (Hz)');
ylabel('Potencia');
13. Análisis en frecuencia
Grabar Audio
% Record your voice for 5 seconds.
recObj = audiorecorder;
disp('Start speaking.')
recordblocking(recObj, 5);
disp('End of Recording.');
% Play back the recording.
play(recObj);
% Store data in double-precision array.
myRecording = getaudiodata(recObj);
% Plot the waveform.
plot(myRecording);
NOTA: Realizar análisis en frecuencia de sonido Grabado