# Simplifying complex multiplications by means of polar coordinates

20 views (last 30 days)
D_coder on 12 Mar 2020
Edited: James Tursa on 12 Mar 2020
I have a complex matrix A of size and another complex matrix P that has same size as A. But abs(P) = ones(size(M,N)) which indicates that P only contains phase related components and since it only contains phase related components it wont effect abs(A) when A.*P is performed. Coming to my problem. I want to reduce the complex multiplications of A.*P to complex additions angle(A) + angle(B). The pseudo code is as follows.
while above the interface
A = A.*P;
Accum(i,:) = sum(A,1);
i = i+1
end
I am stuck in the accum part. I am not getting how to join both absolute and phase without multiplying them before I sum all the M rows.
My approach so far as been follows:
absA = abs(A);
anA = angle(A);
anP = angle(P)
while above the interface
anA = anA + anP;
Accum(i,:) = sum(A,1); % I am stuck in the Accum part
i = i+1
end

Walter Roberson on 12 Mar 2020
If the magnitudes are all 1 then the sum of the magnitudes should be the number of items being added. So perhaps you just need to sum angles?
But since the angle of any one P is not changing, Accum should come out with angle sum(angle(original A), 1) + iterations * sum(angle(P), 1) and magnitude iterations * size(A, 1)
D_coder on 12 Mar 2020
The magnitudes are not 1, the magnitude is 1 only for matrix P. Was wondering if we had some function that would do some operation in polar form and then convert back to rectangular form?
Walter Roberson on 12 Mar 2020
Ok but you are not changing the magnitudes of any A entry so
Accum should come out with angle sum(angle(original A), 1) + iterations * sum(angle(P), 1) and magnitude sum(magnitude(original A), 1)
I think.