Register to reply 
Phase shift using FFT 
Share this thread: 
#1
Oct307, 02:36 PM

P: 3

What I want to do is apply a frequencyindependent phase shift to a Gaussian Noise signal. Obviously I can just invert it to get a pi shift. Also I can take the Hilbert transform to get a pi/2 shift and I can invert that to give myself in effect a 3/2pi shift. BUT..... what I want to do is to be able to apply any phase shift, 10, 20, 30 degrees etc.
The way I have been thinking about this is that I can take the FFT of the noise and get the magnitude and phase information, and then I could manipulate the phase but leave the magnitude the same and take the IFFT to get my phaseshifted signal. Here is an example bit of matlab code doing this on a single sinusoid. As it is here the code doesn't work. But if you change the phase shift p from pi/2 to pi then it does? Is there something I'm missing. Perhaps I need to apply the phase shift differently to the positive and negative parts of the FFT? Or is it something to do with the fact that theta is distributed on [pi pi] and when I add "p" I change this and make it ambiguous or something? sr=10000; dt=1/sr; len=0.5; t=0:dt:len; f=500; %generate signal sig=sin(2*pi*f*t); %Define a phase shift in rads p=pi/2; %Get the FFT of the signal z=fft(sig); %Get the magnitude mag=abs(z); %Get the phase theta=angle(z); %Add the phase shift onto the phase theta=theta+p; %Set the new real and imag parts of the spectrum R=mag.*cos(theta); I=mag.*sin(theta); %Make the new spectrum spec=complex(R,I); %Get the new signal newsig=real(ifft(spec)); %plot the signals figure;plot(t,sig);hold on; plot(t,newsig,'g'); 


Register to reply 
Related Discussions  
Phase shift using FFT  General Engineering  11  
Phase, Phase Difference and Phase Shift  General Physics  6  
Phase shift  Introductory Physics Homework  0  
Phase shift  Introductory Physics Homework  0  
Phase Shift  Electrical Engineering  1 