Re: Simple Doppler effect
- To: mathgroup at smc.vnet.net
- Subject: [mg120937] Re: Simple Doppler effect
- From: Dana DeLouis <dana01 at me.com>
- Date: Wed, 17 Aug 2011 05:54:03 -0400 (EDT)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
> fDoppler[t_] := Module[ > {xPosn, r }, > xPosn = x[t]; > r = Sqrt[ (xObserver - xPosn)^2 + yObserver^2]; > fSource * vSound / ( vSound - vSource * (xObserver - xPosn) / r) > ] Hi. I was wondering if you have a solution. I=92m not an expert, but here is what I came up with so far. I could not get your example to work, but I think I got other easier examples to work: If one wanted to do the example found in Help on the function 'Play for a constant 440 Hz, it appears one does this: This is what you want: f = 440; Hence: z = Integrate[2*Pi*f, t] 880*Pi*t Play[Sin[z], {t, 0, 10}] This seems to match the example. A Sound that drops linearly from 400 to 0 appears to be this: f = 400 - 40*t; z = Integrate[2*Pi*f, t] 800*Pi*t - 40*Pi*t^2 Play[Sin[z], {t, 0, 10}] I did a parabolic curve just for testing: {{0, 0}, {6, 440}, {12, 0}}; f = Expand[InterpolatingPolynomial[%, t]] (440*t)/3 - (110*t^2)/9 z = Integrate[2*Pi*f, t] (440*Pi*t^2)/3 - (220*Pi*t^3)/27 Play[Sin[z], {t, 0, 12}] For your example, I arrived at the same equation, just a little differently: dist = Assuming[t>0,Simplify[Norm[{300-50 t,50}]]] 50 Sqrt[1+(-6+t)^2] v=343; f[t_] = 440((v+0)/(v+D[dist,t])) 150920/(343+(50 (-6+t))/Sqrt[1+(-6+t)^2]) This appears to match your equation: Table[f[t] == fDoppler[t], {t, 0, 12}] // Union {True} However, Integrating the above function returned a function with Imaginary parts, hence the Play function will not work. z = Assuming[0 <= t <= 12, FullSimplify[Integrate[2*Pi*f[t], t]]] This does not work like you mentioned. It seems like there should be an easy solution. Hopefully, someone can jump in here & help. I'd be curious on the solution as well. = = = = = Dana DeLouis $Version 8.0 for Mac OS X x86 (64-bit) (November 6, 2010) On Aug 3, 7:07 am, David Harrison <david.harri... at utoronto.ca> wrote: > I am trying to generate a Doppler effect for a sound wave. The source is moving by the observer. The observer is stationary relative to the air. The results I'm getting are bizarre, and 2 physicist colleagues are as stumped as I about what simple stupid mistake I'm making. Here is the code that initialises the variables: > > --- > vSound = 343; (* speed of sound *) > vSource = 50; (* speed of source *) > xObserver = 300; (* x coord of observer *) > yObserver = 50; (* y coord of observer *) > fSource = 440; (* frequency of source *) > (* > The source is initially at x = 0. > The source is a y = 0 always. > *) > --- > > Then I define a function of the position of the source as a function of time: > > --- > x[t_] := vSource * t > --- > > Now define the Doppler frequency. It depends on the cosine of the angle between the source and the observer. I'm careful to use the cosine in a way to avoid possible singularities. > > --- > fDoppler[t_] := Module[ > {xPosn, r }, > xPosn = x[t]; > r = Sqrt[ (xObserver - xPosn)^2 + yObserver^2]; > fSource * vSound / ( vSound - vSource * (xObserver - xPosn) / r) > ] > --- > > Finally, play what the observer hears, ignoring the fact that the intensity of the wave increases as the source is approaching and decreases as it is receding. > > --- > Play[ Sin[2 Pi fDoppler[t] t], {t, 0, 12}] > --- > > The sound starts at the higher Doppler frequency, then dips to a very low frequency as the source is at closest approach to the observer at 6 s, then rises to the lower Doppler frequency! Weird. I expect that the frequency around t = 6 s to smoothly decrease from the higher Doppler shifted frequency to the lower Doppler shifted one. > > In order to "see" what is going on, make a plot for the frequency of the source = 1. > > --- > fSource = 1; > Plot[ Sin[2 Pi fDoppler[t] t], {t, 0, 12}, PlotPoints -> 100000] > --- > > At t = 6 you can see the same bizarre behaviour. > > If you can point out what is going on here, you can show how stupid I (and two colleagues) are. > > -- David Harrison