SM 5 BSZ - Adaptive Polarisation
(May 05 1997)

The stereo system

Having a stereo receiver, it makes sense to take the two audio channels, one from each orthogonally polarised antenna, into the computer as a stereo signal. In this way, two independent sets of digital data arrive in the computer. The data may be real or complex depending on the performance of the computer used (and how much one loves to build things). Look here for more information on real vs complex digital data. The Complex fourier transform.

The two sets of digital data are processed by the sliding FFT algorithms, and the output is two sets of complex amplitudes, both updated in about 1/4 of the time required for a morse code dot. Let us call these complex arrays H and V. For details, look here Demo program for sliding FFT

Each set of complex amplitudes H and V is stored in the computer memory as four arrays in total: re_h(i), im_h(i), re_v(i) and im_v(i). i is an index to valid points for 0 The conversion of H and V to a new complex pair A and B (A holds the signal and some noise, B noise only) is an orthonormal transformation. This transformation is defined by 3 transformation coefficients c1,c2 and c3. The algorithm works fine if the initial guess for these coefficients does not correspond to a polarisation mismatch of more than -3dB. To guess circular works fine for all linearly polarised signals.

01 FOR i=0 TO imax
02 re_a( i ) = c1*re_h( i ) + c2*re_v( i ) - c3*im_v( i )
03 im_a( i ) = c1*im_h( i ) + c2*im_v( i ) + c3*re_v( i )
04 re_b( i ) = c1*re_v( i ) - c2*re_h( i ) - c3*im_h( i )
05 im_b( i ) = c1*im_v( i ) - c2*im_h( i ) + c3*re_h( i )
06 NEXT i

Step through the data again, reject points with too small amplitude, and use the remaining ones to calculate new transformation coefficients.

07 h2=0
08 v2=0
09 re_s=0
10 im_s=0
11FOR i=0 TO imax
12 if re_a(i)*re_a(i) + im_a(i)*im_a(i) < minampl GOTO 17
13 h2=h2+re_h(i)*re_h(i)+im_h(i)*im_h(i)
14 v2=v2+re_v(i)*re_v(i)+im_v(i)*im_v(i)
15 re_s=re_h(i)*re_v(i)+im_h(i)*im_v(i)
16 im_s=re_h(i)*im_v(i)+im_h(i)*re_v(i)
17 NEXT i
18 h2=h2/(h2+v2)
19 v2=v2/(h2+v2)
20 re_s=re_s/(h2+v2)
21 im_s=im_s/(h2+v2)
22 s2=re_s*re_s+im_s*im_s
23 c1=sqr(h2 - h2*v2 + s2)
24 c2=sqr(v2 - h2*v2 + s2)*re_s/sqr(re_s*re_s+im_s*im_s)
25 c3=sqr(v2 - h2*v2 + s2)*im_s/sqr(re_s*re_s+im_s*im_s)

This algorithm may be inserted into the sliding fft, or it may be used together with a pair of some single frequency digital filters capable of generating a pair of complex amplitudes. In the actual implementation, with this algorithm as a part of the sliding fft algorithm, some summations are done in different order, and temporary data is stored, to minimise the total load on the cpu.

To SM 5 BSZ Main Page