Rozważ prosty przypadek, w którym dwa sygnały z dwóch różnych czujników są skorelowane krzyżowo, a opóźnienie czasowe nadejścia jest obliczane na podstawie odciętej wartości szczytowej ich funkcji korelacji krzyżowej.
Przyjmijmy teraz, że ze względu na ograniczenia wymiarowe obu anten oraz ograniczenia maksymalnej możliwej częstotliwości próbkowania maksymalne możliwe opóźnienie wynosi , co odpowiada 10 próbkom.
Problem:
Z powodu tych ograniczeń obliczone opóźnienie może różnić się od dowolnej liczby całkowitej od 0 do 10 próbek, to znaczy: . Jest to problematyczne, ponieważ tak naprawdę chcę rozróżnić opóźnienie ułamkowe opóźnienia między dwoma sygnałami uderzającymi w moje anteny, a zmiana wymiarów lub częstotliwości próbkowania nie wchodzi w grę.
Kilka myśli:
Oczywiście pierwszą rzeczą, o której myślę w tym przypadku, jest próbkowanie sygnałów przed wykonaniem korelacji krzyżowej. Myślę jednak, że to w jakiś sposób „oszukuje”, ponieważ tak naprawdę nie dodam żadnych nowych informacji do systemu.
Nie rozumiem, w jaki sposób upsampling nie jest w pewnym sensie „oszustwem”. Tak, rekonstruujemy nasz sygnał na podstawie obecnie obserwowanej informacji o częstotliwości, ale w jaki sposób daje to wiedzę o tym, gdzie sygnał naprawdę zaczął się między, powiedzmy, i ? Gdzie ta informacja była zawarta w oryginalnym sygnale, który określał, że prawdziwy początek sygnału z ułamkowym opóźnieniem faktycznie miał ?D = 8 D = 7,751
Pytania):
Czy to naprawdę „oszustwo”?
- Jeśli nie, to skąd ta nowa „informacja” pochodzi?
- Jeśli tak, to jakie inne opcje są dostępne do szacowania czasów ułamkowych?
Jestem świadomy próbkowania w górę wyniku korelacji krzyżowej, próbując uzyskać odpowiedzi podpróbki na opóźnienie, ale czy to też nie jest formą „oszukiwania”? Dlaczego różni się od upsamplingu przed korelacją krzyżową?
Jeśli rzeczywiście jest tak, że upsampling nie oznacza „oszukiwania”, to dlaczego mielibyśmy kiedykolwiek zwiększać częstotliwość próbkowania? (Czy uzyskanie wyższej częstotliwości próbkowania nie zawsze jest lepsze w pewnym sensie niż interpolacja niskiego próbkowanego sygnału?)
Wydawałoby się wtedy, że moglibyśmy po prostu pobierać próbki w bardzo niskim tempie i interpolować tyle, ile chcemy. Czy nie spowodowałoby to, że zwiększenie częstotliwości próbkowania byłoby „bezużyteczne” w świetle zwykłej interpolacji sygnału do pragnienia naszego serca? Zdaję sobie sprawę, że interpolacja wymaga czasu obliczeniowego, a po prostu rozpoczęcie od wyższej częstotliwości próbkowania nie, ale czy to jedyny powód?
Dzięki.
Odpowiedzi:
Nie oszukuje, nie dodaje też żadnych nowych informacji. To, co robisz, jest tym samym, co robi każdy LPF o zwiększonym próbkowaniu - dodawanie zer, a następnie rekonstruowanie kształtu fali z już znaną informacją o częstotliwości. Dlatego nie ma żadnych nowych informacji, ale nadal istnieje lepsza rozdzielczość czasu.
Upsampling wyniku jest podobny - brak nowych informacji, ale lepsza rozdzielczość czasowa. Możesz zrobić coś bardzo podobnego poprzez interpolację kwadratową .
Wszystkie te metody - upsampling i interpolacja wielomianowa - uzyskują informacje o tym, gdzie pik ułamkowy pochodzi zarówno od samego piku, jak i od jego sąsiadów. Szybki przykład obrazkowy.
Niebieska linia na powyższym obrazku to moje symulowane dane korelacji krzyżowej (choć może to być dowolny wynik, a nie tylko korelacja krzyżowa). To właśnie nazywam szczytem „zrównoważonym”, ponieważ sąsiedzi są symetryczni. Jak można się spodziewać, wynikowa interpolacja kwadratowa (czerwona linia) wskazuje, że prawdziwy pik ma zero.
Z drugiej strony obraz poniżej pokazuje niezrównoważony szczyt. Należy pamiętać, że w wyniku nic się nie zmieniło oprócz wartości dwóch najbliższych sąsiadów. Powoduje to jednak, że interpolator przesuwa swoją ocenę piku ułamkowego.
Sporą zaletą tych metod (interpolacja wielomianowa i upsampling) jest to, że daje również oszacowanie prawdziwej wartości szczytowej, chociaż zazwyczaj jesteśmy bardziej zainteresowani lokalizacją.
Aby spełnić kryterium Nyquista.
Nie. Z teoretycznego punktu widzenia, o ile spełnione jest kryterium Nyquista, nie ma znaczenia, jaka jest częstotliwość próbkowania. Z praktycznego punktu widzenia generalnie stosuje się tak niską częstotliwość próbkowania, jak to możliwe, aby zmniejszyć wymagania dotyczące pamięci i obciążenia obliczeniowego, co z kolei zmniejsza potrzebne zasoby i zużycie energii.
źródło
Dowolny sygnał pasma może być interpolowany. Dodatkowe informacje „między próbkami” są zawarte w sąsiednich próbkach oraz fakt, że przed próbkowaniem sygnał był ograniczony pasmem (co ma tendencję do rozprzestrzeniania informacji między sąsiednimi próbkami). Jeśli dwa sygnały są ograniczone pasmem, wówczas korelacja krzyżowa będzie możliwa, więc korelację krzyżową można również interpolować. Upsampling jest tylko inną formą interpolacji, bardzo dokładną formą interpolacji dla sygnałów o ograniczonym paśmie; ale możesz również użyć interpolacji Sinc'a (oba mogą być dokładniejsze niż interpolacja kwadratowa lub paraboliczna).
Interpolacja może wykazywać pik między próbkami. Może więc nie bezużyteczne.
Jeśli masz sygnał zawierający szersze spektrum, może on zawierać więcej informacji. Próbkowanie go z większą częstotliwością zapewni zatem więcej informacji, ale tylko do nieco poniżej połowy nowej częstotliwości granicznej pasma i tylko wtedy, gdy sygnał zawiera rzeczywistą użyteczną zawartość częstotliwości widmowej powyżej starej granicy pasma, i jeśli można teraz uzyskać tę dodatkową spektrum przy użyciu nowego, bardziej szerokopasmowego procesu ograniczania pasma lub filtra, zamiast starego bardziej stratnego. Próbkowanie danych przy znacznie wyższej częstotliwości sygnału, który był już ograniczony pasmem do znacznie niższej częstotliwości poniżej Fs / 2, spowoduje jedynie zakup interpolacji, a nie więcej informacji.
Jeśli próbkowanie jest kwantowane, wówczas próbkowanie z wyższą częstotliwością może dać ci ułamek LSB więcej informacji, z powodu ditheringu lub kształtowania szumu błędu kwantyzacji. Zależy to jednak od stosunku S / N i dokładności próbnika oraz dokładnego procesu kwantyzacji zastosowanego w próbkowaniu.
Jeśli dwa sygnały nie są właściwie ograniczone pasmem przed próbkowaniem i korelacją krzyżową, to nie tylko może zarówno próbkowanie w górę, jak i interpolacja może przynieść śmieciowy wynik, ale może to być oryginalna nieinterpolowana korelacja krzyżowa.
źródło
Myślę, że najlepszą odpowiedzią, jaką mogę ci dać, jest: masz wszelkie środki, by się przekonać. Zbuduj przykład „wstecz”. Korzystając z Matlaba, zacznij od dwóch sygnałów próbkowanych z bardzo małymi okresami próbkowania (tak aby były to sygnały prawie ciągłe). Oblicz korelację krzyżową i znajdź szczyt (jeśli tego chcesz), co będziesz w stanie zrobić z dużą precyzją. Następnie zmniejsz próbkowanie obu sygnałów i powtórz proces. Porównaj położenie i wysokość drugiego szczytu z pierwszym. Jestem pewien, że drugi będzie gorszy. Ulepszenie od drugiego do pierwszego jest tym, co zyskujesz, jeśli próbkujesz przed korelacją krzyżową.
Aby uzyskać próbkę we właściwy sposób, oba sygnały muszą być ograniczone pasmem i musisz znać te pasma. „Nowa” informacja, o której wspominasz w swoim pytaniu, pochodzi z sąsiednich próbek i fakt, że sygnały są ograniczone w paśmie.
źródło
Aby dodać nieco do poprzednich odpowiedzi, można uzyskać ekwiwalent korelacji krzyżowej ograniczonej przez próbkowanie w górę, zmieniając zmienną korelacji na wartość niecałkowitą.
Poniższy kod (python) oblicza , gdzieτ
Oznacza to, że znajduje maksimum korelacji krzyżowej.
Zmienne wejściowef(n) g(n) n={0,1,...,N−1} N τ [−N+1,N−1]
a
ib
opisania i dla i oba zakłada się, że ograniczony pasmem i okresowe z okresem (przesunięcie jest realizowane w dyskretnej domenie Fouriera). jest w zakresie .Celem jest pokazanie, w jaki sposób można wykonać korelację krzyżową dla wartości niecałkowitych , która jest zdefiniowana przez zamknięcie . Wykorzystuje to tablicę, która opisuje obrót zespolonego fazora przy każdej dyskretnej częstotliwości odpowiadającej przesunięciu . następnie skaluje to dla każdej zmiany. Powinno być oczywiste, że aby utrzymać sygnał w czasie rzeczywistym, obroty częstotliwości ujemnych są zaledwie razy większe niż obroty częstotliwości dodatnich (dla odpowiednich par częstotliwości).τ τ=1 τ −1
correlate_point
omega
Jedyną subtelnością jest to, jak traktujesz próbkę (częstotliwość nyquista), ponieważ jest ona dzielona między pasmami dodatnimi i ujemnymi. Rozwiązaniem zastosowanym w tym przypadku jest interpolacja między fazorem rotacji dodatniej i fazorem rotacji ujemnej (które są odbiciami na osi rzeczywistej), która polega na rzutowaniu fazora rotacji jednostkowej na rzeczywistą oś, która jest funkcją cos ( ponieważ jest to, że to wartość odpowiadająca częstotliwości NYYQUIST). Oczywiście ta wartość musi być rzeczywista, aby utrzymać sygnał w domenie w czasie rzeczywistym.N2
pi
omega
Możesz użyć tego do obliczenia korelacji krzyżowej dla dowolnej arbitralnie precyzyjnej wartości . Po prostu wywołaj zamknięcie (które można zwrócić jako wywołanie) z dowolną wartością którą sobie wyobrażasz.τ τ
źródło
Istnieje intuicyjny dowód, że upsampling przed korelacją krzyżową jest równoważny z wykonaniem go później:
Korelacja krzyżowa jest splotem z innym sygnałem odwróconym w czasie. Odwrócenie czasu nie wpływa na przepustowość. Konwolucja to zwielokrotnienie w dziedzinie częstotliwości, co również nie zwiększa przepustowości. Jeśli oryginalne sygnały są właściwie ograniczone pasmem, do połowy częstotliwości próbkowania, to również będzie wynik korelacji krzyżowej. Nie wprowadzono żadnego aliasingu, który zniszczyłby wynik. Interpolacja oszczędza pracę.
źródło