#In order to force a constant effective index, set the group index and effective index to the same value #In order to enter optical length simply set effective index/group index to '1' #The center frequency for the waveguide propagation properties f0 = 193.1e12; ng = 8.05894; neff = ng; FSR = 120e9; lambda = c / f0; #Parameters to generate #Optical Half-Band Filters #K. Jinguji and M. Oguma, "Optical Half-Band Filters" #J. Lightwave Technol. 18, 252- (2000) #The wavegude length deltal = c / FSR / ng; #From table I (page 255) #FIR chebyshev half-band filter #circuit parameters (x*pi) teta0 = 0.3498; teta1 = 0.2448; teta2 = 0.4186; teta3 = 0.0797; teta4 = 0.25; #Phase shift multiplier phi1 = 1.0; phi2 = 0.0; phi3 = 1.0; phi4 = 0.0; #The wavegude length deltal1 = 2 * deltal; deltal2 = 2 * deltal; deltal3 = 2 * deltal; deltal4 = deltal; #constant phase shift #shift = 2 * pi * f0 / c * deltal * ( neff - ng ) #estimate neff from phase shift multiplier #effective index required to cause phin*pi phase shift: neff1 = phi1 * c / 2.0 / f0 / deltal1 + ng; neff2 = phi2 * c / 2.0 / f0 / deltal2 + ng; neff3 = phi3 * c / 2.0 / f0 / deltal3 + ng; neff4 = phi4 * c / 2.0 / f0 / deltal4 + ng; #Coupling coefficients r0 = sin( teta0 * pi ) ^ 2; r1 = sin( teta1 * pi ) ^ 2; r2 = sin( teta2 * pi ) ^ 2; r3 = sin( teta3 * pi ) ^ 2; r4 = sin( teta4 * pi ) ^ 2; switchtodesign; setnamed("WC1","coupling coefficient 1",r0); setnamed("SW1","frequency",f0); setnamed("SW1","length",deltal1); setnamed("SW1","group index 1",ng); setnamed("SW1","effective index 1",neff1); setnamed("WC2","coupling coefficient 1",r1); setnamed("SW2","frequency",f0); setnamed("SW2","length",deltal2); setnamed("SW2","group index 1",ng); setnamed("SW2","effective index 1",neff2); setnamed("WC3","coupling coefficient 1",r2); setnamed("SW3","frequency",f0); setnamed("SW3","length",deltal3); setnamed("SW3","group index 1",ng); setnamed("SW3","effective index 1",neff3); setnamed("WC4","coupling coefficient 1",r3); setnamed("SW4","frequency",f0); setnamed("SW4","length",deltal4); setnamed("SW4","group index 1",ng); setnamed("SW4","effective index 1",neff4); setnamed("WC5","coupling coefficient 1",r4);