1. 算法1

已知信号u1为正弦信号,可表示为

信号u2同为正弦,但与u1相差相角为,幅值为u1的A倍,可表示为

将两信号相乘并变换形式,得到

可以看到包含直流成分和二倍频成分

因此可使用低通滤波器或滑动滤波器将二倍频成分滤除,剩下的成分为

由于A于耦合在一个式子里,无法提取出来,因此需要引入第二个式子

创建一个与幅值电压相位相同,相位相差90度的信号,表示为

令其与电流信号相乘可得到

同理,提取直流成分,加上前一步提取到的成分,得到

进行变换,得到A和

2. 算法2

但是这种求法存在弊端,导致相角始终正值,因此可以将上述提取的直流成分uaub映射到复平面上,即ua为实部ub为虚部

在Simulink中可以利用Real-Imag to Complex模块快速得到复数,再用Complex to Magnitude-Angle得到幅值和相角。

3. 仿真实验

Simulink仿真如下图,主要应用于扫描待测对象阻抗,故电压信号为u1,电流信号为u2

容性负载(u2超前u1)

感性负载(u2滞后u1)

4. Mathematica计算过程

另外,MATLAB还有一个Fourier模块,直接设置频率即可得到对应信号的幅值和相角


To capture the forces of nature.