Go to the source code of this file.

## Enumerations | |

enum | typePulse { NRZ = 1, RZ_GAUSS = 2, RZ_SECH = 3, CRZ_GAUSS = 4, CRZ_RCOS = 5, CRZ_SIN_MZ = 6, UMBC_RZ = 7, CW = 8, RZ_GAUSS_PATTERN = 9, INPUT_SEQUENCE = 10, QPSK_CW = 11, QPSK_RZ_GAUSS = 12, BPSK_PHASE_MOD = 13, BPSK_MACH_ZEHNDER = 14, CSRZ_MACH_ZEHNDER = 15, RZ33_MACH_ZEHNDER = 16, RZ50_MACH_ZEHNDER = 17, INPUT_SIGNAL_FROM_FILE = 18, QPSK_SEQ_PM_NRZ = 19, QPSK_DPMZ_PM_NRZ = 20, QPSK_SEQ_PM_AM_RZ33 = 21, QPSK_SEQ_PM_AM_RZ50 = 22, QPSK_DPMZ_PM_AM_RZ33 = 23, QPSK_DPMZ_PM_AM_RZ50 = 24, NRZ_RCOS_MACH_ZEHNDER = 25 } |

Enumeration Type to specify the modulation format. More... |

enum typePulse |

Enumeration Type to specify the modulation format.

typePulse can take one of the following values. The required parameters in OptSignal.in are listed after the full name followed by brief description of how format is modeled.

- NRZ = 1 [Nonreturn-to-zero]
- RiseTime (Time for optical power to increase from 10 to 90 percent of its maximum).
- Rectangular pulses of width given by OptSignal::BitLength are filtered by a Gaussian optical filter.

- RZ_GAUSS = 2 [Return-to-zero Gaussian]
- FWHM_Pulse (Full-width at half maxiumum of optical power)
- Gaussian pulse is centered at middle of each bit slot. Pulses can extend into neighboring bit slots.

- RZ_SECH = 3 [Return-to-zero hyperbolic secant]
- FWHM_Pulse (Full-width at half maxiumum of optical power)
- As for RZ_GAUSS

- CRZ_GAUSS = 4 [Chirped return to zero Gaussian]
- FWHM_Pulse
- ChirpParameter
- Similar to RZ_GAUSS but with a chirp
- The formula is exactly the one given in Agrawal's Nonlinear Optics textbook, page 67. The ChirpParameter is Agrawal's parameter, C

- CRZ_RCOS = 5 [Chirped return to zero raised cosine]
- FWHM_Pulse
- ChirpParameter
- As described in thesis and papers of Ruo-Mei Mu

- CRZ_SIN_MZ = 6 [Chirped RZ format like that obtained using a sinusoidal voltage to modulate a Mach-Zehnder interferometer]
- FWHM_Pulse
- ChirpParameter
- Similar to CRZ_RCOS except that pulse envelope is a raised cosine of a sin function rather than a raised cosine of a linear function. This pulse shape is very close to what a sinusoidally driven Mach-Zehnder would produce. See Kath, Yang and Evangelides "Optimal Prechirping for DM transmission of RZ pulses", OFC '99, Vol 6, pp 249-251.

- UMBC_RZ = 7 [Special format to model an experiment]
- DO NOT USE THIS FORMAT

- CW = 8 [CW light]
- RZ_GAUSS_PATTERN = 9 [RZ pulse stream is multiplied by gaussian-filtered NRZ data]
**Warning:**- Not debugged for multiple channels

- FWHM_Pulse (for Gaussian pulses)
- RiseTime (for NRZ data sequence)
- Used to model experimental transmitter in Gary Carter's lab at UMBC.
- See P. Griggio, J. Hu, J. Wen, G. E. Tudury, J. Zweck, B. S. Marks, L. Yan, G. M. Carter, and C. R. Menyuk, "Characterizing pattern dependence in transmitters and receivers for optical communications systems", Optics Communications, Vol 272 Num 1, pp. 107-110, 2007

- INPUT_SEQUENCE = 10 [Measured input time sequence data, for special app.]
**Warning:**- Not debugged for multiple channels

- InputSequenceFileName
- Somewhat idiosyncratic, used for same paper as RZ_GAUSS_PATTERN
- See OptSignal::GenerateSignalStringUsingInputSequence()

- QPSK_CW = 11 [Quadrature phase-shift keying with constant power]
- Choose phase across a pair of bit slots as follows: 00 -> 0, 01 -> -90, 10 -> +90, 11 -> 180
- This piecewise constant phase function is then filtered using an electrical filter of type
**See also:**- enum typeEOMElecFilter with a FWHM of OptSignal::EOM_ElecFilter_FreqFWHM

**Warning:**- Not debugged for multiple channels

**Warning:**- Changes may need to be made in receiver classes for this format

- QPSK_RZ_GAUSS = 12 [Quadrature phase-shift keyed Gaussian pulses]
- Have half number of pulses as bits. So pulses can be twice as wide as for regular RZ.
- Use actual BitRate but center k-th pulse at (2k+1)*BitLength so that each pulse takes up two bit slots.
- Choose phase on pulse corresponding to a pair of bits as follows: 00 -> 0, 01 -> -90, 10 -> +90, 11 -> 180
- Currently phase function is not filtered
**Warning:**- Not debugged for multiple channels

**Warning:**- Changes may need to be made in receivers for this format

- FWHM_Pulse

BPSK_PHASE_MOD = 13 [Binary phase-shift keyed with constant power]

- Constructed using a phase modulator
- Phase on bit 0 is pi, phase on bit 1 is 0
- This phase function is constructed using one of four methods described in
**See also:**- enum typeEOMElecData

- After it is constructed the phase function can also be filtered using an electrical filter
**See also:**- enum typeEOMElecFilter

- The power is constant
- Formula: E(t) = E_0 exp(i t) exp(i(t)) where (t) = pi(1-P(t))
- P(t) is function that is obtained by smoothing a function that is 1 in a 1-bit and 0 in a 0-bit. The function can be smoothed either using an electrical filter (see enum typeEOMElecFilter) or by interpolating between values 0 and 1 using an arctanh or super-Gaussian function (see enum typeEOMElecData)
- To specify a 10-90% rise time on the electrical data during transitions one can use OptSignal::TypeEOMElecData = 2 = EOM_BINARY_DATA_ARCTANH_SMOOTHING and specify OptSignal::EOM_RiseTime
- For a 25 ps rise time on the phase at 10Gb/s one can use OptSignal::TypeEOMElecData = 3 = EOM_BINARY_DATA_SUPERGAUSS_SMOOTHING and OptSignal::EOM_SuperGaussExponent = 6
- For

BPSK_MACH_ZEHNDER = 14 [Binary phase-shift keyed using a Mach Zehnder modulator (MZM)]

- Phase is piecewise constant, either pi in a 0-bit or 0 in a 1-bit
- Power is constant across most of pulse but goes to 0 at each transition from 0 to 1 or 1 to 0.
- This is acheived using a Mach Zehnder modulator with electrical data P(t) as in BPSK_PHASE_MOD above. The MZ modulator is balanced with V_pi1 = V_pi2 = V_pi = pi and phi_10=phi_20=pi
- So the formula is E(t) = E_0 exp(i t) cos(pi(1-P(t))
- To specify a 10-90% rise time on the electrical data during transitions one can use OptSignal::TypeEOMElecData = 2 = EOM_BINARY_DATA_ARCTANH_SMOOTHING and specify OptSignal::EOM_RiseTime or to specify a 10-90% rise time on the optical data can use OptSignal::TypeEOMElecData = 2 = EOM_BINARY_DATA_RCOS and specify OptSignal::RiseTime

CSRZ_MACH_ZEHNDER = 15 [Carrier-suppressed return-to-zero using MZM]

- 67% duty cycle pulses, phase alternates between 0 and pi from bit slot to bit slot
- Electric Field is E(t) = OptNRZ(t)*sin(pi/2*(sin(pi*t*BitRateChann)
- Phase of odd and even bits alternates with this formula
- See Ip and Kahn, JLT vol 24, no.3, March 2006, pp. 1610-1618
- OptNRZ is chosen to be NRZ_RCOS_MACH_ZEHNDER

RZ33_MACH_ZEHNDER = 16 [Return-to-zero with 33% duty cycle using MZM]

- 33% duty cycle pulses
- Electric field is E(t) = OptNRZ(t)*sin(pi/2*(1+cos(pi*t*BitRateChann)))
- See Ip and Kahn, JLT vol 24, no.3, March 2006, pp. 1610-1618
- OptNRZ is chosen to be NRZ_RCOS_MACH_ZEHNDER

RZ50_MACH_ZEHNDER = 17 [Return-to-zero with 50% duty cycle using MZM]

- 50% duty cycle pulses
- Electric field is E(t) = OptNRZ(t)*sin(pi/4*(1-cos(2*pi*t*BitRateChann)))
- See Ip and Kahn, JLT vol 24, no.3, March 2006, pp. 1610-1618
- OptNRZ is chosen to be NRZ_RCOS_MACH_ZEHNDER

INPUT_SIGNAL_FROM_FILE = 18 [General method]

- Reads in SCALAR or VECTOR data in time domain from file
- File name is given by input parameter OptSignal::InputTimeDataFileName
- Data to be read must have been previosuly written by OptSignal object using same OptSignal.in file

QPSK_SEQ_PM_NRZ=19 [Sequential binary phase modulation of a CW optical signal using two sequential EOMs]

- Stage 1: Phi1(t) = pi*(1-V1(t)), where V1 is ElecNRZdata
- Stage 2: Phi2(t) = 0.5*pi*(1-V2(t)), where V2 is ElecNRZdata
- Field Basically: E(t) = exp(i*(Phi1(t)+Phi2(t)))
- (V1,V2) = (0,0): Phi=3*pi/2
- (V1,V2) = (0,1): Phi=pi
- (V1,V2) = (1,0): Phi=pi/2
- (V1,V2) = (1,1): Phi=0
- ElecNRZData in V1 and V2 is constructed as in BPSK_PHASE_MOD
- Use different (random) data to make the V1 and V2 signals. WARNING: Not correctly implemented to allow for input of user defined bit string!
- V1 and V2 both have StringLength bits, each bit slot of length BitLength, period TimeWindow, and data rate BitRateChann.
- So overall data rate is 2*BitRateChann.

QPSK_DPMZ_PM_NRZ=20 [Direct quadrature modulation of a CW optical signal using a dual-parallel MZ EOM]

- E(t) = E1(t) + exp(i*pi/2)*E2(t)
- E1(t) = cos(pi*(1-V1(t))
- E2(t) = cos(pi*(1-V2(t))
- Spectrally identical to BPSKMZ
- V1, V2 constructed as for QPSK_SEQ_PM_NRZ
- (V1,V2) = (0,0): Phi=??
- (V1,V2) = (0,1): Phi=??
- (V1,V2) = (1,0): Phi=??
- (V1,V2) = (1,1): Phi=??

QPSK_SEQ_PM_AM_RZ33=21

- QPSK_SEQ_PM_NRZ followed by RZ33_MACH_ZEHNDER in which OptNRZ is replaced by QPSK_SEQ_PM_NRZ

QPSK_SEQ_PM_AM_RZ50=22

- QPSK_SEQ_PM_NRZ followed by RZ50_MACH_ZEHNDER in which OptNRZ is replaced by QPSK_SEQ_PM_NRZ

QPSK_DPMZ_PM_AM_RZ33=23

- QPSK_DPMZ_PM_NRZ followed by RZ33_MACH_ZEHNDER in which OptNRZ is replaced by QPSK_DPMZ_PM_NRZ

QPSK_DPMZ_PM_AM_RZ50=24

- QPSK_DPMZ_PM_NRZ followed by RZ50_MACH_ZEHNDER in which OptNRZ is replaced by QPSK_DPMZ_PM_NRZ

NRZ_RCOS_MACH_ZEHNDER=25

- NRZ format constructed using a Mach Zehnder modulator where the electrical drive signal has transitions given by a raised cosine.
- Parameters: Chirp of MZM (ChirpParameter); 10-90% rise time of optical power (RiseTime)
- WARNING: Nonzero extinction ratio not implemented and nonzero chirp not tested.
- Electric Field is E(t) = 0.5*(exp(i*(1+alpha)*(pi/4)*phi(t) + i*exp(-i*(1-alpha)*(pi/4)*phi(t)) where phi(t) = sum_over_k b_k p(t-kT) where b_k = +1,-1, and T=BitLength
- Here p(t) = 1 if |t| <= (1-beta)T/2 0 if |t| >= (1+beta)T/2 0.5*(1-sin(pi*(|t|-T/2)/(beta*T))) otherwise
- The parameter beta is between 0 and 1. It determines the rise time of the electrical signal p(t) by RiseTimeElec = (2/pi)*asin(0.8)*beta*T = 0.5903*beta*T and the rise time of the optical power by RiseTimeOpt = (2/pi)asin(-1+(4/pi)*asin(sqrt(0.9)))*beta*T = 0.4020083*beta*T
- alpha = ChirpParameter See Ho and Kahn, JLT vol 22 no 2 Feb 2004, pp 658-663.

- The parameter beta is between 0 and 1. It determines the rise time of the electrical signal p(t) by RiseTimeElec = (2/pi)*asin(0.8)*beta*T = 0.5903*beta*T and the rise time of the optical power by RiseTimeOpt = (2/pi)asin(-1+(4/pi)*asin(sqrt(0.9)))*beta*T = 0.4020083*beta*T

**Enumerator:**

Generated on Fri Jul 2 2010 12:57:48 for OCS by 1.7.1