Singular Value Decomposition (SVD) is an important method in the area of signal processing. I try to use SVD to calculate the MHD mode structure from experiment data. However, during the benchmark period of the my code with artificial signal matrix, 2 equal singular values appear with different phases for one mode. I was rather confused with this result. Why should one mode get two equal singular values?
My SVD code in python has been uploaded in Github with this link:
https://github.com/DocNan/Python_libs/blob/master/signal_process_lib.py
The test signal is generated like this:
sig(t, i) = cos(2*pi*f*t + n*2*pi*i/N)
Where i is the index of the artificial probes, N is the total number of the probes. n is the toroidal/poloidal mode number.
And simulation results suggest that only the mode with n=0 will get a single singular value, the other modes with n>0 will get 2 singular values.
Any explanation to this seemingly confusing problem is appreciated. Thank you!