При большом сдвиге искажается тембр звука.

Файл sdv_tona.m

clear all;
close all;
[s,Fs] = wavread('example.wav') ;

% signal: fdyscr=16 KHz, 16 bit   or any
% acoustic preprocessing of signal
 
d=length(s);
sp = fft(s);
df=length(sp);
df2=df/2;
for j=df2: -1: 501
    sp(j)=sp(j-250);
    sp(j-250)=0;
end; % sdvig levoi poloviny vpravo

for j=df2:df-250
    sp(j)=sp(j+250);
    sp(j+250)=0;
end; % sdvig pravoi poloviny vlevo

Fs1 = (1:length(s))*(Fs/2)/length(s); %%частотная сетка wav
F = (1:length(sp)); %*(Fs/2)/length(sp); %%частотная сетка fft
%save 'fft.txt.' sp -ascii;

%fb = 700; %% по спектру определили, где кончается полезные частотные составляющие
%fbs = round(fb*length(sp)/(Fs/2)); %% пересчитали частоту в отсчеты спектра
%sp(fbs:size(sp,1)-fbs,:)=0; %%обнулили остальные частоты
%sp(1:fbs,:)=0; %%обнулили остальные частоты

sn = ifft(sp);
wavwrite(sn,Fs,'______Out.wav');

% end of signal acoustic preprocessing

figure(1)
plot(Fs1,s);
figure(2)
plot(F,abs(sp));
figure(3)
plot(sn);

subplot(3,1,1); plot(s);title('   all values ');
subplot(3,1,2); plot(F,abs(sp));title('     fft ');
subplot(3,1,3); plot(Fs1,sn);title('  out wav ');