# use FFT in matlab and get phase plot

2 views (last 30 days)
Passband Modulation on 14 Aug 2012
i have some polymers characterized by transmission terahertz time domain spectroscopy (THz-TDS).
ive now the time domain data in Excel, with column A being (Delay ps), column B (Reference), column C (Amplitube nA) as follows.
i would like to have "FFT phase of column C" minus "FFT phase of column B", and then plot the phase (after deduction) as a function of frequency.
i am told this could be done by adding
plot(freq,angle(fft(X(:,3)))-angle(fft(X(:,2))))
after
xdft = fft(X(:,2)); xdft = fft(X(:,2));
% sampling interval -- assuming equal sampling
DT = X(2,1)-X(1,1);
% sampling frequency
Fs = 1/DT;
DF = Fs/size(X,1);
freq = 0:DF:Fs/2;
xdft = xdft(1:length(xdft)/2+1); phi = angle(xdft);
anyway it does not work
the command window shows
??? Error using ==> plot Vectors must be the same lengths.
Error in ==> Untitled at 12 plot(freq,angle(fft(X(:,3)))-angle(fft(X(:,2))))
##### 2 CommentsShow 1 older commentHide 1 older comment
Passband Modulation on 15 Aug 2012
thank you Michael Quinn, but i am not familiar with this. anway thx again.

Dr. Seis on 14 Aug 2012
Edited: Dr. Seis on 14 Aug 2012
Here are the frequencies associated with the output from FFT:
Nt = % Number of time samples
Fs = % sample frequency (= 1/dt)
df = Fs/Nt; % frequency increment
Nyq = Fs/2; % Nyquist frequency
if mod(Nt,2) == 0 % Nt is even
freq = ifftshift(-Nyq : df : Nyq-df);
else % Nt is odd
freq = ifftshift([sort(-1*(df:df:Nyq)) (0:df:Nyq)]);
end
Then you can just do a xlim on the plot to zoom in on a specific frequency range.
Passband Modulation on 15 Aug 2012
Edited: Passband Modulation on 15 Aug 2012
really thx a lot. these are the background info and the related questions on them.

### Categories

Find more on Fourier Analysis and Filtering in Help Center and File Exchange

### Community Treasure Hunt

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

Start Hunting!

Translated by