Hi
If I add random_phase to my waveforms then the fft goes skewy – basically it breaks down and is not producing what it should be like when random_phase is not present in sinewave generation loop.
%Setup sampling times and frequency range
f=(20.2 : 0.1 : 21.1)*10^9;Fs = 3*max(f);Ts = 1/Fs;end_t = 0.5*10^-6dt=0: Ts : end_t -Tsa=0; b=pi; %for random phase calculation
%Below part adds a new sine wave every 0.01*10^9 within frequency range
for a=1:length(f)-1random_phase = (b-a).*rand(1,length(dt))+a;y(a,:) = 5*sin(2*pi.*f(a) .* dt + random_phase); %remove random_phase and scripts works fine.
end%combined waveform
waveform = sum(y);%setup frequency domain for FFT
N=length(waveform);freq_domain = (0:N-1);freq_domain = f_domain*Fs/Nft=2*abs(fft(waveform)/N);figure(1)bar(freq_domain, ft);ax=gca; ax.XAxis.Exponent = 9;xlim([20 *10^9 21.4*10^9]);
Completely stumped how random phase messes up my fft…
Best Answer