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.

Query regarding Simulation

Status
Not open for further replies.

Communications_Engineer

Advanced Member level 3
Joined
Oct 10, 2008
Messages
894
Helped
179
Reputation
358
Reaction score
105
Trophy points
1,323
Location
Sindh, Pakistan
Activity points
5,542
Hello all,

These days I am simulating some algorithms for the Bit Error Rate analysis.

The problem I am having is that my machine is old and cannot process too much data (which Monte Carlo requires to calculate BER up 1e-6), but I can get BER up to 1e-4

Can some please tell me how I can intra-polate the BER vector up to 1e-6?

An example would just be brilliant help.
 

I was facing a similar problem while simulating BPSK and QPSK BER. One method is to adjust the length of your bit stream for each BER stem. i.e. if you are expecting the BER to be 10e-1 for the first iteration, you don't have to create a bit stream with a very large length. For the second iteration if you're expecting BER 10e-2 you'll create a slightly larger bit stream and so on.

Does this answer your query?
 
thanks for the reply. but no, the suggestion does not help me.

As you have stated, I need less number of bits (100 for ber of 1e-1) but for 1e-6, I need 1e7 bits and this is what is causing trouble.
 

I understand this. You may check the MATLAB help and see the Memory options.
 

No, but if your machine is old, it will be a smart practice to extrapolate.
 

BTW I think there is no machine that bears 10e7 bits, this will be extra-ordinary for an ordinary machine.
You may try this trick, it crossed my mind now and I've never tried it:

When reaching the SNR with 10e-6 BER expected, start an internal loop with 10 separate bit streams, each with 10e6 length, create 10 10e6 AWGN arrays and add every one to one of the 10 bit stream arrays. At the receiver, demodulate every array of the ten separately, count the errors and the whole 10 of them, divide by 10e7 to get the BER !

This is quite confusing, but consider this example (the numbers are hypothetical):

for SNR BER Stream size
-1 dB 10e-1 100
0 dB 10e-2 1000
2 dB 10e-3 10000
3 dB 10e-4 1e5
4 dB 10e-5 1e6
here comes the problem:
5 dB 10e-6 1e6,1e6,1e6....1e6 (Ten seperate streams are sent)


So instead of having your main loop with 6 iterations for this example, you'll need 15 iterations with the last ten results to be cumulative, you can then avoid having a 10e7 bit stream

I based this technique on the assumption that the random processes are ergodic. The other way around is to simply extra-polate !

Regards!




:D:D:D
 
hmm.. I'll try this

I have broken up 1e7 bits into streams of 1e4 and then iterate to calculate number of errors, then divide the errors by 1e7.

But, I still need to process a lot data.

Regardless of the method we use, we still need 1e7 for good estimate of ber at 1e-6
 

Status
Not open for further replies.

Similar threads

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top