clear; close all; clc; %% Distorsion y delay [y,Fs] = audioread('violin.wav'); N = length(y); dt = 1/Fs; t = 0:dt:(N-1)*dt; %% DISTORSION % (2/pi)*atan(g*y); %se aplica distorsion g = input('ingrese ganancia de distorsión = '); %ganancia %aplicamos distorsion x = (2/pi)*atan(g*y); figure(1) %señal sin distorsion subplot(2,1,1) plot(t,y) title('señal original') xlabel('tiempo (s)') ylabel('amplitud') axis([0 N/Fs -1 1]) %señal con distorsion subplot(2,1,2) plot(t,x) title('señal distorsionada') xlabel('tiempo (s)') ylabel('amplitud') axis([0 N/Fs -1 1]) %sonar %sound(x,Fs); %% DELAY gdelay = input('ingrese ganancia delay = '); tdelay = input('ingrese tiempo de delay = '); Ndelay = round(tdelay*Fs); % se debe redondear para tener %numero de muestras enteras %señal de entrada Nx1 = 2*N; x1 = zeros(Nx1,1); x1(1:N,1) = x; t2 = 0:dt:(Nx1-1)*dt; %señal de salida x2 = zeros(Nx1,1); %prealocamos x2(1:Nx1,1) = x1; %% DELAY como tal for n = Ndelay+1: Nx1 x2(n) = x1(n)+gdelay*x1(n-Ndelay); end x2 = x2/max(abs(x2)); figure(2) %señal sin delay (con distorsion) subplot(2,1,1) plot(t,x) title('señal sin delay') xlabel('tiempo (s)') ylabel('amplitud') axis([0 N/Fs -1 1]) %señal con delay subplot(2,1,2) plot(t2,x2) title('señal con delay') xlabel('tiempo (s)') ylabel('amplitud') axis([0 Nx1/Fs -1 1]) %sonido sound(x2,Fs)