For loop and Fast Fourrier Transfrom

Dear colleagues, I have a question related to Fast fourier transfrom. I want to calculate the phase and make FFT to draw power spectral density. However when calculate the phase "theta", there was some errors. So sorry because I am new to Matlab. This is my program code. Please help. Thanks so much !
n = 1:32768;
T = 0.2*10^-9; % Sampling period
Fs = 1/T; % Sampling frequency
Fn = Fs/2; % Nyquist frequency
omega = 2*pi*200*10^6; % Carrier frequency
L = 32768; % % Length of signal
t = (0:L-1)*T; % Time vector
x_signal(n) = cos(omega*T*n + 0.1*randn(size(n))); % Additive phase noise (random)
y_signal(n) = sin(omega*T*n + 0.1*randn(size(n))); % Additive phase noise (random)
theta(n) = atan(y_signal(n)/x_signal(n));
f = (theta(n)-theta(n-1))/(2*pi)
Y = fft(f,t);
PSD = Y.*conj(Y); % Power Spectral Density
%Fv = linspace(0, 1, fix(L/2)+1)*Fn; % Frequency Vector

3 Kommentare

Star Strider
Star Strider am 11 Mär. 2017
Calculate the phase from the fft using the angle function.
Xuan Hiep Dinh
Xuan Hiep Dinh am 12 Mär. 2017
Thanks for help. However, I need to calculate the phase "theta" before doing fft.
Xuan Hiep Dinh
Xuan Hiep Dinh am 12 Mär. 2017
And I am stuck when calculating the frequency.

Antworten (0)

Diese Frage ist geschlossen.

Tags

Gefragt:

am 11 Mär. 2017

Geschlossen:

am 20 Aug. 2021

Community Treasure Hunt

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

Start Hunting!

Translated by