MATLAB绘制傅里叶级数DC分量与谐波时仅显示谐波问题求助
问题原因
你代码里的DC分量无法显示是两个原因导致的:
plot(xx,ao)中ao是单个常数,xx是长度为301的向量,x/y维度不匹配,Matlab无法绘制出完整的水平直流线,最多只会生成一个肉眼不可见的离散点- DC分量的绘制逻辑放在了for循环内部,每次循环都会重复执行绘制逻辑,属于冗余操作
修正后代码
n = 30; x = (0:300)/100; xx = 2*x; ao = 1/2; %DC component f = ones(1,301)*ao; % 预绘制第一个子图的DC分量 subplot(1,2,1) plot(xx, ones(size(xx))*ao) % 修正为y维度和xx匹配,生成完整水平DC线 hold on title('DC分量与各次谐波') subplot(1,2,2) hold on title('傅里叶级数拟合结果') for i = 1:2:n bn = 2/pi/i; bnx = bn*sin(2*pi*i*x); f = f + bnx; subplot(1,2,1) plot(xx,bnx) subplot(1,2,2) plot(xx,f) end hold off
修改后第一个子图会正常显示y=0.5的DC分量水平线,各次谐波也会同步在该子图叠加显示。
内容的提问来源于stack exchange,提问作者Asher Remigio
相关产品推荐
相关产品推荐

