## 2 RSOA Direct Modulation Assisted by MRR-Based Notch Filtering
### Modeling
More specifically, for each information bit of duration \(T\) carried by the modulation current, (2) is solved in a step-wise manner by approximating the time derivative of \(h(t)\) by a finite difference and applying the appropriate initial conditions. For this purpose, the continuous time variable \(t\) is replaced by discrete points \(t_{p,i}=(p-1)T+i\Delta t\), for \(p=1,2,\ldots,N\) and \(i=1,2,\ldots,k\), where \(p\) denotes the \(p\)-th pulse inside the N-long PRBS of the injection current, \(\Delta t\) is the finite temporal increment and \(k=T/\Delta t\) is the integer number of calculated samples of function \(h(t)\) in each bit period. To ensure high enough temporal resolution and at the same time enhanced computational efficiency so as to correctly capture the RSOA gain dynamics expressed by \(h(t)\) with affordable hardware and software resources, we choose \(\Delta t=1\) ps, which means that nearly 100 samples are taken at all data rates considered in this paper. Then, the knowledge of \(h(t)\) and of its derivative at a given pulse instant \"i\", \(h_{p,i}\) and \(dh_{p,i}/dt\), respectively, allows one to calculate the value, \(h(t+\Delta t)\), at the next discrete moment, \(h_{p,i+1}\), according to [PERSON]'s numerical method. This method is suitable for studying the response of semiconductor active waveguide devices, such as the RSOA, to an electrical excitation of piecewise varying nature, such as the injection current NRZ pulses, as it converges rather fast while producing reasonable results [39]. The initial conditions required for running this process are (a) \(h_{1,1}=g_{0}L\), where \(g_{0}=\Gamma aN_{0}\left\{\left[\left(I_{bias}-I_{m}\right)/I_{0}\right]-1\right\}\) is the RSOA steady-state gain coefficient. This condition is a direct byproduct of the fact that the first temporal segment in the leading edge of the very first information pulse, which is assumed to be a mark and is supplied to the RSOA through the injection current pulse stream, experiences an unsaturated RSOA gain, since the carriers of the latter have not had the time to be modified yet; (b) \(h_{p,1}=h_{p-1,k}\), to account for the fact that the gain available to the first temporal segment in the leading edge of every next pulse is that left by the last temporal segment of the immediately preceding pulse. This condition is properly adapted and reduced to the case of consecutive NRZ pulses carrying the same binary information, that is, strings of marks or spaces. This process is carried out iteratively until all \(N\cdot k\)-th values of \(h(t)\) are obtained, which can be then stored in a matrix and retrieved for further calculations. The solution for \(h(t)\) is then substituted in (1) to find the electric field of the encoded signal at the RSOA output. This function is transferred then into the frequency domain and is convolved with the MRR spectral response. The latter has the compact mathematical expression given below [40],  
\[T_{MRR}(\lambda)=\frac{r-l\exp\left[jn_{eff}4\pi^{2}R\big{(}(\lambda-\Delta \lambda)/\lambda^{2}\big{)}\right]}{1-rl\exp\left[jn_{eff}4\pi^{2}R\big{(}( \lambda-\Delta\lambda)/\lambda^{2}\big{)}\right]}, \tag{4}\]  
where \(n_{eff}\) is the waveguide effective refractive index while the field transmission coefficient, \(r\), and amplitude attenuation factor, \(l\), are equal and tend to unity so as to ensure that the MRR is operating in the critical coupling regime [41] where it can efficiently act as notch filter [42]. Then, the convolution product is converted back into the time domain. This procedure can be put in mathematical form as \(E_{MRR}(t)=\mathcal{F}^{-1}\{\mathcal{F}\big{[}E_{SOA}(t)\big{]}T_{MRR}( \lambda)\}\), where operators, \(\mathcal{F}\{\cdot\}\) and \(\mathcal{F}^{-1}\{\cdot\}\) denote fast Fourier transform (FFT) and inverse FFT, respectively, which are both available and executed in Matlab software. Therefore, \(P_{MRR}(t)=|E_{MRR}(t)|^{2}\).