I could manage to shift the phase of signal by 90 by using analytic signal block. But, the problem is that its amplitude is not equal to the original one. Can anyone please explain it?
What is the input signal you are considering?From the figure you attached,I see it is a sine wave and you can specify the phase,you want to shift in the block parameters itself
Yes you can shift the signal from the block itself. But you cannot do that with a signal you receive in a telecommunications system for example and you want to shift it by 90 degrees.
The other option I could think of is transport delay block where we can specify the time delay corresponding to a phase shift of 90 degrees as per the equation
phase shift (in deg) = 360*time delay/period of signal.
Suppose you leave the program running for two weeks. Then a frequency as low as one cycle per week could be detected, mathematically. That frequency has to have its phase shifted by 90 degrees, just like all the other frequencies do.Is it mathematically possible for something like a hilbert transform to properly predict when to make the appropriate output adjustments before the system has seen one cycle of the wave? Nyquist would say NO.
I would argue that it is therefore not possible to do what you want in a real-time system, unless
You put a lower-frequency boundary for detection (upper frequency is according to sampling frequency); and
You have a transport delay corresponding to one cycle of that low frequency.
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.