Hi,
I'm trying to generate a LFM Chirp source i.e. freq = f0 +K*t, where K
is the chirp rate. When I do the envelope of the curve always seems to
grow bigger. I've tested my chirp function itself and it appears to work
fine. I even put in a slow rising envelope (similar to the built in
sinusoidal function) and that didn't help.
When I use a Gaussian src with a similar bandwidth it appears to work
fine. When I set alpha =0 (that's the chirp rate in my code below) the
envelope reaches a maximum value nicely - but that's for a single
frequency.
Note: the chirp parameters are supposed to be 0.5GHz -> 2.5 GHz with a
pulse duration of 1 usec. I put in an artificial stop time in my code
below as a debugging measure.
Anyone have any ideas?
Here's my sample code:
; fwidth = 2GHz = 0.06666 (meep) = 1/15
; Chirp is from 0.5 GHz - 2.5 GHz
(set! geometry-lattice (make lattice (size 95 28 no-size)))
(define (chirp t)
(let* ((f0 0.016666) ; ~ 0.5 GHz
(alpha (/ (- 0.083333 f0) 30000))
(freq (+ (* f0 t) (* 0.5 (* alpha (* t t)))))
(omega (* (* 2 pi) freq))
(decay -0.004) ; peak at 1000
(env (tanh (/ t 500))))
(if (< t 4000)
(* env
(exp (* 0+1i omega )))
0 ))
)
;(set! geometry (list
; (make block (center 0 0) (size 25 infinity infinity)
; (material (make dielectric (epsilon 1.0))))))
(set! sources (list
(make source
(src (make custom-src (src-func chirp)
(start-time 0) (end-time 4000)))
(component Ez)
(center -35 0))))
(set! pml-layers (list (make pml (thickness 10.0))))
(set! resolution 2)
(run-until 6000 (at-every 1
(to-appended "ef1" (in-point (vector3 -35 0 0) output-efield-z))
(to-appended "ef2" (in-point (vector3 -15 0 0) output-efield-z))
(to-appended "ef3" (in-point (vector3 35 0 0) output-efield-z))
))
_______________________________________________
meep-discuss mailing list
[email protected]
http://ab-initio.mit.edu/cgi-bin/mailman/listinfo/meep-discuss