You are on page 1of 4

UNIVERSIDAD NACIONAL DEL ALTIPLANO

FACULTAD DE INGENIERIA MECANICA ELECTRICA,


ELECTRONICA Y SISTEMAS
ESCUELA PROFESIONAL DE INGENIERIA
ELECTRONICA

INTELIGENCIA ARTIFICIAL
PRESENTADO POR:
MIGUEL ANGEL SILVA FUR

--- COD. 102149

TRABAJO ENCARGADO: PROCESAMIENTO DE UNA SEAL DE AUDIO


USANDO MATLAB

El procesamiento digital de seales se puede dar siguiendo unos pasos fundamentales a


tomar en cuenta.
Un ejemplo claro es ete diagrama de bloques en donde la seal de audio ingresa a un
(conversion A/D) una senal de audio, la procese, y que, finalmente, reconstruya
(conversion D/A) la forma de onda ya procesada.

Aqu se puede ver un diagrama de bloques general.


Conversin
A/D

Eliminacin
del
Ruido

Prenfasis

Segmentacin

Coeficientes
Cepstrales
Caractersticas

Palabra a
Reconocer

Medida de
Distancia
Almacenamiento
Base de datos

Palabras de
entrenamiento

Conversin
A/D

Caractersticas
Eliminacin
del
Ruido

Prenfasis

Segmentacin

Coeficientes
Cepstrales

Menor
distancia

Aqu se puede ver un ejemplo de programacin en Matlab


%% Procesamiento de una seal de audio usando MATLAB
%% Crear seal de audio
% Frecuencia fundamental
f0=1e3; % 1KHz
% Amplitud
a=4; % V=4
% Frecuencia de muestreo
fs=44.1e3; % Frecuencia de una seal de audio
% Tiempo de duracin en segundos
T=1.5;
L = round(T*fs); % Nmero de muestras
% Frecuencia normalizada
fn=f0/fs;
y = a*sin(2*pi*fn*(0:L-1))+0.5*a*sin(2*pi*2*fn*(0:L-1));
% Graficar la seal original
subplot(411)
plot((0:L-1)/fs,y)
title('SEAL ORIGINAL')% Ttulo
xlabel('Tiempo (s)')
% Etiqueta del eje X
ylabel('Amplitud (V)')
% Etiqueta del eje Y
xlim([0 10/1000])
% Lmite de la seal
%% Grabar y reproducir la seal de audio
%wavwrite(y,fs,'audio')
% wavplay(y,fs)
%% FFT de la seal
subplot(412)
% Llamado a la funcin que calcula la FFT
fft_signal(y,fs);title('ESPECTRO DE LA SEAL ORIGINAL')
xlim([0 2500])
%% Filtrado de la seal
% Frecuencia normalizada
fNorm = 1500 / (fs/2);
% Clculo de los coeficientes del filtro (filtro pasa bajas)
[b,a] = butter(10, fNorm, 'low');
% Filtrado de la seal
y_Low = filtfilt(b, a, y);
% Graficacin de la seal en el tiempo
subplot(413)
plot((0:L-1)/fs,y_Low)
title('SEAL FILTRADA')
xlabel('Tiempo (s)')
ylabel('Amplitud (V)')
xlim([0 10/1000])
% Graficacin de la seal en frecuencia
subplot(414)
% Llamado a la funcin que calcula la FFT
fft_signal(y_Low,fs);title('ESPECTRO DE LA SEAL FILTRADA')
xlim([0 2500])
%% Grficas del filtro
% Respuesta en frecuencia del filtro
[H,w]=freqz(b,a,512,1);
figure(2)

%Trazado de la respuesta en Magnitud


subplot(221)
plot(w,20*log10(abs(H)));
grid on;
title ('Filtro pasa-altos, Respuesta en magnitud');
xlabel('frecuencia');
ylabel('H(f) db')
xlim([0 0.4])
% Respuesta en fase
subplot(222)
plot(w,angle(H));
grid on;
title ('Filtro pasa-altos, Respuesta en fase');
xlabel('frecuencia')
ylabel('ngulo de H rad')
xlim([0 0.4])
%Respuesta al impulso
subplot(223)
[y_eje,t]= impz(b,a,60);
stem(t,y_eje);
title ('Filtro pasa-altos, Respuesta al impulso');
%Ploteo de los polos y ceros
z= roots(b); % Ceros
p = roots(a); % Polos
subplot(224)
zplane(z,p)
title('Polos y ceros')
legend('Ceros','Polos')
%% Reproduccin de audio de entrada y salida
pause(2)
disp('Audio de entrada')
wavplay(0.5*y,fs)
disp('Audio de salida (seal filtrada)')
wavplay(0.5*y_Low,fs)

You might also like