关于matlab中fftshift的使用,两种使用方式一种是fftshift(fft()),另一种是fftshift(fft(fftshift()))。
t_s = 0.01;
t_start = 0.5; t_end = 5;
t = t_start:t_s:t_end;
y = 0.5*sin(2*pi*15*t)+2*sin(2*pi*40*t);
y_f = fft(y);
t_start = 0.5; t_end = 5;
t = t_start:t_s:t_end;
y = 0.5*sin(2*pi*15*t)+2*sin(2*pi*40*t);
y_f = fft(y);
subplot(5,1,1);
plot(t,y); title('original signal');
plot(t,y); title('original signal');
Duration = t_end - t_start;
Sampling_points = Duration/t_s + 1;
Sampling_points = Duration/t_s + 1;
f_s = 1/t_s;
f_x = 0:f_s/(Sampling_points-1):f_s;
f_x = 0:f_s/(Sampling_points-1):f_s;
subplot(5,1,2);
plot(f_x,abs(y_f)); title('fft() transform');
plot(f_x,abs(y_f)); title('fft() transform');
subplot(5,1,3);
plot(f_x-f_s/2,abs(fftshift(y_f)));
title('fftshift(fft()) transform');
subplot(5,1,4);
plot(f_x-f_s/2,abs(fft(fftshift(y))));
title('fft(fftshift()) transform');
plot(f_x-f_s/2,abs(fftshift(y_f)));
title('fftshift(fft()) transform');
subplot(5,1,4);
plot(f_x-f_s/2,abs(fft(fftshift(y))));
title('fft(fftshift()) transform');
subplot(5,1,5);
plot(f_x-f_s/2,abs(fftshift(fft(fftshift(y)))));
title('fftshift(fft(fftshift()) transform');
plot(f_x-f_s/2,abs(fftshift(fft(fftshift(y)))));
title('fftshift(fft(fftshift()) transform');
![](https://i-blog.csdnimg.cn/blog_migrate/0f227e0d36a1268fd862cd4ddfcc1dc1.jpeg)