I am using homodyne detection to detect BPSK signal which has been modulated onto an optical carrier using an MZM (Mach zender modulator) with a V pi of 6V. After beating the transmitted signal with LO laser, through an Optical wave guide coupler, photo diodes are used in differential configuration. But the BER is too low and the eye diagram shows poor opening of the eye.
There are several reasons can cause low BER, could you please attach your file here so that I can have a look at it and pin point the problem?
I fixed the problem in the case of BPSK. But I am having problems with 16 QAM. The eye diagram is good but the BER value is too low. I am attaching the file of 16 QAM . Should I create a new topic for this?
Test_16QAM.icp (1.3 MB)
Thank you for the files There is no obvious flaw in the simulation file as far as I can see, it is pretty sound. By ‘low BER’ do you mean ‘poor BER’? I think we do want to see low bit error rate, but if you have this value too high, the reason could be that you don’t have enough number of samples/bits to start with. You have to provide enough number of samples/bits to get the calculation accurate (e.g., 1 error bit in at least 10^6 bits to get a BER lower than 1e-6).
In your case, I think it is better to use the ‘SER’ (sample error rate) calculated by the VSA for the measurement than to use the ‘BER’ measured by the ‘EYE’ element. This measurement is more accurate for multi-level signals and advanced modulations. To make the ‘EYE’ measurement accurate, a lot of things need to be taken into consideration including the clock correction, auto-correlation for cycle slip and so on.
I hope this could help. Let me know if you have any difficulties reading this
Thank you for the suggestion.Yes, I meant poor BER. Can you suggest me ways to do clock correction and auto correlation for cycle slip.
In the .icp file that I provided, the gain of the electrical amplifiers (after the photo diodes ) was changed by hit and trial so that the received symbols fall within the levels specified in the symbol map for 16-QAM. Is there any other way to this
Also, I would like to know more about the algorithm that is used to find BER from Eye diagram. Does the gaussian estimation use the formula BER= 0.5*erfc(Q/2) where Q is the quality factor. I tried using the bit-pattern input, along with signal reference input (the NRZ signal ) but this resulted in poorer BER.
I want to shape the rectangular electrical NRZ pulses using a raised cosine filter. But the electrical filter section does not have any such element. Can you please suggest any other method
The ‘EYE’ element has the ‘signal reference input’ option. If you have the right reference input connected, the auto-correlation and clock correction will be automatically calculated by this element. If you look at the ‘reference’ and ‘input’ in the same figure, you will find that they are synchronized. In your original file, the received signal (which is the input to the EYE) is the opposite of the reference. The figure plot the input signal and received signals with and without reference is plotted below. You may notice that there is a 1 sample’s delay without the auto-correlation delay compensation.
The Gaussian estimation of BER is calculated by
BER = 0.5*erfc(Q/sqrt(2)). You can also read out the reference and the received signal and do a comparison to count for the error bits for post signal processing.
The received signal power/amplitude level depends on nearly all the lossy and gain components in the system, so it is hard to decide the gain for the amplifier before run the simulation once. So I suggest to always turn on the ‘normalize IQ values’ option for the VSA. However this option only normalizes the symbol map but not the input signal.
I hope this could help I will reply to the filter question in a follow-up post.
Thank you for the suggestion. I found that the bit error rate measured by the eye diagram is very poor even immediately after generation of electrical PAM4. I am attaching the icp fileElectricalPAM4.icp (5.9 MB)
I used for simulation and a picture
Q factor = (Ptop -Pbase)/ (sigmatop + sigmabase)
Extinction ratio = Ptop/Pbase (Source:http://www.yellowfourier.com/eyedia.html)
I observed that immediately after the transmitter, the extinction ratio is ~175 dB whereas at the receiver, the extinction ratio is ~3 dB. But in both cases, the quality factors were 2.64 and 1.59 respectively. Why is there not much difference in quality factor when extinction ratios are widely different. I am thinking that this may be the cause for poorer BER as it is estimated from Q and not extinction ratio.
The raised cosine filter can be made by using Scripted Element. Please check out the example file raised_cosine_filter.icp (113.4 KB). The script is defined in the Editor window under the ‘Simulation - > Setup’ tab. The ‘Bit Rate’ is inherited from the global properties and ‘beta’ is the input parameter.
If you already have the transmission data, you can also load it to the Lookup Table element, this will also work.
I hope this could help I will reply to the other question in a follow-up post.
Thank you very much for helping with the raised cosine filter. I am currently using MS Excel to combine multiple plots (after exporting the text file from interconnect). Can you tell me how to combine multiple plots within interconnect?. Further, I am using 128 samples per bit in my simulations. What is the optimum value?
Regarding this question, the Q factor is indeed measured by the equation
Q = (meanOne - meanZero)/(sigmaOne + sigmaZero)
By looking at the measurement ‘level zero mean’, ‘level one mean’, ‘level zero sigma’ and ‘level one sigma’, the Q measurements are correct in both cases. While the extinction ratio doesn’t really make sense when the one and zero signal levels are in different signs, which is the second case. Even in the first case, when the ‘level zero mean’ is almost 0, the extinction ratio goes up very high, but it doesn’t mean the eye is very good. The Q factor should be related to the ‘opening factor’ but not the extinction ratio.
In each case, the BER is calculated only from the Q factor.
I hope this answers your question.
If you are plotting/visualizing figures manually, you could just right click on the result and choose to ‘Add to Visualizer’, this will overlay the results in one figure. Or if you are plotting in scripts, the ‘holdon’ command can be used to plot multiple curves in one figure. Is that what you are asking for?
The number of samples per bit really depends on your design requirement. The default value in INTERCONNECT is 64 samples per bit and it suits most cases. However, that’s not saying that you should just use this number for all the cases. Generally, the higher the number of samples in a bit, the lower of the sample error rate will occur, but the longer the simulation time will be as well. It also depends on the modulation format. But at the end of the day, the constellation diagram only measures symbols, regardless of how many samples per bit you use.
I hope this answers your questions