difx:pcalimplicitalgorithm

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

— |
difx:pcalimplicitalgorithm [2015/10/21 10:08] (current) |
||
---|---|---|---|

Line 1: | Line 1: | ||

+ | |||

+ | Walter' | ||

+ | |||

+ | There are also a couple of old documents from Sergei Pogrebenko which detail it {{: | ||

+ | |||

+ | A key parameter is the greatest common factor of the sample frequency and the frequency offset. | ||

+ | |||

+ | The algorithm I envision works as follows: | ||

+ | |||

+ | 1. create a real-valued accumulator array, A, with dimension N. | ||

+ | |||

+ | 2. for the duration of an accumulation period, fold the voltage data, V, into this array: | ||

+ | |||

+ | for(i = 0; i < nsamples; i++) A[i % N] += V[i] | ||

+ | |||

+ | 3. Perform a real-to-complex Fourier transform on this array into an N/2 element complex array B | ||

+ | |||

+ | B = FFT[A] | ||

+ | |||

+ | 4. Extract the tones wanted. | ||

+ | |||

+ | |||

+ | As a concrete example, lets consider the VLBI case with a single baseband channel, bandwidth bw = 2^n MHz, with 1 tone per MHz, with the first tone nu = 10*d kHz offset from the DC edge of the channel for integer d (note this is a standard case for VLBI). | ||

+ | |||

+ | The condition for return-to-phase is: | ||

+ | |||

+ | delta phi = 2*pi*nu*deltaT = R*2*pi | ||

+ | |||

+ | deltaT must be an integral number of samples which we call N (the same N as above). | ||

+ | |||

+ | d/100 MHz * N*2^(-n-1) mus = R | ||

+ | |||

+ | or | ||

+ | |||

+ | d * N = 200 * 2^n * R | ||

+ | |||

+ | This expression is where the greatest common divisor concept comes in. It is easy to see that N = 200 * 2^n will meet the required condition for all values of d, meaning for all possible tones in the baseband. | ||

+ | |||

+ | Note the key aspect of this is that all of the averaging is done in the time domain and a single transform to the frequency domain is needed. There might be some logistical reason for doing the FFT and tone selection once per sub-integration in order to minimize data transfer from core processes to the manager process. | ||

difx/pcalimplicitalgorithm.txt · Last modified: 2015/10/21 10:08 (external edit)