LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

How do I apply a uniform phase shift to a waveform?

In LabVIEW 6.0, I am attempting to apply a uniform phase shift to a non-periodic waveform but have run into a problem. Theoretically, if I take the Fourier transform of the signal, apply an offset to the phase and then take the inverse transform of that, the output of this process should be my original waveform with all of its frequency components delayed by the same number of radians (different amounts of time). However, I am not getting this result from LabVIEW. In the attached example code I generate a sine wave burst, take the FFT, convert from cartesian to polar, apply an offset to the phase, convert back to cartesian and take the inverse FFT. However, instead of getting a phase-shifted, same-amplitude versio
n of the input at the output, I get an amplitude shifted, same-phase signal. What am I doing wrong?
0 Kudos
Message 1 of 2
(4,711 Views)
This only works (partially) if your array size is an integral power of 2 (e.g. 512, 1024, etc.), i.e. in cases where the fast fourier transform can be used.

You need to use the complex FFT (and the hilbert transform)

Please see my example posted HERE
0 Kudos
Message 2 of 2
(4,711 Views)