matlab生成线性等间隔离散的梯形波

2023-12-19 22:57:56
% 设定参数
duration = 0.01; % 信号持续时间[s]
Fs = 1000/duration; % 采样频率[Hz]
t = 0:1/Fs:duration; % 时间向量,此处最小的时间间隔已确定
t = t';

% 定义梯形波的参数
t_ramp_up = 1e-3; % 上升时间[s]
t_ramp_down = t_ramp_up; % 下降时间[s]
slope_up = 1/t_ramp_up; % 上升斜率
slope_down = -1/t_ramp_up; % 下降斜率
t_flat = (duration-t_ramp_up-t_ramp_down)/2; % 持续时间[s]

% 生成梯形波信号
signal = zeros(size(t));

% 上升段
signal(t <= t_ramp_up) = slope_up * t(t <= t_ramp_up);

% 平顶段
signal(t > t_ramp_up & t <= (t_ramp_up + t_flat)) = slope_up * t_ramp_up;

% 下降段
signal(t > (t_ramp_up + t_flat) & t <= (t_ramp_up + t_flat + t_ramp_down)) = ...
    slope_down * (t(t > (t_ramp_up + t_flat) & t <= (t_ramp_up + t_flat + t_ramp_down)) - (t_ramp_up + t_flat)) ...
    + slope_up * t_ramp_up;

% 绘制信号图形
plot(t, signal, 'color', 'r');
% plot(t, signal, '-o', 'color', 'r');
xlabel('时间 (秒)');
ylabel('振幅');
title('梯形波信号');

文章来源:https://blog.csdn.net/chd_lkl/article/details/135095486
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。