MATLAB编程实现完成1个周期三角波信号的分解和合成(设 um为三角波幅度,T为其周期,编程时,请自己定义um,T的数值), 将自己的实验结果与以下结果进行比较。 提示: 1)先构造幅值为um,周期为T的三角波,写出数学表达式,编程 实现

动态 未结 0 150
小小草
小小草 LV1 2023年9月23日 23:40 发表
um = 1; % 三角波幅度 T = 2; % 三角波周期 % 构造三角波信号 t = linspace(0, T, 1000); tri_wave = um * (2/pi) * asin(sin(2*pi/T*t)); % 绘制三角波信号图像 subplot(2,1,1) plot(t, tri_wave) title('三角波信号') xlabel('时间') ylabel('幅值') % 计算傅里叶级数展开式 N = 20; % 级数展开项数 a0 = 0; an = zeros(1,N); bn = zeros(1,N); for n = 1:N an(n) = 0; bn(n) = (4*um/(n*pi))*((-1)^n-1); end % 构造三角波信号的级数展开式 tri_wave_expansion = a0/2; for n = 1:N tri_wave_expansion = tri_wave_expansion + an(n)*cos(2*pi*n/T*t) + bn(n)*sin(2*pi*n/T*t); end % 绘制三角波信号的级数展开式图像 subplot(2,1,2) plot(t, tri_wave_expansion) title('三角波信号的级数展开式') xlabel('时间') ylabel('幅值') % 比较三角波信号和级数展开式的图像 figure plot(t, tri_wave, t, tri_wave_expansion) legend('三角波信号', '级数展开式') title('三角波信号和级数展开式的比较') xlabel('时间') ylabel('幅值') % 分析特点 % 三角波信号可以用傅里叶级数展开式表示,展开式中包含了多个正弦函数的叠加,随着级数项数的增加,展开式逐渐逼近原始信号。
收藏(0)  分享
相关标签: 智能问答
问题没解决?让AI助手帮你作答 AI助手
0个回复
  • 消灭零回复