Matlab:如何获得正弦信号的幅度和相位

时间:2017-02-18 14:08:59

标签: matlab

给出两个信号:

x1 = A1*exp(j*2*pi*f1*t + Phi1); 
x2 = A1*exp(j*2*pi*f1*t + Phi1) + A2*exp(j*2*pi*f2*t + Phi2);

Matlab应该能够计算幅度和相位:

abs(x1) = A1;
angle(x1) = Phi1;

abs(x2) = A1+A2;
angle(x2) = Phi1+Phi2;

这是对的吗?我真的不确定x2。 现在,我得到一个正弦信号:

x3 = A3*cos(2*pi*f3*t + Phi3); 
x4 = A3*cos(2*pi*f3*t + Phi3) + A4*cos(2*pi*f4*t + Phi4);

这些信号的abs()/ angle()会产生什么?

x2的复数包络由下式给出:

A1*exp(j*2*pi*(f1-f2)/2 t + Phi1) + A2*exp(j*2*pi*(f2-f1)/2 t + Phi2) 

假设载波频率在f1和f2之间。 复包络的幅度和相位应该在某种程度上等于原始信号。现在我想知道,是吗?

1 个答案:

答案 0 :(得分:0)

编辑:我仍然不确定你到底需要什么,但也许这个身份可能对我很有用:

cos(a) = [exp(j*a) + exp(-j*a) ] / 2

如果需要估计(某些)参数A,f,Phi,请查看离散时间傅立叶变换(DTFT)。例如,此页面的数学为least squares sinusoidal parameter estimation