matlab绘制信号幅值图和信号图

% 定义时间轴
T = 1e-5; 
K = 10^11; 
t = linspace(-T/2, T/2, 1000);
% 计算原始信号的幅值和相位
rect = (abs(t) <= T/2); 
s = rect .* exp(1j * pi * K * t.^2);
A = abs(s); % 幅值
P = unwrap(angle(s)); % 相位
% 绘制幅值图
subplot(2,1,1);
plot(t, A);
xlabel('时间 / s');
ylabel('幅值');
title('信号幅值图');
% 绘制相位图
subplot(2,1,2);
plot(t, P);
xlabel('时间 / s');
ylabel('相位 / rad');
title('信号相位图');

rect = (abs(t) <= T/2);此处计算为若满足括号内的条件则会返回值1,不成立则返回0,通过此代码则实现了对rect(t/T)的计算,然后P = unwrap(angle(s));这段代码计算了信号 s 的相位,并使用 unwrap 函数对相位进行了修正。unwrap 函数主要用于处理相位值的不连续性,因为相位是一个周期性的量。在信号处理中,相位经常会出现跳跃,即由于相位的周期性,相位差超过一个周期后又回到初始点。angle(s) 计算了信号 s 的相位,结果是一个包含每个样本的相位值的向量。unwrap 函数会检测相位值的跳跃,并将其修正为连续的曲线。具体来说,它通过从相位值中减去相位的周期倍数来消除跳跃。这样就可以得到一个连续的相位曲线。通过对相位进行修正,可以更准确地分析信号的相位特性,以便后续的处理和分析

  • 8
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值