clear;
close all;
fs=100;
ts=1/fs;
T=1.2;
t=0:ts:T-ts;
y=(square(2*pi*5*t)+1)/2;
N=T*fs;
z=fft(y)/N;
f=(-N/2:N/2-1)*fs/N;
subplot(2,1,1)
plot(t,y);
subplot(2,1,2)
stem(f,fftshift(abs(z)));
title('采样率100,时间截断长度1.2s');
ylabel('|ak|');
xlabel('f(Hz)');
截断周期变大后,FFT点数仍未改变可能会有影响,麻烦用插入代码片上传一下代码,不然还要重新打一遍,有空我帮您调试看一下;频谱泄漏指的是时域信号经截断后,原来的离散谱线向附近展宽,造成频谱模糊、失真,使谱分辨率降低(若另一个信号的主瓣小于这个信号的旁瓣,则可能误把这个信号的旁瓣当作另一个信号的主瓣);泄露取决于截断所用的窗函数的旁瓣,旁瓣越小的,相应的泄露越少,在所有的窗函数中,矩形窗的主瓣是最窄的,但其旁瓣的幅度最大;所以在窗函数长度N相同时,用矩形窗截断,泄露最大。若想减小泄露,则可选择增大信号点数或者选用更好的窗函数来截断。此外还有两个比较相似的概念:栅栏效应(补零改善)、频率分辨率(增大截短长度改善),三者之间的区别值得思考。