У меня возникла проблема с основным свойством времени/частоты, реализованным в скрипте Matlab. Свойство:Задержка сигнала во временной области с изменением фазы в частотной области после FFT
Я пытался реализовать это в сценарии Matlab. Я предположил синусоидальный сигнал с частотой 5 Гц с частотой, частотой дискретизации 800 Гц, и я хочу задержать этот сигнал на 1,8 секунды. Так я реализовал этот скрипт:
Fs = 800;
Time_max = 4; % seconds
t = 0:(1/Fs):Time_max;
delay = 1.8; % One second of delay
f = 5; %Hz
y = sin(2 * pi * f * t);
figure
subplot(2,1,1)
plot(t,y);
xlabel('time (s)')
legend('Original');
%FFT
SIZE = 2^nextpow2(length(y));
Y = fft(y,SIZE);
df = Fs/SIZE;
f= -Fs/2:df:Fs/2 - df;
for k = 1:SIZE
Y(k) = Y(k)*exp(-(1i*2*pi*f(k)*delay));
end
subplot(2,1,2)
plot(real(ifft(Y)),'r')
legend('Shifted');
И выход сюжет:
Где проблема? Как я могу достичь правильной задержки?
Благодаря
К сожалению для изображений ссылки, но я не могу отправить изображения из-за мою репутацию. –