Back with results... any comments would be appreciated.
I will divide the results into two parts.
The first part is without scaling. By this i mean that I just performed ifft to the "frequency" vector at the side of the transmitter and on the side of the receiver I performed fft to the received vector. Relevant lines: 81 & 171.
The second part is with scaling that I took from
https://gaussianwaves.blogspot.com/search/label/Channel%20Modelling
On the Tx side: xt=(FFTsize/sqrt(length(PilotLocations)+ActiveSCs))*ifft(x_f); %with scaling Line:79
Rx side: Y_matrix_PostFFT=sqrt(1024+2256)/FFTsize*(fft(yCP_RemoveMatrix)); %Bossted signal Line 169.
I will attach the following files:
*
The Code file.
Results:
*Without Scaling:
1. BER results for 4/16/64 QAM with different code rate and Doppler.
You can notice that the results are not consistent as the system performs better with 250Hz Doppler than 150Hz Doppler.
Another issue is the time that took me get this results, WITHOUT scaling, the system was very "immune" to errors and i was getting BER=0. So I needed to simulate 10^8 bits, which took me a day. i.e for 4-QAM code rate = 0.5, Doppler = 250Hz -- I can simulate up to 20dB SNR and for higher SNR values I am getting BER=0.
*With Scaling:
2. BER results for 4/16/64 QAM with different code rate and Doppler.
Here I applied the scaling factors to the ifft & fft, with this the system was much less "immune" and I was needed to "stretch" the SNR vector to 0:5:40.
Now I am happy with the results as :
1. The system is consistent with influence of the
Doppler spread .
2. It's enough to transmit 10^6 bits to get this results, so it is much less time.
3. I am checking now to see if I am getting error floor. Which is expected with Doppler.
BUT , when I sent this "scaling" corrections to my project mentor I wasn't able to explain him very well the modifications and what they means. I sent him the link for "GussianWaves" web site.
and he told me that I should notice that this simulation was for EB/N0.
I can derive SNR from EB/N0 and the other-way. So the scaling will be different ?
someone can help me with that ?
ChaketQ?