A gradual low-pass filter will do that part, e.g. use this variant of Steve’s code in Audacity’s Nyquist prompt …
(setq start-freq 22000) ; cannot be greater than 1/2 the sample rate
(setq end-freq 200)
(setq passes 2) ; more passes for a steeper filter cut-off
(setq sweep-type 0) ; 1 for a linear sweep, 0 for exponential sweep
(let* ((nyq (/ *sound-srate* 2.0))
(f0 (max 0 (min nyq start-freq)))
(f1 (max 0 (min nyq end-freq))))
(if (= sweep-type 0)
(setf lpfreq (pwev f0 1 f1))
(setf lpfreq (pwlv f0 1 f1)))
(dotimes (i passes *track*)
(setf *track* (lp *track* lpfreq))))
To get the full illusion of movement you’ll also need to manipulate the stereo-image, as well as the equalization.