Home Forums SYSTEM Problem with PPM Decoder in FSO system.

Viewing 10 reply threads
  • Author
    Posts
    • #16275
      Jake Tran
      Participant

      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.

    • #16331
      Jake Tran
      Participant

      Can anyone help me please? Thank you!

    • #16365
      Jake Tran
      Participant

      I need your help guys.

    • #16388
      Damian Marek
      Participant

      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

    • #16406
      Jake Tran
      Participant

      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.

      • #16416
        Damian Marek
        Participant

        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

    • #16427
      Jake Tran
      Participant

      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.

    • #16439
      Damian Marek
      Participant

      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.

    • #16491
      Jake Tran
      Participant

      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.

      Attachments:
      • #16510
        Damian Marek
        Participant

        Yea you have to be careful with delays messing the decoders up. Here I attached a Clock Recovery component and get more reasonable results.

    • #16571
      Jake Tran
      Participant

      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.

      Attachments:
      • #16592
        Damian Marek
        Participant

        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.

        Attachments:
    • #16606
      Jake Tran
      Participant

      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.

      • #16613
        Damian Marek
        Participant

        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

    • #16694
      Jake Tran
      Participant

      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.

Viewing 10 reply threads
  • You must be logged in to reply to this topic.