You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MATLAB绘制傅里叶级数DC分量与谐波时仅显示谐波问题求助

问题原因

你代码里的DC分量无法显示是两个原因导致的:

  1. plot(xx,ao)中ao是单个常数,xx是长度为301的向量,x/y维度不匹配,Matlab无法绘制出完整的水平直流线,最多只会生成一个肉眼不可见的离散点
  2. 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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.19 18:36:01