信号处理趣学D4——利用谐波叠加对周期方波进行逼近
小虎最近试着用谐波叠加对周期方波逼近,发现实现起来很有趣,我用的仿真手段是MATLAB,这里跟大家分享一下学习经验。
结果
![]() |
![]() |
![]() |
![]() |
代码分析
幅值为2,周期为3,讨论区间在[-3:3]。
A=2;
T=3;
t=-T:0.01:T;
简谐波叠加,n是简谐波叠加数量的1/2或-1后的1/2。
n=1;
for k=1:2:n
x=x+4*A*sin(k*w0*t)/(k*pi);
end
作图。
plot(t,x,'k');
grid on;
hold on;
xs=A*square(w0*t);
plot(t,xs,'r');
text=['n=',num2str(n)];
xlabel({'t',text});
ylabel('x(t)');
完整代码
A=2;
T=3;
t=-T:0.01:T;
w0=2*pi/T;
x=zeros(size(t));
n=1;
for k=1:2:n
x=x+4*A*sin(k*w0*t)/(k*pi);
end
plot(t,x,'k');
grid on;
hold on;
xs=A*square(w0*t);
plot(t,xs,'r');
text=['n=',num2str(n)];
xlabel({'t',text});
ylabel('x(t)');
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)