课本上matlab求周期方波的频谱有几行代码不太明白它的含义
其中
1.T在这里是时间间隔吗?
2. n=1:8N;不知在这里起什么作用?
3.课本上给出基频为50Hz的方波,为什么这个方波表达不是f=square(2pi50t);?
4.fftshift是将零频点移到频谱中间那Tfftshift(fft(f))又表示什么呢?
还请朋友们指点一二!非常感谢!
以下是代码
clear;
N=5000;T=0.01;
n=1:8*N;
D=2*pi/(N*T);
f=square(2*pi*n*T);
plot(n*T,f);
F=T*fftshift(fft(f));
k=floor(-(8*N-1)/2:8*N/2);
subplot(2,1,1);
plot(n*T,f);
axis([0,10,-1.5,1.5]);
ylabel('f(t)');
line([-1,50],[0,0]);
line([0,0],[-6.1,4.1]);
subplot(2,1,2);
plot(k*D,abs(F));
ylabel('幅频');
axis([-1000,1000,-10,300]);
方案来自 梦想橡皮擦 狂飙组基于 GPT 编写的 “程秘”
它实现了两个功能:
生成并绘制方波信号:
生成并绘制幅频图: