Matlab中angle函数使用

本文介绍如何使用angle函数计算复数的相位角,并通过实例演示复数的幅值与相位计算过程。此外,还展示了如何利用FFT进行信号处理,包括计算相位并绘制相位谱。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

语法

说明

示例

复数的幅值和相位

FFT 相位


angle函数的功能是求解相位角。

语法

theta = angle(z)

z - 输入数组

        输入数组,指定为标量、向量、矩阵或多维数组。如果 z 的元素是非负实数,则 angle 返回 0。如果z的元素是负实数,则 angle返回 π。

说明

theta = angle(z) 为复数数组 z 的每个元素返回区间 [-π,π] 中的相位角。theta 中的角度表示为 z = abs(z).*exp(i*theta)。

示例

复数的幅值和相位

        创建一个复数,并计算其幅值和相位。如下所示:

z = 2*exp(i*0.5)
z = 1.7552 + 0.9589i

r = abs(z)
r = 2

theta = angle(z)
theta = 0.5000

FFT 相位

        创建一个由频率为 15 Hz 和 40 Hz 的两个正弦波组成的信号。第一个正弦波的相位为 −π/4,第二个正弦波的相位为π/2。以 100Hz的频率对信号进行一秒钟的采样。

fs = 100;
t = 0:1/fs:1-1/fs;
x = cos(2*pi*15*t - pi/4) - sin(2*pi*40*t);

        计算信号的傅里叶变换。将变换幅值绘制为频率函数。

y = fft(x);
z = fftshift(y);

ly = length(y);
f = (-ly/2:ly/2-1)/ly*fs;

stem(f,abs(z))
xlabel 'Frequency (Hz)'
ylabel '|y|'
grid

        如图所示:

        计算变换的相位,删除小幅值变换值。将相位绘制为频率函数。

tol = 1e-6;
z(abs(z) < tol) = 0;

theta = angle(z);

stem(f,theta/pi)
xlabel 'Frequency (Hz)'
ylabel 'Phase / \pi'
grid

        如图所示:

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值