[fname,fpath]=uigetfile("*.wav","Select Source");
[source,fs] = wavread(strcat(fpath,fname));
[fname,fpath]=uigetfile("*.wav","Select Target")
target = wavread(strcat(fpath,fname));
nfft = 2^nextpow2(fs);
w = kaiser(nfft,8);
target_spectrum = pwelch(target,w,0.5,nfft,fs,"twosided");
source_spectrum = pwelch(source,w,0.5,nfft,fs,"twosided");
matching_spectrum = sqrt(target_spectrum./source_spectrum);
imp = ifft(matching_spectrum);
[y,mpimp] = rceps(imp);
mpimp = mpimp/max(abs(mpimp));
[fname,fpath]=uiputfile("*.wav","Select Output")
wavwrite(mpimp,fs,32,strcat(fpath,fname));