Doppler Techniques

Jed Rembold

February 25, 2026

Announcements

  • We’ll talk more about Quiz 1 in just a moment
  • Homework 6 due on Monday
    • You have everything you need after today
    • Dealing with aliases can be confusing, and time-pressure just adds to that. I’d recommend not waiting until the last minute to make good progress
  • Office hour tweak for the rest of the semester

Quiz Discussion

Aggegrate Results

  • Pre-curve:
    • Max: 100%
    • Mean: 67.76%
    • Median: 67.5%
    • St Dev: 18.18%

Quiz Talk

  • I think many could have benefitted from a bit more studying, or perhaps just looking at the study materials a little more
  • Quizzes can be a bit more punishing owing to limited points, plus this was the first one in this class, so perhaps you didn’t know what to expect
    • As such, I’ve added 1 point (5%) to your total score in the gradebook
  • Grade Reports will be coming out as soon as I get more caught up in HW grading
  • Focus on explaining the why in your computational essays. I promise it will help engrain the science concepts better in your mind

Introduction

Recap

  • The Lomb-Scargle Periodogram is an approach that works well for non-uniform data
    • Requires you to specify the range of angular frequencies / frequencies / periods that you want to computer the power over
    • Aliasing will generally be a factor you need to content with
  • Planets and their parent star technically orbit their shared center of mass
  • Causes the star to “wobble”, which can be measured!
    • Astrometric method looks for the shift in the star relative to background stars
    • Doppler method looks for the Doppler shift in light as the star move towards then away from us

Discussing Today

  • Planet properties from wobbling methods
  • Finding multiple signal components
    • Determining all component properties
    • Subtracting contributions
    • Rechecking the results

Determining Planetary Mass

Animated Example

Beginning to extract planetary properties

  • In general, to understand any exoplanet, you must first understand its parent star
  • This is often considerably easier, since the star is big and bright
  • Several parameters in particular are useful to know:
    • The mass of the star
    • The size of the star
  • Both generally require knowing the distance to the star, but otherwise can be worked out from luminosities or location on the HR diagram

Planetary Period and Distance

  • If you have the period of the star, then you have the period of the planet
    • Both move in lockstep about the center of mass
    • If you have multiple planets, you can separate the different components from the stars motion
  • Extracting the distance to the planet / semimajor axis requires application of Kepler’s 3rd law along with the center of mass location: \[\text{Kepler's 3rd: } \frac{GM_{tot}}{4\pi^2} = \frac{a^3}{p^2} \qquad\qquad\text{Center of Mass: } M_1a_1 = M_2 a_2 \]

Planetary Mass (Part I)

  • Combining \(a_1\) and \(a_2\): \[ a = a_1 + a_2 = a_1\left(1 + \frac{a_2}{a_1}\right) = a_1\left(1 + \frac{M_1}{M_2}\right) = \frac{a_1}{M_2}\left(M_2 + M_1\right) = \frac{a_1 M_{tot}}{M_2} \]
  • Plugging into Kepler: \[ \frac{GM_{tot}}{4\pi^2} = \frac{1}{p^2} \left(\frac{a_1 M_{tot}}{M_2}\right)^3 \]
  • If you know \(a_1\) by direct observation, then you are done, and can solve for \(M_2\)!
  • Otherwise you need to write \(a_1\) in terms of a velocity
    • If you assume mostly circular orbits: \[v_1 = \frac{2\pi a_1}{p} \quad\Rightarrow\quad a_1 = \frac{v_1 p}{2\pi}\]

Planetary Mass (Part II)

  • Plugging that back into Kepler: \[ \frac{GM_{tot}}{4\pi^2} = \frac{1}{p^2} \left(\frac{a_1^3 M^3_{tot}}{M^3_2}\right) \]

\[ \frac{GM_{tot}}{4\pi^2} = \frac{1}{p^2} \frac{M^3_{tot}}{M^3_2} \left(\frac{v_1 p}{2\pi}\right)^3 \]

\[ \frac{GM_{tot}}{4\pi^2} = \frac{1}{p^2} \frac{M^3_{tot}}{M^3_2} \frac{v_1^3 p^3}{8\pi^3} \]

\[ G = \frac{M^2_{tot}}{M^3_2} \frac{v_1^3 p}{2\pi} \]

\[ M_2 = \left(\frac{M^2_{tot}}{G}\frac{v_1^3 p}{2\pi}\right)^{1/3} \]

Some Caveats

  • The true velocity is only what is measured at the peak of the Doppler curve if you are viewing the orbit perfectly edge-on
  • In general: \[ v_{obs} = v_1\sin(i) \] where \(i\) is the orbital inclination (\(0^\circ\) if viewing face-on, or \(90^\circ\) if viewing edge-on)
    • If the inclination angle in unknown, then technically you are finding a minimum mass
  • If the eccentricity is known, then: \[ M_2 = \left(\frac{M^2_{tot}}{G}\frac{v_1^3 p}{2\pi}(1- \epsilon^2)^{3/2}\right)^{1/3} \]

Finding Multiple Signals

Hidden Signals

  • Like with our FFT methods, a signal might be comprised of several different components
  • This is especially true with Doppler methods, as each orbiting planet tugs on the star a bit differently
  • Frequently then need to look for multiple significant peaks within the periodogram
  • This is greatly complicated by aliases vs our FFT methods

Visualizing Aliases

  • We saw last class that: \[f_{alias} = \left| f_{signal} \pm k \cdot f_{sampling} \right| \] where \(f_{sampling}\) you can get from the spectral window
    • Note that you might have several \(f_{sampling}\) values that all need to be accounted for
  • Don’t just iterate over a few \(k\) values, go at least up to 4 or 5
    • Can be useful to compute a flattened outer product, or could just handle with looping

Flattened Outer Products

  • Imagine an “outer product” as creating a grid of all the multiplied values of two arrays/vectors

  • We don’t really care about the grid nature here, but would rather have just a list of all the possible combinations

  • In Python:

    np.outer(array₁, array₂).ravel()
  • In R:

    as.numeric(outer(array₁, array₂))

Proceeding Forward

  • Once you have flagged all the potential aliases of a signal, you might be able to identify other potential component peaks
  • A more robust way though is to subtract the found component wave from the signal and then repeat the process
  • But how to compute the component wave?
    • We have the frequency/period, but what about the amplitude/phase angle?
    • No complex values to compute those from like with Fourier Transforms

Fitting the Wave Directly

  • While we discussed early that non-linear fitting doesn’t work well by itself, it does work quite well if you have established and “locked” the period/frequency
  • Define a way function but with your found peak frequency: \[ A \sin\left(2\pi f_{peak} t + \phi\right) + H \]
  • Use your nonlinear fitting tool to find all the other unknown constants: \(A\), \(\phi\) and \(H\)
  • Subtract the result from your original signal

Rinse, Wash, Repeat

  • Now, with the new signal, compute a new Lomb-Scargle periodogram, and continue the process
    • Identify a candidate peak
    • Compute and visualize aliases to see if they make sense
    • Extract freqency, compute wave properties, and subtract
    • Repeat
  • When does it end?
    • Subtracting will get rid of most of the signal, but not always quite all of it
    • If all you are left with in your Lomb-Scargle on peaks/aliases that you have already found, then you are done!

Practice

  • The file here contains velocity information determined from the redshift/blueshift of a star with a single planet orbiting it.
  • You can assume the planet is traveling in a mostly circular orbit.
  • You know that the parent star has a mass of \(2\times10^{30}\) kg.
  • Determine:
    • The period of the planet
    • The minimum mass of the planet
// reveal.js plugins // Added plugins ,