The transmitting signal is $$ s(t) = \sin(20\pi t)+\sin(40\pi t)+\sin(60\pi t) $$
The received signal after AWGN channel is $$ r(t) = s(t)+n(t) $$ where the variance of noise $n(t)$ is $\sigma^2$.
The theoretical single spectrum of the $r(t)$ should be
$$ R(f) = \pi\delta(f-10)+ \pi\delta(f-20)+ \pi\delta(f-30)+\sigma^2 $$
where $\delta(.)$ is Delta function. However, the spectrum obtained through MATLAB seems not like the theroetical one.
When the SNR is setted as lower than -25dB, the spikes will be submerged by noise. And how to calculate the threshold SNR where sinusoid part is totally covered by noise?
The relative code is here
fs_init = 10; % basis frequency om=fs_init*2*pi; T = 2*pi/om; tall = 10; h=T*0.01; t=0:h:tall-h; fs_init= 10; ut = zeros(1,length(t)); %%% Added constants NSyboml = 3; a=1; for i = 1:NSyboml ut = ut+a*sin(2*pi*i*fs_init*t); end SNR = 0; rt = awgn(ut,SNR,'measured'); % add noise % FFT y = rt; L = length(ut); % Length of signal Ts_v = t./(0:L-1); % sample time Fs = ceil(1/Ts_v(2)); % sample frequency deltaf = 0.1; % resolution NFFT = floor(Fs/deltaf); Y = fft(y,NFFT)/L; f = Fs/2*linspace(0,1,floor(NFFT/2+1)); % Plot single-sided amplitude spectrum. figure;set(gcf,'Color','w','Position',[0 0 500 350]); plot(f,20*log10(abs(Y(1:NFFT/2+1)))); xlim([0,6*fs_init]) xlabel('Frequency (Hz)');ylabel('|R(f)|'); grid on; ylim([-120,0]) title(['SNR = ',num2str(SNR),'dB']) %%%enter preformatted text here