User Tools

Site Tools


difx:difx2.0statbased

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
difx:difx2.0statbased [2009/10/29 07:19]
adamdeller
difx:difx2.0statbased [2015/10/21 10:08] (current)
Line 1: Line 1:
 +
 ====== DiFX2.0 station-based efficiency improvements ====== ====== DiFX2.0 station-based efficiency improvements ======
  
Line 7: Line 8:
 {{stationbased_before.png?​800}} {{stationbased_before.png?​800}}
  
-However, in most situations, the phase increment from one sample (or one channel) to the next is a constant amount. ​ (The exception to this, quadratic approximations for fringe rotation, is handled in a piecewise linear fashion, which uses essentially the same approach as described below, with one extra step I won't detail here). ​ When this is the case, it is unnecessary to calculate the sin/cos for every single sample/​channel. ​ You can do one stretch of samples/​channels,​ then do every Nth sample/​channel after that, and fill in the gaps by complex multiplying the first channels with every Nth channel as shown below:+However, in most situations, the phase increment from one sample (or one channel) to the next is a constant amount. ​ (The exception to this, quadratic approximations for fringe rotation, is handled in a piecewise linear fashion, which uses essentially the same approach as described below, with one extra step I won't detail here). ​ When this is the case, it is unnecessary to calculate the sin/cos for every single sample/​channel ​of the N you have.  You can do one stretch of samples/​channels,​ then do every Mth sample/​channel after that, and fill in the gaps by complex multiplying the first channels with every Mth channel as shown below:
  
 {{stationbased_after.png?​800}} {{stationbased_after.png?​800}}
  
-This slashes the number of sin/cos operations needed, which is a big saving because they are actually rather expensive. ​ In DiFX1.5, sin/cos operations dominate the station-based cost; in DiFX2.0, the FFT dominates, which is as it should be.+This slashes the number of sin/cos operations needed, which is a big saving because they are actually rather expensive.  Rather than doing N sin/cos operations, you are now doing M + N/M.  For N=1024 and M=32, that means you are doing 64 instead of 1024 - a saving of a factor of 16.  The complex multiplications to fill in the gaps are much cheaper and can be considered virtually negligible.  In DiFX1.5, sin/cos operations dominate the station-based cost; in DiFX2.0, the FFT dominates, which is as it should be.
difx/difx2.0statbased.txt · Last modified: 2015/10/21 10:08 (external edit)