Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

How to graph BER with perfect results?

Status
Not open for further replies.
:) just was in this website.

looking for good tutorial on multipath channel...

gonna check this new lines of code.
Is the symbol interval is the same for all types of mapping 4-qam,16-qam,64-qam =
Code:
deltaF = ofdmBW/N;      % Bandwidth for each subcarrier - include all used and unused subcarries
Tfft = 1/deltaF;               % IFFT or FFT period = 3.2us 
Tgi = Tfft/4;                    % Guard interval duration - duration of cyclic prefix - 1/4th portion of OFDM symbols
Tsignal = Tgi+Tfft;          % Total duration of BPSK-OFDM symbol = Guard time + FFT period
discard the last 4 lines my misunderstanding.

how much frameNb you used ?
 
Last edited:

I must verify all the code soon WUID.

I am telling you just suggestion. I can be wrong.

Now, the system can send up to 100 frames.

If it detect 100 error or it complete all frames it stops.

Simulation with SNRdB=0
Resulats :
Number_frames=4
all_transmitted_bits=2048000
NumErrors=140
ber_values=6.83 10^-5


Simulation with SNRdB=1
Resulats :
Number_frames=1
all_transmitted_bits=512000
NumErrors=21707
ber_values=0.0424

What you think of this results ?
you must have an article or theoretical ber values to compare the result with. To be sure that your system is correct.

For SNRdB=2 i don't simulate because it will take more time.

you can repeat simulation. I use the same code that i send for you

I must go to sleep :/ i have job tomorrow

We will discuss soon

Good night
 

I must verify all the code soon WUID.

I am telling you just suggestion. I can be wrong.

Now, the system can send up to 100 frames.

If it detect 100 error or it complete all frames it stops.

Simulation with SNRdB=0
Resulats :
Number_frames=4
all_transmitted_bits=2048000
NumErrors=140
ber_values=6.83 10^-5


Simulation with SNRdB=1
Resulats :
Number_frames=1
all_transmitted_bits=512000
NumErrors=21707
ber_values=0.0424

What you think of this results ?
you must have an article or theoretical ber values to compare the result with. To be sure that your system is correct.

For SNRdB=2 i don't simulate because it will take more time.

you can repeat simulation. I use the same code that i send for you

I must go to sleep :/ i have job tomorrow

We will discuss soon

Good night

i'll check it carefully.

thank you very much.

Good Night Mohamed
 

Sorry i made mistake.. this is the correct values:


Simulation with SNRdB=0
Resulats :
Number_frames=1
all_transmitted_bits=512000
NumErrors=21707
ber_values=0.0424

Simulation with SNRdB=1
Resulats :
Number_frames=4
all_transmitted_bits=2048000
NumErrors=140
ber_values=6.83 10^-5

Good night :)
 

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?
 

The files...
*for the BER graphs : The first 2 graphs are without the scaling.
The other two is with scaling.
 

Attachments

  • ber-150-rate-2.jpg
    ber-150-rate-2.jpg
    48.9 KB · Views: 88
  • ber-rate2-doppler-250.jpg
    ber-rate2-doppler-250.jpg
    48.9 KB · Views: 70
  • ber-150-rate2-scaled.jpg
    ber-150-rate2-scaled.jpg
    75.9 KB · Views: 74
  • ber-250-rate-2-scaled.jpg
    ber-250-rate-2-scaled.jpg
    74.7 KB · Views: 74
  • OFDM_sys_final.rar
    31.6 KB · Views: 70

Hi WUID,

I will give you my feedback soon.

Regards,

Chaker
 
  • Like
Reactions: WUID

    WUID

    Points: 2
    Helpful Answer Positive Rating
Hi , nice to write to you again... :)

Could you help me verify the signal power before channel and signal power after the channel,

I've tried this :

PowerTx= norm(xt_long_with_CP)^2/length(xt_long_with_CP); Transmitted
PowerRx=norm(y)^2/length(y); Received

seems that the power of the signal after the channel is stronger... with/without scaling...
 

In the old days , we did accelerated BER tests using phase margin ingress testers and phase margin analyzers. THese were used to predict BER on HDD for soft and hard error rates. <1e10 & <1e12. I had success in correlating these curves and could use random jitter injected on digital channel before SERDES data /clock recovery. I could also get fast good results using plotted BER curves using shifted window of clock for data recovery. Asymmetry errors of slicer or phase error of PLl showed up as offset asymptotes on waterfall. long term hard BER could be extrapolated from curve as long as there was no defect in channel ( magnetic bad bit) or environmental disturbance.

Consider slope curve fitting BER to 1e0 bits and 1e12 bits or whatever range you need.
 
  • Like
Reactions: WUID

    WUID

    Points: 2
    Helpful Answer Positive Rating
Consider slope curve fitting BER to 1e0 bits and 1e12 bits or whatever range you need.

To be honest that's the only line I can say the I understood (as I can sum up that back in the old days u didn't have matlab :) ), sorry...

So if you familiar with Matlab you probably mean that I'll use berfit command , but which parameters ? should I use ?

As for the number of bits that I need to simulate..., Now I'm not sure if i need that much amount of bits as I am expecting error floor to accord.
 

I dont know if you have included any channel filters but Group Delay distortion will tend to flatten out the waterfall curve as it introduces pattern dependant ISI rather than Gaussian channel noise. SO optimized channel filters ought to be used such as raised cosine, elliptical etc.
 

Status
Not open for further replies.

Similar threads

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top