clear allt=0:0.001:1;%设定信号时间为0到1秒,采样频率为1000HZx=sin(pi*t)./(pi*t+eps);%信号1h=cos(100*pi*t);%信号2y=x+h;%叠加信号z=y+0.5*y.^2;%叠加信号的信号
Z=fft(z);%FFTPzz=Z.*conj(Z)/1000;%信号功率谱f=1000*(0:499)/1000;%计算横轴频率值figure(1)plot(t,z),title('信号z'),xlabel('时间(S)')
figure(2)subplot(2,1,1),plot(f,abs(Z(1:500))),title('信号z幅值谱'),xlabel('频率(Hz)')subplot(2,1,2),plot(f,Pzz(1:500)),title('信号z功率谱'),xlabel('频率(Hz)')
figure(3)%更清楚的表示,将横轴范围缩小subplot(2,1,1),plot(f,abs(Z(1:500))),axis([-5,150,0,1200]),title('信号z幅值谱'),xlabel('频率(Hz)')subplot(2,1,2),plot(f,Pzz(1:500)),axis([-5,150,0,1200]),title('信号z功率谱'),xlabel('频率(Hz)')
程序应该没错,幅值谱不是信号的幅值,它要比信号幅值大得多了,这个已经做过很多次了,没发现有什么不妥的地方,不知道你手算的是信号幅值谱还是信号的幅值?