I'm trying to write a code which allows me to determine the phase of a sine wave from its vector. given: the sinusoidal signal vector, its frequency unknown: its phase I have tried with this code but i don't understand why do i end up getting wrong/ unprecise results a=0; b=800; %time intervalls N=20000; %N number of samples t=linspace(a,b,N); %time vector ts=(b-a)/N; %sampling time fs=1/ts; %sampling frequency fn=fs/2; %Nyquist frequency fx=1; phix= 180; %Frequency and phase of x(t) x=sin(2*pi*fx.*t+phix* (pi/180)); %Original signal binwidth = 1 / (b-a); % frequency binwidth in Hz f_index = fx / binwidth +1; % frequency index y = abs(fft(x)) / (N/2); phase = angle(fft(x))* 180/pi+90; disp(phase(f_index)); for example here i get 187.2000 instead of 180 I'd be very grateful for your help and clarifications!
Prashant Kumar answered .
2025-11-20