用matlab编写一段程序,要求画方波,合并从基波到十九次谐波的各奇次谐波分量,并将上述波形分别画在一副图中。
时间: 2024-05-22 07:16:16 浏览: 41
【matlab代码】生成一个方波信号
% 画方波和合并的各奇次谐波分量
clear;
clc;
% 基本参数设置
fs = 8000; % 采样频率
T = 1/fs; % 采样间隔
L = 1000; % 采样点数
t = (0:L-1)*T; % 时间序列
% 生成方波
f = 100; % 方波频率
x = square(2*pi*f*t);
% 计算各奇次谐波分量
harmonics = 1:2:19; % 奇次谐波分量的频率
y = zeros(size(x)); % 初始化合并的谐波分量
for i = 1:length(harmonics)
y = y + sin(2*pi*harmonics(i)*f*t)/(2*pi*harmonics(i));
end
% 合并方波和各奇次谐波分量
sum = x + y;
% 画图
subplot(3,1,1);
plot(t, x);
title('方波');
xlabel('时间/s');
ylabel('幅值');
subplot(3,1,2);
plot(t, y);
title('各奇次谐波分量');
xlabel('时间/s');
ylabel('幅值');
subplot(3,1,3);
plot(t, sum);
title('合并的谐波分量');
xlabel('时间/s');
ylabel('幅值');
阅读全文