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

Reply via email to