%% prog039 lectura de archivos de audio y distorsion simple clearvars; close all; clc; %lectura desde la misma carpeta [x1,fs1] = audioread('violin.wav'); %% generar el archivo de tiempo Nt = length(x1); %determinamos la longitud de arreglo que contiene el sonido t1 = (0:Nt-1)/fs1; %tiempo con prelocalizacion %ejes tmin = t1(1); tmax = t1(Nt); amin = -1; amax = 1; %grafico figure(1) plot(t1,x1); title('violin'); xlabel('tiempo t (s)'); ylabel('presion sonora p(t) (Pa)'); legend('p(t)'); axis([tmin, tmax, amin, amax]); grid on; box on; %sonido sound(x1,fs1); %% distorsion usando una funcion matematica no lineal pero que este entre -1 y +1 %leemos la ganancia g = input('ganancia g = '); %funcion arcotangente (-pi/2 y +pi/2) la debemos normalizar y1 = (2/pi)*atan(g*x1); %y1 es el arreglo que se va a guardar en violindistor.wav %sonido sound(y1,fs1); %grafico figure(2) plot(t1,y1); title('violin distorsion'); xlabel('tiempo t (s)'); ylabel('presion sonora p(t) (Pa)'); legend('p(t)'); axis([tmin, tmax, amin, amax]); grid on; box on; %grafico figure(3) plot(x1,y1); title('violin y violin distorsion'); xlabel('x1 presion sonora p(t) (Pa)'); ylabel('y1 presion sonora p(t) (Pa)'); legend('p(t)'); axis([amin, amax, amin, amax]); grid on; box on; %% escribir sonido en el disco duro %audiowrite('nombre_archivo.wav',nombre_arreglo,frecuencia_de_muestreo); audiowrite('violindistor.wav',y1,fs1);