- This topic has 14 replies, 2 voices, and was last updated 10 years ago by Jake Tran.
-
AuthorPosts
-
-
December 1, 2014 at 7:27 am #16275Jake TranParticipant
Dear Damian and everyone,
I am trying to simulate an FSO system using PPM modulation. I have problem with the PPM Decoder at the receiver side. Please take a look at my project attached below. My bit sequence is 00 01 10 11. I observe the signal, and it still follows the theory at the output of Data Recovery element (1000 0100 0010 0001). However, at the output of the PPM Decoder, the binary signal is not 00 01 10 11. Also, the BER Analyzer has strange results (Min BER = 1, other factors = 0); and the Eye diagram is not a closed eye but some opened eyes.
Is there anything wrong with my simulation? Please help me out with this problem.Thank you for your consideration.
Regards.
Jake. -
December 2, 2014 at 6:21 am #16331Jake TranParticipant
Can anyone help me please? Thank you!
-
December 3, 2014 at 9:42 am #16365Jake TranParticipant
I need your help guys.
-
December 3, 2014 at 4:15 pm #16388Damian MarekParticipant
Hi Jake,
I found a couple mistakes with the Bit rate you set and the low pass filter. Since in PPM the bit rate effectively changes, because of the pulse width change. I also had to compensate for some delay in the signal.
It works without the free space component, so you will need to enable the free space component and work with probably the delay and filter to detect the signal properly.
Regards
-
December 4, 2014 at 3:38 pm #16406Jake TranParticipant
Dear Damian,
Thank you so much for your reply. It helped me a lot. However I have some questions about the project, hope you can help me:
1/ In your revised project, the Min BER parameter of the BER Analyzer is still = 1, Eye Height = 1. Is there any other way that I can use to calculate BER?
2/ In the Layout parameter, you set the symbol rate parameter is twice the bit rate (symbol rate = 5Gbps, bit rate = 2.5Gbps). However, I think the symbol rate is supposed to be lower than the bit rate.
3/ How can you calculate the delay compensation parameter in the Data Recovery?Once again, thank you very much for you help.
Regards,
Jake.-
December 5, 2014 at 8:29 am #16416Damian MarekParticipant
Hi Jake,
1) I get a BER of 0 and Q factor of 6.732e11, which makes sense. By changing the BER Analyzer to a Measured algorithm. This will give more accurate results since in your project you are reproducing the bit sequence at the output so the eye diagram has no source of noise.
2) The filters are usually defaulted to filter out 0.75*Symbol rate as the cutoff frequency. I was playing with it and then decided to just work with the bit rate. I don’t think any other components are using the information stored in Symbol rate, so it should not matter what it is set to.
3)I simply used a a time domain visualizer and markers to see how much delay the signal was experiencing. You could also try the clock recovery component.
Regards
-
-
December 6, 2014 at 11:59 am #16427Jake TranParticipant
Hi Damian,
Thank you for your reply. I have one more question. I want to make a graph with BER vs SNR to compare between different modulation techniques (OOK, 2-PPM, 4-PPM and so on). I don’t use any amplifiers in the project, so can I use the Set OSNR to find SNR in order to make the graph or I have to use other components?
Regards,
Jake. -
December 8, 2014 at 8:46 am #16439Damian MarekParticipant
Using the set OSNR component should do exactly what you want here! This was one of the main motivations for this component, to plot BER vs SNR. For the BER though use a measured method to calculate the BER with long bit sequence lengths for accuracy.
-
December 9, 2014 at 10:48 am #16491Jake TranParticipant
Dear Damian,
I am having some other problems regarding the BER Test set.
When I use the Set OSNR and BER Test set to plot BER vs SNR in PPM modulation (e.g 2 bit per symbol), I always receive the result in the BER Test set that BER ~ 0.5 or BER = 0. I tried to change the sequence length but it still had the same result. There is no linear BER result as expected when I sweep SNR parameter from 0 -> 25 dB.
Moreover, when I put the Set OSNR in the project, I notice that the binary signal at the output of Data Recovery is not the same as the signal at the output of PPM Coder every time I change the SNR parameter, although the signals of two outputs are the same before using Set OSNR (as I followed your project to compensate time delay in Data Recovery).I would like to ask what should I do to receive a linear BER result? Do I need to adjust the Delay Compensation parameter in Data Recovery every time I change the SNR?
Thank you very much for your consideration.
Sincerely,
Jake.-
December 9, 2014 at 2:39 pm #16510Damian MarekParticipant
Yea you have to be careful with delays messing the decoders up. Here I attached a Clock Recovery component and get more reasonable results.
-
-
December 9, 2014 at 5:50 pm #16571Jake TranParticipant
Dear Damian,
Thank you so much for your reply. The Clock Recovery component is really a key component to compensate the time delay.
However, I still cannot receive a linear BER result correspond with the SNR. For example, in your edited project, when I sweep the SNR = 0,5,10,15,20,25; BER results in the BER Test set are only =0.5 (for SNR=0 and 5) or 0 (for SNR=10;15;20;25). I think these BER results don’t have any meanings at all because every time I receive a bit, I can always have the probability of 0.5 to guess if it was 0 or 1. There is no in-between BER result for example 0 -> 10e-7 -> 10e-5 -> 10e-3 -> 1, so that I can make a curve like the image I attached below.
Thank you very much Damian.
Sincerely,
Jake.-
December 10, 2014 at 10:32 am #16592Damian MarekParticipant
Try a calculated technique for the BER like in the snapshot attached. Just remember that the initial bit rate double after the PPM component because the pulses become shorter. I set the global bit rate to the post PPM rate and in the PRBG I set the bit rate to half of the global.
-
-
December 10, 2014 at 4:37 pm #16606Jake TranParticipant
Dear Damian,
I’m sorry but I don’t get your idea. I sweep the OSNR parameter and receive the linear BER result as expected (relatively followed the ‘BER vs SNR.jpg’) but I’m still curious now.
1/ Why do you change the MZM to LiNb MZM?
2/ Why are we using back the BER Analyzer instead of BER Test set. Is it impossible to do calculate BER vs OSNR with the demodulated signal from the output of the PPM Decoder (I see your dropped out the PPM Decoder and only calculate based on the modulated signal)?
3/ If I examine 8-PPM (3 bits per symbol), 16-PPM (4 bits per symbol), do I need to set the bit rate to 1/3 or 1/4 of the global bit rate?
4/ Why do you adjust the bit rate from the Pseudo-Random Bit Sequence? I think we just keep it equal to the global bit rate because the purpose of the modulation technique is to increase the number of bits carried in the same amount of time; hence, increase the rate of the whole system.Thank you for your help so far. I really appreciate your kind support.
Sincerely,
Jake.-
December 11, 2014 at 9:00 am #16613Damian MarekParticipant
Hi Jake,
1) I was trying to find the source of error and the LiNb gives a more linear response, you can keep it the same if you want.
2) The BER Analyzer can calculate the BER from the eye diagram whereas the BER Test Set has to count errors. If your expected BER is 1e-7 you need an extremely long bit sequence to simulate, so that the system will create one error. The PPM is like a normal bit sequence, so the eye diagram will be similar to a OOK modulation format.
3-4) The reason I adjust the global bit rate is that a lot of components use the bit rate as part of their calculation (Filters etc.), and since after the PPM encoder the signal is basically a bit sequence with a higher bit rate I chose that as my global parameter. And yes you are correct about the bit rates.
However, you could definitely make this project anyway you would like and there is more than one way to simulate it. You could even still use the BER Test Set and count errors of extremely long sequences if you desire, although this would take long simulation times and you would need to make sure you bit sequence is large enough. The projects I have made and demonstrated are examples of how I might simulate this design, but depending on exactly what you want to investigate there might be a better or more efficient way.
Regards
-
-
December 13, 2014 at 8:46 pm #16694Jake TranParticipant
Dear Damian,
I now understand your idea. Thanks to you, all the problems were solved. I am simulating and writing report. Thank you so much for helping me out. I am very grateful for your support.
Wish you all the best and hope to work with you in the near future.
Sincerely,
Jake.
-
-
AuthorPosts
- You must be logged in to reply to this topic.