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

动态 未结 0 126
小小草
小小草 LV1 2023年9月23日 23:40 发表
um = 2; % 三角波幅度 T = 4; % 三角波周期 t = linspace(0, T, 1000); % 时间序列 tri_wave = um * (1 - 2*abs(mod(t, T)-T/2)/T); % 构造三角波信号 figure; plot(t, tri_wave); xlabel('时间'); ylabel('幅值'); title('三角波信号'); % 分解三角波信号为基波和谐波 N = 10; % 谐波个数 a0 = mean(tri_wave); % 直流分量 an = zeros(1, N); % 余弦项系数 bn = zeros(1, N); % 正弦项系数 for n = 1:N an(n) = 2/T * trapz(t, tri_wave .* cos(2*pi*n*t/T)); bn(n) = 2/T * trapz(t, tri_wave .* sin(2*pi*n*t/T)); end % 合成三角波信号 tri_wave_recon = a0/2; for n = 1:N tri_wave_recon = tri_wave_recon + an(n)*cos(2*pi*n*t/T) + bn(n)*sin(2*pi*n*t/T); end figure; plot(t, tri_wave, 'b', t, tri_wave_recon, 'r--'); xlabel('时间'); ylabel('幅值'); title('三角波信号及其重构');
收藏(0)  分享
相关标签: 智能问答
问题没解决?让AI助手帮你作答 AI助手
0个回复
  • 消灭零回复