Clear Filters
Clear Filters

How to create a mirror image of a noise signal? (create a symmetric half from the existing half)

10 views (last 30 days)
Hi, I am dealing with a noise signal in frequency domain. I am reconstructing the phase from its one sided spectrum. I have the left part of the phase (manipulated) and I want to create the other half of it. The other half needs to be symmetric to the existing half. It should be created by subtracting each point from the logical maximum (so minimums become maxima and other way round). Thereby, I can concatenate both parts and get a complete phase.
Does anyone have an idea on how can I excecute this logic?
P.S. flipud and fliplr is not what I want.
Below is the first half of the phase. I want to create a symmetric other half and join them.
Required Output:
The symmetric part as shown below but on the same y-axis scale.

Accepted Answer

Adam
Adam on 27 Apr 2017
Edited: Adam on 27 Apr 2017
Well, it seems you already said half of what needs to be done and categorically rejected the other half!
result = flip( max( original ) - original );
looks like it would do that job to create the 2nd half of the signal. You may need to remove a repeat point, or add in a unique point for concatenating given that the 0-frequency will be unique, as will the nyquist frequency, presumably.
  2 Comments
automycer
automycer on 28 Apr 2017
Thanks Adam, this is exactly what I wanted. Also, the reason for cutting the phase in half is to find out the zero frequency content and max freq. content and create a symmetric half of it without the zero freq. content so to avoid mirroring of the same.
But any suggestion on how to perform concatenation? On concatenating the two arrays (original and result), the connection ain't smooth.
Thanks much! :D
Adam
Adam on 28 Apr 2017
Well, I guess the connection will only be smooth if the last point of that signal is exactly half of the maximum of the signal. If it isn't then you may want to subtract from twice that last number instead of the maximum if it is greater than half the maximum. If it is lees than half then it is a bit more complicated as you'd end up with negative numbers by doing that so you may have to alter those last few points to ensure they approach half the maximum if their exact values are not critically important.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!