Wersja pdf

Program AutoFFT
do wstępnej obróbki danych
z autokorelatora TCfA


K.M. Borkowski, Centrum Astronomii UMK (TCfA), Toruń



AutoFFT, a Fortran program for preliminary reduction
of data from the TCfA autocorrelator
Summary:   This document describes in detail changes and improvements of a program used hitherto for initial reduction of data obtained from the TCfA spectrograph. In this context, basic theoretical relations are derived or presented which pertain to channel statistics, to distortions of the autocorrelation function (ACF) due to one-bit and three-level signal sampling, to Fourier transformation of corrected ACF, and to location of Doppler shifted line in the spectrum. Perhaps of general interest is the formula Eq. (13), which can be used in practice to compute (by numerical integration) the correction function for a three-level correlator whose quantization thresholds are asymmetric with respect to the zero level. The formula may be considered a generalization of the well known Hagen and Farley solution, Eq. (8) (which is good for symmetric thresholds only).


Spis treści

Autokorelator TCfA
Normalizacja funkcji autokorelacji
    Zliczenia w kanałach z niezerowym zapóźnieniem
    Zliczenia w kanale z zerowym zapóźnieniem
    Znaczenie odejmowania średniej od ACF
    Optymalizacja poziomów kwantowania
    Korekcja ACF
FFT
Położenie obserwowanej linii w widmie

Zmiany wniesione do AutoFFT
Przykładowe wykonanie programu
Fragment pliku wynikowego
Problemy jeszcze oczekujące na rozwiązanie

Gdy progi są nierówne   


Autokorelator TCfA.

Autokorelator to przyrząd do generowania funkcji autokorelacji (korelacji samego z sobą) sygnału. Funkcja autokorelacji (ACF) jest wygodną postacią sygnału, gdyż jej transformata Fouriera stanowi widmo mocy sygnału. Widma takie są podstawowym materiałem badawczym w dziedzinie spektralnej wśród astronomów (i nie tylko wśród nich). Przyrząd Centrum Astronomii (TCfA) UMK został opisany w Podręczniku obserwatora (w Rozdz. V). Jest to autokorelator trójpoziomowy, gdyż przed korelacją analizowany sygnał jest ograniczany do trzech wartości:
–1, gdy oryginalny sygnał jest mniejszy od ustalonego progu V1,
  0, gdy sygnał mieści się między tym progiem i wyższym, V2, oraz
+1, gdy napięcie sygnału wejściowego przekracza prób V2. Poziomy V1 i V2 normalnie ustala się na takie same wartości (v) lecz przeciwnego znaku. Każdy elementarny korelator (z 16384 tego urządzenia) porównuje stany na dwóch swoich wejściach — sygnału oryginalnego i tego samego ale opóźnionego w czasie — i na swoim wyjściu generuje jeden z trzech stanów 0, 1 lub 2 według schematu


Tabela 1
Wejście 1:   -1  -1  -1   0   0   0   +1  +1  +1
Wejście 2:   -1   0  +1  -1   0  +1   -1   0  +1
Korelacja: +1 0 -1 0 0 0 -1 0 +1 Wyjście: 2 1 0 1 1 1 0 1 2   P-stwo: P-- P-o P-+ Po- Poo Po+ P+- P+o P++
Jak widać, na wyjściu dostajemy iloczyn (korelację) liczb z dwóch wejść powiększony o 1. To powiększanie robi się po to, aby dalej nie trzeba było wykonywać operacji odejmowania, gdy liczby z wyjść są sumowane w akumulatorach. Wartości z liczników (akumulatorów) po ustalonym czasie integracji są sczytywane w postaci surowej funkcji autokorelacji.


Normalizacja funkcji autokorelacji (ACF).
Surowa funkcja autokorelacji jest zniekształconą wersją ACF oryginalnego sygnału, dlatego przed przekształceniem jej na widmo należy ją skorygować. W tym celu musimy znać oczekiwaną postać zniekształceń i pewne własności statystyczne zniekształconej ACF.

Zauważmy najpierw, że oczekiwane wartości zliczeń korelatora trójpoziomowego możemy analizować tak, jak gdyby generował on niezmienione wartości korelacji (nie powiekszone o 1), gdyż znając czas integracji lub liczbę cykli korelacji próbek, od zakumulowanych wartości możemy po prostu odjąć te dodane jedynki w liczbie równej liczbie cykli korelacji w danej integracji ACF, Nmax. W dalszym ciągu zakładamy, że ta pierwsza operacja (odejmowanie Nmax) została wykonana. Przyjmiemy również, że sygnał przed ograniczaniem i próbkowaniem ma normalny (gaussowski) rozkład amplitud o zerowej średniej i odchyleniu standartowym σ, które jest zarazem RMS (wartością średnikwadratową albo mocą skuteczną) sygnału. Ten rozkład prawdopodobieństwa ma postać: 1/[σ √{2π}] exp[–x2/(2σ2)], gdzie x jest amplitudą sygnału. Założenie o normalności sygnału generalnie jest dobrze spełnione, gdyż obserwowane linie widmowe są bardzo słabe. Obraz ten psują jednak zakłócenia, dlatego poniższe rozważania tracą słuszność w obecności silnych zakłóceń lub bardzo silnych linii widmowych.

    Spodziewane zliczenia w kanałach z niezerowym zapóźnieniem
Aby ocenić spodziewaną średnią wartość zliczeń poszczególnych akumulatorów należy zsumować stany na wyjściu korelatora pomnożone przez ich częstość pojawiania się, której wartość oczekiwana jest równa odpowiedniemu prawdopodobieństwu (patrz Tabela 1):
    wartość oczekiwana częstości stanu +1 wynosi P-- + P++
    wartość oczekiwana częstości stanu –1 wynosi P-+ + P+-.
Pozostałe przypadki odpowiadają zeru na wyjściu, więc nie czynią wkładu do końcowej sumy stanów skorelowanych. Prawdopodobieństwo P-- jest równe łącznemu prawdopodobieństwu przekroczenia dolnego progu V1 na obu wejściach korelatora. Pierwotny sygnał losowy ma tę własność, że na każdej częstotliwości obserwacji mamy inny proces losowy (ale podlegający temu samemu rozkładowi Gaussa), czyli zasadniczo sąsiednie w częstotliwości pasemka są ze sobą nieskorelowane. Odbiór sygnału, z praktycznych względów, wiąże się jednak z filtrowaniem szerokiego pasma sygnału do węższych, co powoduje, że w dziedzinie czasu kolejne próbki stają się częściowo zależne od siebie – tym bardziej, im węższy jest filtr i im gęściej próbkujemy sygnał. Przy próbkowaniu z częstością Nyquista próbki można jednak uznać za niezależne od siebie, jeśli są odległe o kilka okresów próbkowania. Niezależność próbek oznacza, że łączne prawdopodobieństwo jest zwykłym iloczynem prawdopodobieństw na obu wejściach, czyli np. P--  =  p(x<V1) p(x<V1)  =  p2(x<V1)  =  P-2. Analogicznie jest więc też: P++  =  P+2 oraz P+- = P-+  =  P+P-. W kanałach z dostatecznie dużym zapóźnieniem (na tyle dużym, aby można uznać oba stany za statystycznie niezależne) z każdą próbką akumuluje się średnio sygnał o wartości:
    N/Nmax  =  (+1) (P-- + P++)  +  (–1) (P-+ + P+-)  =  P+2 + P-2 – 2 P+P-   =   (P+ – P-)2.
Inaczej mówiąc, wartość średnia surowej funkcji autokorelacji dla niezakłóconego sygnału bez linii nigdy nie jest ujemna. Skądinąd wiadomo, że w ogóle funkcje autokorelacji zmierzają do zera dla dużych zapóźnień, dlatego pomiary z autokorelatora trzeba korygować. Różnica prawdopodobieństw pojawiania się +1 i –1 wynosi:

P+ – P–  =  

V2 
p(x) dx – V1

–∞ 
p(x) dx.
Całkę prawdopodobieństwa można wyrazić przez wygodniejszą funkję Erf. Z definicji jest:
Erf(y)  =  
2




π
y

0 
e–x2 dx  =  2
1

σ 



y/(σ√2)

0 
e–x2/(2σ2) dx  =  2 y/(σ√2)

0 
p(x) dx.
Zatem:
P+ – P–  =   –V1

0 
p(x) dx – V2

0 
p(x) dx  =   1

2
[ Erf( –V1

σ√2
) – Erf( V2

σ√2
)].
Interesuje nas kwadrat tej wielkości:

N 

Nmax
    =    1

4
[ Erf( –V1

σ√2
) – Erf( V2

σ√2
)] 2

 
      (1)

Wielkość ta (wartość średnia ACF) wynosi zero, tylko gdy –V1  =  V2  =  v (idealnie symetryczne poziomy kwantowania).

    Zliczenia w kanale z zerowym zapóźnieniem
Tutaj mamy znacznie prostszą sytuację, gdyż na obu wejściach tego elementarnego korelatora zawsze pojawiają się takie same stany: +1 i +1, 0 i 0 lub –1 i –1. Inaczej mówiąc mamy tutaj pełną korelację sygnałów z obu wejść. Pełna korelacja oznacza normalnie wartość współczynnika korelacji równą 1. I taki wynik dostajemy w przypadku, gdy V1  =  V2  =  0 (tzn. efektywnie dla próbkowania dwupoziomowego czyli jednobitowego). Wtedy No/Nmax  =  1, gdzie No oznacza wartość surowej ACF dla zerowego zapóźnienia (zerowego kanału). Średnia wartość na wyjściu korelatora 3-poziomowego nie będzie jednak jednością, gdyż niektóre stany dają na wyjściu 0. Chcemy teraz obliczyć jakiego wyniku akumulacji możemy się spodziewać w tym kanale. W oczywisty sposób spełniona jest następująca zależność:

No

Nmax
   =  1 – V2

V1 

1

σ 


 exp( –x2

2
) dx.
Jest to zapis faktu, że prawdopodobieństwo wystąpienia jedynki na wyjściu jest równe jedności minus prawdopodobieństwo zdarzenia przeciwnego: że amplituda sygnału znajduje się pomiedzy V1 i V2. Podstawienie t  =  x/(σ √2) sprowadza prawy składnik do postaci funkcji błędu, Erf:

No

Nmax
  =  1 –  1

2
[ Erf( –V1

σ√2
)   +  Erf( V2

σ√2
)] ,      (2)

która przy jednakowych (co do wartości bezwzględnej) progach kwantowania, v, redukuje się do znanego z literatury wzoru:
No

Nmax
  =  1 – Erf( v

σ √2
).      (3)

Wzory (1) i (2) łatwo przekształcić do postaci:


Erf( |V1/2|

σ√2
)   =   1 –  No

Nmax
  ±  

N

Nmax
 
.

      (4)
Te dwa wzory (jeden dla znaku +, drugi dla – przy pierwiastku) można użyć do wyznaczenia wartości bezwzględnej progów, a zatem pozwalają ocenić różnicę w ustawieniach poziomów kwantowania ze statystyk: zliczeń kanału zerowego i średniej z 'niezerowych' kanałów ACF (najlepiej z jej 'ogona', tj. dla dużych zapóźnień). Np., w serii pomiarów ACF na fali 5cm z dnia 23 stycznia 2008 średnia z 240 końcowych kanałów BBC2 (w tym urządzeniu było najmniej zakłóceń) uśredniona dalej z 236 kolejnych ACF tej serii wyniosła (0.0003483 ± 0.0000078) Nmax, zaś No/Nmax = 0.5232552 ± 0.003877. Mamy więc Erf[|V1/2|/(σ√2)] = 1 – 0.5232552 ± √(0.0003483) czyli 0.458082 lub 0.495408, zatem progi mają wartości bezwzględne |V1| = Erf–1(0.458082) σ√2 = 0.609915σ oraz V2 = 0.667282σ, a ich stosunek wynosi 1.094 (dla BBC1, BBC3 i BBC4 progi te są nieco bliższe siebie i stosunek mniejszy: 0.828898/0.769093 = 1.078, 0.709159/0.663755 = 1.068 i 0.663453/0.614161 = 1.080).

Do przybliżonych ocen wysokości i wzajemnej relacji progów kwantowania dla obecnej konfiguracji autokorelatora TCfA mogą w praktyce posłużyć poniższe wykresy pokazujące zależność wysokości tych progów od statystyk w kanale z zerowym zapóźnieniem oraz w końcowych kanałach ACF. Poszczególne krzywe odpowiadają różnym zmierzonym średnim w dalszych kanałach zgodnie z opisem w ramce wewnątrz rysunku. Czarne krzywe dotyczą idealnie symetrycznych progów kwantowania.


Rys. 1: Poziom progów kwantowania, u = V/σ, w funkcji współczynnika korelacji w zerowym kanale autokorelatora trójpoziomowego dla różnych wartości zliczeń w końcowych kanałach, N/Nmax.



Dla ogólniejszych przypadków przygotowaliśmy przeskalowaną tablicę odwrotnej funkcji błędu, z krokiem 0.001. Mając zmierzone ERF = 1 – No/Nmax ± √(N/Nmax) można stamtąd odczytać wprost wysokości progów u(ERF) wyrażone w średniokwadratowej wartości napięcia na wejściu autokorelatora (σ).


    Znaczenie odejmowania średniej od ACF

Wzór (1) mówi, że przy nierównych poziomach kwantowania podczas korelacji sygnału losowego w postaci całkowicie niezależnych próbek powstaje pewna stała nadwyżka we wszystkich 'niezerowych' kanałach w funkcji absolutnej wartości różnicy tych poziomów. W praktyce tę nadwyżkę można łatwo zmierzyć licząc średnią wartość surowej ACF z końcowych kanałów autokorelatora, gdzie idealna (pod względem tych poziomów) ACF powinna być bliska zera. Jeśli odejmiemy ją od wszystkich niezerowych kanałów, otrzymamy inną ACF. W oparciu o teorię możnaby sądzić, że taką ACF, jaką otrzymalibyśmy z korelatora przesuwając niższy (co do wartości bezwzględnej) poziom do wartości wyższego (bo generowałby on teraz mniej jedynek, a więcej zer, co zmniejszyłoby wartość średnią ACF). I tak się w praktyce robi (odejmuje się średnią). Widzieliśmy jednak, że w zerowym kanale jest inna nadwyżka, niż w pozostałych. Mianowicie, ze wzoru (2) łatwo wydedukować, że nadwyżka spowodowana różnymi poziomami kwantowania wyniesie tutaj konkretnie:

1

2
| Erf( –V1

σ√2
) – Erf( V2

σ√2
) |   =  

N

Nmax
 
,

      (5)
gdzie lewą stronę przyrównaliśmy do prawej na podstawie wzoru (1). Zauważmy, że np. przy dyskutowanej tu średniej N/Nmax równej np. 0.00035, w kanale zerowym odpowiednia 'średnia' wynosi już √0.00035 = 0.0187, czyli ok. 50 razy więcej. Znaczy to, że:

Aby uczynić zmierzoną ACF taką, jaką dostaje się z korelatora o jednakowych poziomach kwantowania, kanał zerowy należałoby poprawić odejmując od niej pierwiastek kwadratowy ze średniej wyznaczonej z końcowej części ACF, a w końcowych kanałach odjąć tę średnią. Ponieważ w rzeczywistości kolejne próbki są początkowo silnie ze sobą skorelowane (choćby dlatego, że sygnał jest filtrowany do względnie wąskiego pasma), w kanałach pośrednich (1, 2, 3, ...) należałoby odjąć coś pośredniego (ale nieznanego) między tymi dwoma poprawkami na skrajnych zapóźnieniach. Stąd, naszym zdaniem, odjęcie tej samej wartości średniej od wszystkich kanałów przed nieliniową korekcją (tak jak się czyni w przypadku przynajmniej niektórych korelatorów na świecie) wprowadza niepotrzebnie dodatkowe zniekształcenia ACF. Dlatego w programie AutoFFT od ACF odejmuje się tylko instrumentalne obciążenie (stały bias elementarnych korelatorów równy Nmax).


    Optymalizacja poziomów kwantowania

Pokazaliśmy, że niezrównoważenie poziomów kwantowania nie można skompensować po prostu odejmując wartość średnią. Z pomiarów wynika jednak, że autokorelator TCfA może mieć pewien 'rozbalans' progów, gdyż wartość średnia ACF dalszych kanałów stanowi ok. 0.03% Nmax. Zanim ten rozbalans zostanie potwierdzony i opracowana pełniejsza teoria korekty ACF na efekt nierównych poziomów kwantowania, tymczasem zajmiemy się prostszym do analizy korelatorem, który ma równe poziomy: V2  =  –V1  =  v.

Wiadomo, że optymalna pod względem czułości wartość ustawienia poziomu ograniczania (kwantowania) sygnału wynosi ok. v = 0.6 σ (z niewielką stratą gdzie indziej w zakresie od ok. 0.4 do ok. 0.85 v/σ; patrz rys. niżej). Dla tej wartości v/(σ√2) = 0.6/√2 = 0.424264.

Rys. 2: Względny czas integracji potrzebny do uzyskania tej samej wartości współczynnika korelacji autokorelatorem 3-poziomowym i wielopoziomowym. W optymalnej konfiguracji, przy v/σ = 0.62 trzeba 1.525 razy dłużej integrować funkcję korelacji. W przypadku v = 0 (korelator 1-bitowy) ten współczynnik jest równy (π/2)2 = 2.4674, czyli o ok. 62% (1.62 razy) gorzej.


Przy takim poziomie No/Nmax  =  1 – Erf(0.424264)  =  0.548506, co oznacza, że kanał z zerowym zapóźnieniem w czasie integracji powinien zliczać średnio około 55% jedynek i 45% zer. Zatem optymalna 'trójpoziomowa' ACF po znormalizowaniu (przez podzielenie przez liczbę korelowanych próbek) ma taką właśnie wartość w swoim maksimum. Dla nieoptymalnych konfiguracji autokorelatora 3-poziomowego zliczenia w zerowym kanale mogą być większe lub mniejsze, jak pokazano na niżej załączonym rysunku.


Rys. 3: Względny poziom progów kwantowania, v, w funkcji współczynnika korelacji
w zerowym kanale autokorelatora trójpoziomowego.



Znając stosunek No/Nmax z pomiarów autokorelatorem, możemy za pomocą powyższego rysunku lub tablicy wartości numerycznych wyznaczyć faktyczną wysokość progu kwantyzacji w urządzeniu próbkującym w stosunku do poziomu sygnału i tak dobrać obie wartości (np. tłumiąc sygnał lub regulując wartość samego poziomu), aby z pomiarów ACF w kanale z zerowym zapóźnieniem uzyskać No/Nmax bliski optymalnemu, który wynosi 0.5485. Bezpośrednio z korelatora TCfA dostaje się celowo (hardware'owo) obciążone wyniki korelacji (dodanie 1 do każdego wyniku korelacji), dlatego w praktyce zakumulowane zliczenia w zerowym kanale powinny być 1.5485 razy większe od wartości średniej w pozostałych (a raczej tylko końcowych) kanałach.

W osobnym pliku znajduje się tabela zawierająca wartości numeryczne No/Nmax w funkcji v/σ w większym niż na rysunku zakresie, od 0 do 4.00 z krokiem 0.01.


    Korekcja ACF

Funkcja autokorelacji sygnału ograniczonego jest wypaczoną wersją ACF pierwotnego sygnału (x), dlatego oprócz odjęcia Nmax i normalizacji względem kanału zerowego, przed przekształceniem na widmo mocy wymaga nieliniowej korekty. Do zrealizowania tego kroku trzeba znać funkcyjną postać spodziewanego wyniku korelacji. Wartość oczekiwaną współczynnika korelacji r (dla dowolnego zapóźnienia) sygnałów skwantowanych oblicza się z zależności

r(ρ) =

–∞ 
Ψ(x,y) p(x,y,ρ) dx dy,      (6)
gdzie funkcja przejścia Ψ(x,y) opisuje sposób kwantowania, ρ jest współczynnikiem korelacji, a p(x,y,ρ) — rozkładem łącznego prawdopodobieństwa zmiennych losowych x i y. Gdy zmienne mają jednakowe dyspersje (σ), rozkład ten ma postać
p(x,y,ρ) =
 1 

2πσ2


1 – ρ2
exp[ x2 + y2 – 2ρ xy

2(1 – ρ2)
].      (7)

W przypadku kwantowania dwupoziomowego (próbkowanie jednobitowe, v = 0), kiedy Ψ(x,y) przyjmuje wartość –1 gdy x i y mają różne znaki a +1 przy jednakowych znakach, wyrażenie na r(ρ) dość łatwo redukuje się do r = (2/π) arcsin(ρ) (np. Borkowski, 1993). Wzór ten jest dość powszechnie stosowany jako tzw. poprawka Van Vlecka.

Gorzej wygląda sytuacja dla kwantowania 3-poziomowego. Istnieje tutaj pośrednie rozwiązanie analityczne dla jednakowych poziomów kwantowania. To rozwiązanie opisuje wyrażenie (np. JB Hagen i DT Farley, 1973, Radio Science, 8, 775):
r(v/σ,ρ)  =   1

π
ρ

0 

1 



1 – x2
[ e–(v/σ)2/(1 + x) + e–(v/σ)2/(1 – x) ] dx.
 
      (8)

Praktycznie użyteczne zależności r(ρ), czyli r(v/σ,ρ) przy ustalonym progu v, otrzymaliśmy z całkowania numerycznego według tego wzoru. Całkowanie wykonaliśmy za pomocą programu Mathematica, zaś potrzebną w praktyce odwrotną zależność ρ(r) uzyskaliśmy w programie OriginPro (którym zostały wykonane też prawie wszystkie rysunki prezentowane w tym dokumencie). Dla stałej v/σ = 0.6 wielomian 5-tego stopnia najlepiej dopasowany do 104 punktów w przedziale ρ od 0 do 1 i w przedziale r od 0 do 0.548506 ma postać:
ρ  =   3.14776E–4 + 2.214 r + 0.85701 r2 – 7.67838 r3 + 22.42186 r4 – 24.896 r5.      (9)
To dopasowanie ma odchylenie standardowe 0.00074.


Rys. 4: Przykłady nieliniowych zależności między ACF otrzymaną z cyfrowego autokorelatora (r) i poprawioną (ρ) na wpływ kwantowania sygnału przed korelacją.



Dysponując zależnością ρ(r) właściwą dla danego autokorelatora 3-poziomowego (chodzi w istocie tylko o wysokość progu kwantowania, v, względem mocy skutecznej mierzonego sygnału) możemy za jej pomocą poprawiać zmierzoną i znormalizowaną ACF, obliczając po prostu ρ(ACF).

Ponieważ autokorelator TCfA ma poziom v bliski optymalnemu, w programie AutoFFT zastosowano korekcję według wyżej podanego wielomianu piątego stopnia (z niewielką jego modyfikacją przez usunięcie pierwszej stałej i znormalizowanie do wartości 0.548506 dla ρ = 1). W istocie program zawiera jeszcze dwie inne funkcje korygujące. Wybór właściwej funkcji następuje automatycznie według zmierzonej wartości ro = No/Nmax. Dla ro > 0.9 jest to poprawka Van Vlecka (potrzebna, gdyż autokorelator można przestawić na jednobitowy tryb pracy), między tą wartością a 0.3 — poprawka dla optymalnego poziomu (v = 0.6σ), zaś dla ro ≤ 0.3 jest to wielomian czwartego stopnia z powyższego rysunku (wykorzystywany zasadniczo tylko dla testów).


FFT

Do przekształcenia poprawionej ACF na widmo mocy służy transformacja Fouriera. W programie wykorzystano gotowy podprogram (taki jak w Numerical Receipes, four1, po zamianie zmiennych typu real*4 na real*8, tj. do podwójnej precyzji). Jest to procedura oparta na algorytmie FFT (szybkiej transformaty Fouriera) dla ciągu liczb zespolonych. ACF jest rzeczywistą funkcją parzystą, dlatego jej transformata też jest rzeczywista i parzysta. Ze względu na tę symetrię ACF i jej rzeczywistość, oraz specyfikę FFT należy specjalnie przygotować dane przed użyciem podprogramu FFT. Mianowicie, z ciągu danych ACF (w liczbie 4096; tyle jest kanałów) należy utworzyć nowy ciąg 8192 liczb, w którym co druga (części zespolone) jest zerem. Następnie kolejne 8192 liczby zapełnić tym samym ciągiem, ale od tyłu i poczynając od 8185 komórki tablicy danych (tj. z pominięciem 8193 i następnej, które można zapełnić zerami, bądź powtórzyć ostatnią liczbę zespoloną ACF — tak się robi w AutoFFT). Ponieważ FFT wymaga liczby danych będącej potęgą 2, znaczy to, że kopia pierwszej liczby ACF nie zmieści się w tak przygotowanej tablicy. Jest to zgodne z faktem, że parzystość ACF oznacza symetrię tej funkcji względem pierwszej wartości (dla zapóźnień ujemnych ACF jest taka sama, jak dla dodatnich), czyli nieparzystą liczbę danych. Po transformacji otrzymuje się widmo — także w postaci funkcji parzystej i rzeczywistej. Te operacje można ująć w następujący schemat, w którym zerom odpowiadają części urojone:

ACF   1   2   3   ... 4096                            
ACF*  1 0 2 0 3 0 ... 4096 0 4096 0 4096 0 ... 3 0 2 0
Widmo 1 0 2 0 3 0 ... 4096 0 4096 0 4096 0 ... 3 0 2 0
Produktem końcowym jest ciąg 4096 liczb (co druga w pierwszej połówce tablicy) stanowiący widmo mocy sygnału docierającego do autokorelatora, przy czym w pierwszym kanale widma (komórka numer 1) mamy zerową częstość widmową (czyli składową stałą ACF), a w ostatnim (4096-tym) — częstość najwyższą. Przy próbkowaniu z częstością Nyquista częstość w ostatnim kanale odpowiada szerokości odbieranego pasma (w rzeczywistości jest mniejsza od niej o odstęp kanałów). Druga połowa naszej tablicy po transformacji zawiera to samo widmo, lecz odwrócone w analogiczny sposób, jak skonstruowaliśmy ACF*.

Rozdzielczość uzyskanego w taki sposób widma wynosi 1.21 Δf / K, gdzie Δf to szerokość pasma analizowanego sygnału, a K = 4096 — liczba kanałów autokorelatora. W praktyce tę maksymalną rozdzielczość celowo pogarsza się poprzez ważenie ACF jakąś funkcją malejącą ku końcowi ACF, aby wygładzić widmo (które jest splotem widma ACF i widma funkcji ważącej). W AutoFFT użyto okna Hanna, [1 + cos(πi/K)]/2. Po takim wygładzeniu rozdzielczość widma wynosi 2 Δf / K, co jest równe podwojonemu odstępowi kanałów końcowego spektrogramu.


Położenie obserwowanej linii w widmie

Do dalszej analizy obserwacji konieczna jest znajomość częstości radiowych, którym odpowiadają poszczególne kanały czy składniki widma, a raczej stowarzyszone z obserwowanym radioźródłem prędkości radialne.

Zerowy kanał w widmie odpowiada radiowej częstości równej sumie lub różnicy częstości oscylatorów lokalnych; w naszym przypadku: fo = fLO1 ± fLO2 w zależności od ustawienia wyższego z nich, fLO1, względem częstości obserwowanej linii f (od dołu +, od góry –). Ostatni kanał odpowiada częstości o Δf wyższej lub niższej od fo w zależności od ustawienia fLO1 względem częstości obserwowanej linii (od dołu, czy od góry) i wyboru wstęgi bocznej przy fLO2 (USB lub LSB; fLO2 i wstęgi ustawia się na konwerterach BBC). Program AutoFFT rozpoznaje kierunek częstości w widmie po wartościach częstości oscylatorów lokalnych i częstości obserwowanej linii f. Tę ostatnią poprawia się najpierw na dopplerowskie przesunięcie wynikające z ruchu Słońca w Galaktyce, Ziemi wokół Słońca i radioteleskopu wokół osi rotacji Ziemi oraz na ruch własny źródła (jego znaną prędkość w lokalnym układzie odniesienia, vLSR):

fsky = f – f (vDoppler + vLSR) / c,
gdzie c to prędkość światła. Zauważmy mimochodem, że większym prędkościom radialnym odpowiadają mniejsze częstości w widmie radiowym. Tej częstości na niebie w widmie otrzymanym z ACF (w zakresie wideo) odpowiada częstość:
fvideo = fsky – fLO1 – fLO2 sign(fsky – fLO1),
gdzie funkcja sign przymuje wartość 1 lub –1 zgodnie ze znakiem swojego argumentu.
Jeśli fvideo wypada mniejsze od zera, oznacza to, że efektywna czy wypadkowa wstęga boczna jest dolna, czyli otrzymujemy widmo odwrócone (malejące częstości ku wyższym kanałom). W pliku wyjściowym widmo zapisuje się według rosnących prędkości radialnych, a nie częstości radiowych, dlatego widmo odwrócone nadaje się wprost do zapisu, natomiast przy fvideo > 0, po transformacji FFT trzeba widmo odwrócić (kanał ostatni zamienić miejscami z pierwszym, przedostatni z drugim itd.).

Miejsce w widmie FFT, w którym powinniśmy szukać maksimum obserwowanej linii widmowej znajduje się w odległości |fvideo| / Δf od kanału z zerową częstością widmową. Odległości tej odpowiada oczywiście kanał o numerze:

k = K |fvideo| / Δf + 1
(po zaokrągleniu do liczby całkowitej). Numer tego samego kanału ale w widmie zorientowanym w funkcji rosnących prędkości będzie taki sam, kv = k, jeśli widmo FFT jest już odwrócone (efektywna wstęga LSB), zaś kv = K – k + 1 przy nieodwróconym.

Dla potrzeb pakietu SLAB, do pliku wynikowego z widmem wpisuje się taki ułamek q, który pomnożony przez liczbę kanałów K da numer kanału z linią (numer liczony od zera, czyli np. k' = k – 1). Dla efektywnej LSB (fvideo ujemne) jest więc

q = –fvideo / Δf,
zaś dla USB (fvideo dodatnie)
q+ = (K – k') / K = 1 – fvideo / Δf – 1/K.

Wątpliwość czytelnika może budzić różnica o 1/K między wyrażeniami na q+ i q. Bierze się ona stąd, że kanał pierwszy (o częstości 0 MHz) ma szerokość dwa razy mniejszą od pozostałych, czyli od odstępu kanałów, który wynosi Δf / K. W związku z tym ostatni kanał (K-ty) ma częstość środkową (K – 1) Δf / K, a nie po prostu Δf. Aby numer kanału w dziedzinie prędkości radialnych wskazywał dokładnie tę samą linię, niezależnie czy widmo pochodzi z dolnej czy z górnej wstęgi bocznej, musieliśmy wprowadzić to subtelne rozróżnienie.

Prędkości radialne w 1024 kanale w dziedzinie prędkości radialnych oblicza się ze wzoru:

v1024 = vLSR + (1024 – kv) c Δf/(f K).


Zmiany wniesione do AutoFFT w stosunku do pierwotnej wersji (au-new)

1) Podprogram do obliczanie dopsetu (przesunięcia dopplerowskiego) dop działał poprawnie, ale był niewłaściwie wołany (m.in. miał błędnie zadawany rok obliczany z dnia miesiaca, co się brało z przypisania nyear=iie). Mimo, ze po poprawkach podprogram ten mógł być dalej używany, w nowej wersji został zastąpiony innym, dokładniejszym: VdRT32. Różnice prędkości zrzutowanej na kierunek zródła w trzech sprawdzanych przykładach wyniosły 0.003 do 0.004 km/s. W tej nowej wersji dokładność obliczania prędkości Ziemi (która decyduje o wspomnianych różnicach) nie odbiega od tej wyznaczonej z precyzyjnych efemeryd JPL o więcej niż 0.0006 km/s, co zostało sprawdzone dla lat od 1990 do 2019.

2) W algorytmie obliczania dopsetu dodano precesję (stosownie do zmiany w danych współrzędnych na katalogowe) i nutację pozycji obserwowanego źródła. Dodanie nutacji spowodowało zmiany rzutowanej prędkości do 0.0015 km/s (stwierdzone na trzech przykładach obserwacji z grudnia 2007).

3) Poprawiono przyjęte w programie przybliżone współrzędne RT32 na dokładne wyznaczenia z obserwacji VLBI (dla porządku, gdyż prawdopodobnie nie ma to większego znaczenia dla dokładności obliczeń dopsetu, ale to nie było sprawdzane). Ponadto współrzędne horyzontalne i galaktyczne wpisywane do pliku wyjściowego obecnie nie są przepisywane z danych, lecz obliczane z równikowych.

4) Zmieniono sposób liczenia wpływu przesunięcia Dopplera na widmo; dodano obliczanie spodziewanego numeru kanału w dziedzinie częstości i dziedzinie prędkości radialnych. Uproszczono sposób określania efektywnej wstęgi bocznej widma (USB czy LSB), która decyduje o obracaniu, lub nie, końcowego widma.

5) Zmieniono odejmowanie średniej z ostatnich 240 kanałów funkcji autokorelacji (ACF) od tej funkcji na odejmowanie ocenianej liczby cykli akumulacji ACF, Nmax. Ta zmiana wynika z faktu, ze poprzednio pierwszy składnik widma fourierowskiego (zerowa częstotliwość, czyli wartość średnia z całej ACF) miał bardzo duże i ujemne wartości w części rzeczywistej (urojona wprawdzie jest zerowa, ale dawniej widmo liczono jako moduł, który zawsze był dodatni). Ponieważ widmo jest w tym przypadku widmem mocy, powinno być dodatnie i z bliską zeru składową o częstości zerowej. Odjęcie niewłaściwej wartości od ACF wypacza ACF(0), tj. składnik o zerowym zapóźnieniu, a to z kolei prowadzi do wyboru niewłaściwej korekty nieliniowej (typu Van Vlecka, lecz stosownej do 3-poziomowego korelatora) oraz psuje kalibrację gęstości strumienia. Obecna ocena Nmax zakłada, że wartość średnia z ostatnich 240 kanałów ACF jest równa lub nieco większa niż liczba cykli akumulacji. Dokładna wartość Nmax znajdowana jest w następujący sposób (fragment kodu programu):

 	average = sum/240.0
c Calculate the true number of samples accumulated, Nmax. This calculation
c is based on the fact that the average should contain about the number
c and the auto(0,i) should be an integer multiple of the number
	multiple = nint(auto(0,i)/average)
	Nmax = nint(auto(0,i)/multiple)
	bias0 = average/Nmax - 1 ! extra bias due to unequal thresholds
(poprawiono też obliczanie średniej, average, gdyż pierwotny program do sum brał 241 kanałów, co efektywnie zwiększało jej wartość o ponad 0.4 %). W programie tablica auto, mieszcząca zmierzoną ACF, ma wymiar (0:4097,1:4), przy czym zakłada się, że auto(0,i) zawiera pewną ścisłą wielokrotność liczby cykli integracji. W 16 analizowanych ACF uzyskanych w czterech obserwacjach Nmax był 8-krotnie (nie 4-rokrotnie, jak wynikałoby z czasu integracji!) mniejszy od liczby towarzyszącej każdej ACF. Taka procedura w zastosowaniu do analizowanych ACF prowadzi do resztkowego bias0 ok. 0.03%, korelacji w zerowym kanale ACF 0.44 do 0.53 (czyli całkiem blisko optimum) oraz niweluje nadmierną wartość FFT(0) (zmniejsza ją o ok. rząd i, gdy nie ma silnych zakłóceń, czyni dodatnią).

6) Korekcja ACF została zmieniona z poprawki Van Vlecka (stosownej do korelatora jednobitowego) na specjalnie opracowaną korekcję właściwą dla korelatora trójpoziomowego o specyficznych dla przyrządu TCfA wartościach progów kwantowania sygnału i ich relacji do skutecznego napięcia sygnału wejściowego. Funkcja CorrectACF(ri,r0,rMean) wybiera rodzaj poprawki dla zmierzonej autokorelacji ri w zależności od wartości korelacji w kanale zerowym, r0, i warości średniej rMean = bias0. Obecnie jeśli rMean ≤ 0.00001 i 0.3 < r0 ≤ 0.9 poprawia się tak jak w korelatorze optymalnym (v/Vrms = 0.5485; tutaj Vrms = σ), dla mniejszych r0 – tak jak w korelatorze o progu v/Vrms = 1.9, a dla r0 > 0.9 wprowadzana jest poprawka Van Vlecka. Jeśli rMean > 0.00001 ACF poprawia się w przybliżeniu zgodnie z teoretyczną charakterystyką trójpoziomowego autokorelatora o progach v2/v1 = u2/u1 = 1.09 i u1 = 0.6 ± 0.2.

7) Dodano obliczanie niektórych parametrów korelatora ze statystyk ACF. Są one wyświetlane na monitorze, m.in. wysokość progu kwantyzacji (v/Vrms = u) ze wzoru (3).

8) Podprogram obliczania wielowymiarowego widma FOURN został zastąpiony równoważnym FOUR1 lecz prostszym, gdyż liczącym jednowymiarową transformatę Fouriera (algorytmem FFT). Ponadto FOUR1 zmodyfikowano tak, by wszystko było liczone w podwójnej precyzji.

9) Wynik szybkiej transformacji Fouriera poprzednio był dzielony przez 8192 a potem przemnażany przez 1000. Obecnie nie jest w ogóle skalowany (numerycznie wartości widma są więc teraz około 8 razy większe i bliskie jedności).

10) Częstość w linii, restfreq, wybierana jest z listy, która była w programie au-new (niektóre częstości w tej liście mają więcej cyfr znaczących niż te w plikach danych). Jeśli jednak na liście nie ma częstości o części całkowitej (przed kropką) takiej jak w pliku danych, brana jest częstość z pliku (z komunikatem na ekran).

11) Plik wyjściowy (opcjonalnie WYNIK.DAT) ma dokładnie taki sam format jak wcześniej, ale w wierszu z prędkością radialną są inne dane. Mianowicie było:
  4096 bw 0.5 Vcor restfreq
Teraz jest:
  4096 bw q vline restfreq
gdzie q to liczba, która po pomnożeniu przez liczbę kanałów (4096; podana jest na początku wiersza) daje numer kanału (w dziedzinie prędkości) z linią (obecnie ±1024, bo nie ma informacji o zmianach LO(RF) o 1 MHz), vline – prędkość V(LSR) w km/s przepisana z pliku danych.

Przykładowe wykonanie programu (literalna kopia ekranu z okna DOS pod Windowsami):


                     Program AutoFFT
           for TCfA AUTOCORRELATION SPECTROMETER

       Corrects  4096 point autocorrelation function for
     each of 4 BBCs and computes corresponding FFT. Each
     spectrum has  4096 points  but,  due to the Hanning
     smoothing the frequency resolution is only BW/2048.
       This program calculates also expected location of
     line in the spectrum (velocity channel) using given
     source rest frequency, frequencies of LOs and comp-
     uted Doppler shift.         Version of Feb 19, 2008


Type output [#*]filename (max 30 characters) [Enter=WYNIK.DAT]: 5cm1
 ...A file "5CM1" already exists! Overwrite? [Enter=Yes, a=Append]:
Type [+-]filename with list of data files [+- means f_LO+-BW/4]: -5cm1

Scan:   1.  Data file: G32P7_2008023001.DAT   Outfile: 5CM1.DAT
INT      31.000 'g32p7                           '
RADEC  18 51 22.000   0 -12  -6.000 2000.000
AZEL     41.718   29.063
LB       33.451   -0.432
UTST   11 51 21 21 14 24
DATE   1201089081  23 Wed  Jan  23 11:51:21 2008
FREQ   6668.231 6668.231 6668.231 6668.231
FREQA  6668.230 6668.230 6668.230 6668.230
REST   6668.518 6668.518 6668.518 6668.518
LO     5899.500   -1.000 5900.000   -1.000
BBCFR   767.230  767.230  767.230  767.230
BW        2.000    2.000    2.000    2.000
POL        A        C        A        C
VLSR     38.500   38.500   38.500   38.500
TSYS     47.000   33.000   47.800   32.400
   f(LSR)/MHz   f(sky)    LO1(RF)   LO2(BBC)  fvideo   V(Dopp) [km/s] V(LSR)
   6668.5180  6668.2310  5899.5000  768.7310  1.5010  -25.5955       38.5000
 ===> Frequency domain: line is in channel No 3075,   V1024f =   83.522 km/s
 ===> Velocity domain (.0220 km/s/ch):        1022,   V1024v =   38.544 km/s
  ACFs (USBeff), Nmax:   58621204  BBC1        BBC2        BBC3        BBC4
 r0=N0/Nmax (best is .5485)       0.4243      0.5209      0.4923      0.5209
 rMean (bias of zero, %)          0.0296      0.0345      0.0216      0.0256
 Threshold (u=V/Vrms)             0.7991      0.6420      0.6867      0.6419 


Początkowy fragment pliku 5CM1.DAT z powyższego przykładu

???
    18    51    22     0   -12    -6
    32    45     0    -5
    41    48    29     1
    230108
    21    14    24
    47
     0
     0
$$$
        4096      2.0000000      0.2492778    38.5000        6668.51800
g32p7                           
***
      11      51      21      31
   0.36362   0.35695   0.35714   0.35865   0.35757   0.35251   0.34985   0.35309
   0.35306   0.35260   0.35706   0.35893   0.35882   0.35824   0.35899   0.36126
   0.35826   0.35242   0.35224   0.35630   0.35742   0.35759   0.35730   0.35232




Problemy jeszcze oczekujące na rozwiązanie

  1) Wydaje się, że liczniki korelatora gromadzą za małe sumy — za małe aż o czynnik 2. W każdym cyklu integracji ACF do liczników powinna dodawać się średnio przynajmniej jedynka, gdyż z elementarnych korelatorów z każdym cyklem dostajemy wynik korelacji zwiększany zawsze o 1, tymczasem w licznikach dalszych kanałów (z dużymi numerami, gdzie ACF jest bliska zeru) nalicza się średnio tylko nieznacznie powyżej Nmax/2 (połowa liczby dodanych jedynek czyli liczby integrowanych próbek ACF). Efekt jest więc taki, jak gdyby do akumulatorów była dodawana tylko co druga próbka!

  2) Progi (poziomy) kwantowania wydają się niewiele różne (różnica w wartościach bezwzględnych ok. 9 %) i w przybliżeniu na optymalnym poziomie w stosunku do mocy sygnału wejściowego. Na dobrą sprawę należałoby opracować funkcję korekcji ACF dla aktualnego stanu autokorelatora (chodzi o poziomy kwantowania).
Niesymetryczność progów objawia się pewną nadwyżką zliczeń N ponad Nmax w końcowych kanałach według wzoru (1), podczas gdy w idealnym przypadku (bez linii widmowych) powinno tam ich być zaniedbywalnie mało. Nieoptymalną wysokość progów można zaś ocenić praktycznie po stosunku No/Nmax ze wzoru (2), który przy symetrycznych progach powinien być bliski 0.55. Wyższe progi to niższa wartość tego stosunku (w analizowanych przykładach stwierdziliśmy 0.45 do 0.52).

  3) Pliki danych obecnie zawierają niepoprawną wartość częstości pierwszego oscylatora lokalnego umieszczaną w wierszu LO (patrz przykład powyżej), która jest niższa lub wyższa o ćwierć szerokości odbieranego pasma (wartość z wiersza BW tego samego przykładu). Program AutoFFT daje użytkowi możliwość 'ręcznego' naprawienia tego niedostatku podczas wczytywania pliku (poprzedzenie nazwy pliku z listą plików znakiem + lub –), jednak taka technika nie przynosi nam chwały (wszak w 'logach' FS ta informacja jest zapisywana, chociaż w nieco mylny sposób).

  4) Istnieje nadzieja na poprawienie jakości końcowych widm przez zastosowanie procedury ich czyszczenia z silnych zakłóceń. Chodziłoby o to, aby na podstawie oceny mocy tych zakłóceń poprawić obserwowaną ACF na wpływ niegaussowskiego sygnału i stosownie do tej poprawionej ACF zastosować korekcję typu Van Vlecka w zależności od poprawionego zerowego kanału. Procedura mogłaby polegać na wyszukiwaniu 'spajków' w wstępnie uzyskanym widmie, ewentualnym spleceniu sumy odpowiadających im 'delt' (analogicznych do tych w procedurze CLEAN stosowanej w syntezie apertury) z funkcją transferu (transformatą Fouriera okna ACF i ewentualnie kwadratem transformaty Fouriera prostokątnego okna czasu integracji, które mają postać funkcji sin(x)/x, ewentualnie w kwadracie) i odjęciu transformaty (FFT) tego splotu od ACF. Sam splot wspomnianej funkcji z deltami jest oczywiście zwykłą sumą tych funkcji przesuniętych tak, by ich maksima wypadły w miejscach znalezionych delt, a wysokości były jakimś ułamkiem mocy (wysokości) poszczególnych zakłóceń (wtedy czyszczenie powinno odbywać się w pętli kilku powtórzeń) lub wręcz im równe. Przed odjęciem przetransformowanego splotu od oryginalnej ACF należałoby jeszcze zdeformować go w podobny sposób jak czyni to proces kwantowania i korelacji. W bardziej zaawansowanym podejściu należałoby ocenić amplitudę prawie monochromatycznego sygnału wejściowego (przed kwantowaniem) każdego zakłócenia. Potrzebny byłby wtedy teoretyczny model wpływu dodania sygnału deterministycznego do losowego na wyjście autokorelatora, co pozwoliłoby w pełniejszzy sposób wyrugować zakłócenie z ACF. Nie ulega wątpliwości, że każde z tych podejść prowadziłoby do lepszej oceny obserwowanej linii widmowej.
Naszkicowana idea czyszczenia powinna być starannie przetestowana, gdyż nie znamy przykładów jej stosowania w innych obserwatoriach. Niekiedy (np. Appendix B w pracy LA Higgs, KF Tapping, 2000, ApJ, 120, 2471) czyszczenie robi się przez zwyczajne zastąpienie zakłóceń danymi losowymi o średniej równej tej w oryginalnym widmie w sąsiedztwie zakłócenia. Takie czyszczenie nie poprawia jednak jakości obserwowanej linii ani samej ACF. Korygowanie tej ostatniej tak, jak gdyby powstała z sygnału gaussowskiego, wydaje się tracić sens.


    Gdy progi są nierówne

W pobieżnym przeglądzie dostępnej literatury przedmiotu nie znaleźliśmy żadnego śladu rozwiązania na odpowiedź cyfrowego autokorelatora na sygnał kwantowany nierównymi progami. Znane rozwiązania bazują na podejściu Hagena i Farleya, którzy jako pierwsi przedstawili rozwiązanie dla kwantowania trójpoziomowego. Podejście to korzysta z twierdzenia Price'a, które mówi, że w przypadku normalnego rozkładu p(x,y,ρ) dwóch skorelowanych zmiennych losowych, pochodna cząstkowa z wartości oczekiwanej dowolnej funkcji tych zmiennych g(x,y),
<g(x,y)> =

–∞ 


–∞ 
g(x,y) p(x,y,ρ) dx dy       (10)
(gdzie <...> w praktyce oznacza uśrednianie), po współczynniku korelacji (tzn. po kowariancji ρ = <x y> – <x><y>) tych zmiennych jest równa wartości oczekiwanej z pochodznych cząstkowych tej funkcji:

∂<g(x,y)>

∂ρ
= <2 g(x,y)

∂x ∂y
>.
(w istocie to twierdzenie jest ogólniejsze, gdyż dotyczy pochodnych dowolnego rzędu). W naszym problemie funkcja g jest kombinacją dwóch funkcji progu Θ(x), które przyjmują wartość 1 dla x > 0, zaś zero gdzie indziej. Pochodna takiej funkcji jest deltą Diraca, ∂Θ(x)/∂x = Δ(x), co sprawia, że łatwo dostaje się rozwiązania typu Hagena i Farleya dla wielopoziomowego kwantowania poprzez scałkowanie od 0 do ρ wyrażenia, otrzymanego wcześniej z różniczkowania po ρ. Także równie łatwo dostać rozwiązanie dla przypadku niesymetrycznych progów, jednak szybko okazuje się ono niedobre, gdyż dla granicznego przypadku ρ = 0 na wartość oczekiwaną dostajemy zawsze 0, co jest sprzeczne z bezpośrednią analizą, choćby taką, jaka doprowadziła nas do wzoru (1). Uważamy, że wspomniana asymetria progów czyni, że w odpowiedzi autokorelatora pojawia się uwikłany składnik niezależny od ρ, który (z racji niezależności) znika podczas różniczkowania i jest już nie do odzyskania w opisanym podejściu.

Aby obejść tę trudność przeanalizowaliśmy to zagadnienie podobnie jak wyżej w przypadku dowolnego zapóźnienia przy braku korelacji sygnałów, tzn. analizując prawdopodobieństwa ale tym razem łączne. Znaleźliśmy dwa rozwiązania. Nie tracąc na ogólności, dla uproszczenia zapisów przyjmiemy teraz nieco inne oznaczenia niż wcześniej i posłużymy się unormowanym rozkładem prawdopodobieństwa:
P(x,y,ρ) =
1 




1 – ρ2
exp[ x2 + y2 – 2ρ xy

2(1 – ρ2)
].      (11)
Oznacza to, że zmienne x i y są teraz wyskalowane w jednostkach σ. W związku z tym także dla progów przyjmiemy podobne przeskalowenie z dodatkową zmianą konwencji znaku dolnego progu: u1 = –V1/σ oraz u2 = V2/σ.


(a)(b)(c)
Rys. 5:  Unormowany rozkład prawdopodobieństwa dwóch skorelowanych zmiennych losowych o współczynnikach korelacji (a) ρ = 0, (b) ρ = 0.6 i (c) ρ = 0.9. Płaszczyzna cięcia górnej części prawych rysunków znajduje się na wysokości maksimum lewego, tj. na wysokości 1/(2π) = 0.16.


Nasze rozwiązania mają postać:


R(u1,u2,ρ) = 2

u1 


u2 
[P(x,y,ρ) – P(x,y,–ρ)] dx dy + u2

u1 
u2

u1 
P(x,y,ρ) dx dy,       (12)
oraz
R(u1,u2,ρ) = 1

2
[r(u1,ρ) + r(u2,ρ)] + u2

u1 
u2

u1 
P(x,y,–ρ) dx dy,      (13)
gdzie r(u1,ρ) i r(u2,ρ) to to samo rozwiązanie Hagena i Farleya dla dwóch różnych progów. Zwróćmy uwagę na znaki przy ρ w całkowanych funkcjach (dlatego pozornie identyczne całki po kwadracie od u1 do u2 obu wzorów nie są takimi). Drugie z tych rozwiązań okazało się znacznie łatwiejsze do numerycznego całkowania. Poniższy rysunek wyjaśnia istotę tego drugiego rozwiązania.


(a)(b)
Rys. 6:   (a) Płaszczyzna, po której całkuje się funkcję Ψ(x,y) P(x,y,ρ). Funkcja Ψ przyjmuje wartości niezerowe tylko w obszarach zaznaczonych kolorem czerwonym (tu ma wartość +1) i niebieskim (gdzie Ψ = –1). Ze względu na symetrię funkcji P(x,y,ρ), całkowanie po obszarze –u2 < x < –u1, u2 < y < ∞ można zamienić na całkowanie w zakresach u1 < x < u2, – < y < –u2, co pokazuje prawa część rysunku, (b). Widać stąd, że na półpłaszczyźnie y > 0 pozostaje teraz do scałkowania dokładnie połowa przypadku, gdy u1 = u2, czyli składnik r(u1,ρ)/2. Na dolnej połowie mamy natomiast niepełną (brakuje kwadratowego wycinka zaznaczonego linią przerywaną) połowę przypadku, gdy u2 = u1. Ten brakujący przyczynek jest równoważny prawemu składnikowi naszego drugiego rozwiązania dla nierównych progów na zależność trójpoziomowej ACF od współczynnika korelacji.


Do wyznaczenia funkcji korygującej pomiary z autokorelatora TCfA przyjęliśmy pewne średnie wyniki na parametry progów kwantowania: u1 = 0.6 i u2 = 1.09 u1 (czyli, jak wynika z Rys. 2, oba progi z osobna można uznać za optymalne). Otrzymaną z numerycznego całkowania funkcję ρ(r) przedstawia czarna krzywa na Rys. 7.


 
Rys. 7:   Teoretyczna (otrzymana z całkowania numerycznego) funkcja korygująca ACF zmierzoną autokorelatorem TCfA (czarna krzywa) oraz odstępstwa (dziesięciokrotnie powiększone) od niej innych funkcji zaimplementowanych w programie AutoFFT. Wielkość r jest tutaj pomiarem z autokorelatora znormalizowanym do zliczeń w zerowym kanale.


Jak widać z tego rysunku, funkcja wyznaczona wcześniej dla idealizowanego przypadku optymalnych progów kwantowania (u1 = u2 = 0.6; krzywa niebieska) niewiele rózni się od tej bliższej stanowi faktycznemu korelatora TCfA (krzywa czerwona). Funkcja ta pokazana jest też w pełnej postaci (kółka na czarnej krzywej) i w tej skali na całej długości częściowo pokrywa się z krzywą integracji numerycznej dla nierównych progów (różniących się o 9 %).

Porównując różne funkcje z Rys. 7 warto też pamiętać, że w praktyce wielkość r poza kanałem zerowym (gdzie ma wartość 1) jest zwykle mała i mieści się głęboko w przedziale ±0.2. Ilustrują to dwa kolejne rysunki, gdzie nieznormalizowane pomiary (czyli ok. dwukrotnie mniejsze niż odpowiednie wartości r) niewiele przekraczają poziomy ±0.02. Jednakże, w przypadku próbkowania z częstością kilkakrotnie większą od częstości Nyquista (co czasem się robi ze względu na pewien zysk w czułości), sąsiednie próbki stają się silnie skorelowane, co znaczy, że współczynnik autokorelacji dla małych zapóźnień może wtedy nawet zbliżyć się do tego z kanału zerowego.



Rys. 8:   Cztery funkcje autokorelacji z serii 139 30-sekundowych skanów różnych źródeł w paśmie L (18 cm). Za widoczną bardzo silną (amplituda rzędu 0.001) i regularną strukturę w dalszych kanałach odpowiedzialne są zakłócenia. (Więcej szczegółów można zobaczyć po kliknięciu na obrazek.)


Rys. 9:   Wykres analogiczny do Rys. 8 ale z obserwacji w paśmie C (5 cm), w którym generalnie jest mniej zakłóceń. Dane zebrane z BBC2 (żółte punkty) wydają się wolne od silnych zakłóceń, dlatego przy wyznaczaniu progów kwantowania autokorelatora TCfA oparliśmy się na pomiarach z tego właśnie urządzenia. "Pod" tym rysunkiem można znaleźć powiększenie wykresu danych z samego BBC2.

Niektóre statystyki z pomiarów przedstawionych na Rys. 8 i 9 zawiera Tab. 2. Jedne i drugie wyniki świadczą, że (wbrew oczekiwaniom) pomiary bardzo silnie zależą od urządzenia. Pomiary 18-cm były wykonywane w paśmie o szerokości 1 MHz, a 5-cm – 2 MHz. Wszystkie BBC były nastrojone na te same częstości ale sygnał o innej polaryzacji (z innego odbiornika; LCP) doprowadzano do BBC1 i BBC3, a o innej do BBC2 i BBC4 (RCP). Może to źle świadczyć o sprawności samych konwerterów (BBC), ale też umniejsza wartość naszego wyznaczenia funkcji korekcji ACF – takiej samej dla wszystkich urządzeń.


Tabela 2:   Średnie zliczenia autokorelatora TCfA w kanale zerowym, ACF0, i w ostatnich 240 kanałach, ACF(240), oraz ich odpowiednie błędy (odchylenia standartowe), ±sigma, w obserwacjach z dni 18 (na fali 18 cm) i 23 stycznia 2008 (5 cm) 
                    L-band (18 cm)                        C-band (5 cm)         
          ACF0  ±sigma   ACF(240) ±sigma        ACF0  ±sigma   ACF(240) ±sigma  
BBC1    0.46643 0.0026  0.000335 0.000023    0.42450 0.0014  0.000301 0.000009
BBC2    0.53064 0.0027  0.000269 0.000006    0.52326 0.0039  0.000348 0.000008
BBC3    0.49568 0.0025  0.000047 0.000075    0.49254 0.0013  0.000209 0.000024
BBC4    0.52875 0.0030  0.000257 0.000029    0.52307 0.0022  0.000257 0.000014
 Mean   0.50538 0.0266  0.000227 0.000116    0.49084 0.0404  0.000278 0.000055

Wgląd w widma z poszczególnych BBC (Rys. 10 i 11) upewnia, że oprócz zrozumiałych różnic w kształtach pasm przenoszenia, na wykresach, gdzie powinniśmy widzieć prążki w tych samych kanałach (para krzywych o kolorach karmazynowym i jasnoniebieskim lub żółtym i jasnozielonym) pojawiają się także różne struktury (zakłócenia).


Rys. 10:  Uśrednione (ze 139 pomiarów ACF) widma z obserwacji na fali 18 cm w dniu 18 stycznia 2008 r. Pokazano tutaj dwie wersje każdego widma: jedno (wykreślne nieco grubszą linią niebieską) obliczone z korekcją ACF według zależności opracowanej dla optymalnego autokorelatora (z symetrycznymi progami) i nałożone na nie drugie (cińsza kreska w czterech różnych kolorach) obliczone z korekcją właściwą dla autokorelatora TCfA (z nieco różną wysokością progów kwantowania).


Rys. 11:   Taki sam wykres jak na Rys. 10, ale dla danych z obserwacji linii metanolu (5 cm). Więcej szczegółów środkowej części widma zawiera ten rysunek. Uważny czytelnik dostrzeże lustrzane odbicie tła tych widm względem Rys. 10, co wynika z z różnej wypadkowej wstęgi w tych dwóch obserwacjach (linię metanolu obserwowano w efektywnej górnej wstędze bocznej, zaś OH – w dolnej), gdy widma są prezentowane zawsze w funkcji rosnącej prędkości radialnej źródła. Astrofizyczne linie widmowe znajdują się w okolicach kanałów 1024 i 3072 i pochodzą od różnych radioźródeł (wypada dodać, że kolejne półminutowe obserwacje były wykonywane na częstościach różniących się o pół szerokości pasma (2048 kanałów), na przemian, ale do celów tego opracowania zostały potraktowane jednakowo, dlatego linie występują tutaj jednocześnie w dwóch miejscach).

Te same wyniki, tj. Rys. 10 i 11, zdają się też wskazywać, że chyba nieznaczące są różnice między widmami otrzymanymi przy wykorzystaniu opisanych tutaj funkcji korekcji ACF stosownej do symetrycznych progów kwantyzacji i niesymetrycznych. W istocie te dwie funkcje niewiele się różnią (Rys. 7). Dużo większe różnice pojawiają się między tymi widmami a podobnymi uzyskanymi z korekcją Van Vlecka (prosimy spojrzeć na ten rysunek). Mimo to, jak wynika z Rys. 12, linie widmowe nie doznają znaczących zniekształceń w swojej strukturze (pomijając skalę, którą wszakże można wykalibrować innymi metodami).


Rys. 12:   Jedno (pierwsze) z widm metanolu z serii obserwacji wykonanych dnia 18 stycznia 2008 r. w dwóch polaryzacjach wziętych z dwóch wybranych konwerterów wideo i uzyskanych z ACF poprawionych według dwóch różnych funkcji korekcji: Van Vlecka i trójpoziomowej dla niesymetrycznych progów kwantowania. Nominalne położenie linii widmowej (przy założeniu prędkości własnej źródła 38.5 km/s) to 1022 kanał (odstępy kanałów są równe 0.0220 km/s).

Można więc wnosić, że korekcja surowej funkcji autokorelacji (ACF) nie jest krytyczna dla naukowej wartości widm uzyskiwanych z autokorelatora TCfA. Wprawdzie przedstawione w tym dokumencie funkcje korygujące 3-poziomowe ACF mogłyby być dalej udoskonalane, ale nie należy stąd oczekiwać istotnej poprawy jakości końcowych widm.



Dokument ten przygotowywano w okresie grudzień 2007 – 19 luty 2008;
ostatnie poprawki: 2008.03.12.