Detekcja, filtr dopasowany, odbiór k
Transkrypt
Detekcja, filtr dopasowany, odbiór k
Laboratorium Cyfrowego Przetwarzania Sygnałów Preskrypt do v.2014Z ćwiczenie nr 6 z 10 (Detekcja, filtr dopasowany, odbiór korelacyjny) na prawach rękopisu Lista Autorów Zakład Teorii Obwodów i Sygnałów Instytut Systemów Elektronicznych Wydział Elektroniki i Technik Informacyjnych Politechnika Warszawska Uwagi redakcyjne prosimy zgłaszać do: [email protected] tel. 5441 Warszawa, 27 listopada 2014, 23:05 Spis treści 6 Detekcja, filtr dopasowany, odbiór korelacyjny 6.1 Podstawy teoretyczne . . . . . . . . . . . . . . . . . . . . . 6.1.1 Krótka teoria filtru dopasowanego . . . . . . . . . . 6.1.2 Krótka teoria modulacji PSK z rozpraszaniem widma 6.1.3 Zadania do pracy własnej studenta . . . . . . . . . . 6.2 Eksperymenty do wykonania w laboratorium . . . . . . . . 6.2.1 Filtr dopasowany . . . . . . . . . . . . . . . . . . . 6.2.2 Detekcja sygnałów za pomocą filtru dopasowanego . 6.2.3 Przesyłanie sygnału z wielodostępem kodowym . . . 6.2.4 Przetwarzanie sygnału rzeczywistego . . . . . . . . 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 3 3 7 11 11 11 13 16 17 Ćwiczenie 6 Detekcja, filtr dopasowany, odbiór korelacyjny Opiekun ćwiczenia: KK 6.1. Podstawy teoretyczne 6.1.1. Krótka teoria filtru dopasowanego W wielu praktycznych urządzeniach odbieramy pewien sygnał o znanym przebiegu na tle szumu i zakłóceń, i pożądane jest, aby wyznaczyć pewne parametry tego sygnału – np. stwierdzić, czy i w jakiej chwili czasowej taki sygnał odebrano, jaka była jego amplituda i/lub faza. Przykładami mogą być: – Ucho nietoperza, który poluje na ćmę wysyłając krótkie piski i oceniając odległość do niej poprzez opóżnienie echa (musi więc wiedzieć czy w odebranym sygnale znajduje się echo, i w jakiej chwili nadeszło). – Odbiornik GPS, w którym trzeba określić opóźnienie kilku sygnałów pseudolosowych względem siebie. – Odbiornik telekomunikacyjny z modulacją QAM, w którym trzeba określić amplitudę i fazę sygnału w odpowiedniej chwili czasu. We wszystkich tych zagadnieniach konieczne jest zmniejszenie wpływu szumu i zakłóceń na podejmowaną decyzję, przy czym można wykorzystać wiedzę na temat sygnału nadawanego s[n]. Klasyczny problem detekcji (taki jak w przypadku nietoperza, sonaru czy radaru) polega na testowaniu dla interesujących chwil czasu dwóch hipotez: – hipoteza H1 : x[n] = s[n] + ξ[n] – w odebranym sygnale x[n] oprócz szunu znajduje się sygnał użyteczny s[n]; – hipoteza H0 : x[n] = ξ[n] – w odebranym sygnale x[n] występuje tylko szum ξ[n]. Nie wnikając zbyt daleko w teorię, powiemy tu tylko, że musimy w tym celu obliczyć pewną wielkość liczbową reprezentującą prawdopodobieństwo, że zachodzi hipoteza H1 i porównać ją z odpowiednio ustalonym progiem. Zarówno w zagadnieniu detekcji jak i w układzie decyzyjnym odbiornika telekomunikacyjnego potrzebny jest mozliwie “czysty” sygnał, zawierający jak najmniej zakłóceń. Nie jest 3 4 Detekcja, filtr dopasowany, odbiór korelacyjny 2014-11-27 23:05 Rys. 6.1: Przykładowy sygnał widoczny na tle szumu konieczne zachowanie kształtu sygnału – potrzebna jest wartość liczbowa mówiąca jaka jest w danej chwili amplituda (i w niektórych zastosowaniach faza) sygnału użytecznego w sygnale odebranym. Te rozważania prowadzą do następującego zagadnienia: potrzebujemy metody przetworzenia sygnału, która na wyjściu da nam impuls proporcjonalny do amplitudy sygnału, mozliwie jak najsilniejszy w stosunku do szumu (patrz rys. 6.1). Dysponując takim układem możemy, na podstawie położenia maksimum, ustalić czas nadejścia echa. Na podstawie porównania wartości tego maksimum z progiem wyznaczonym z wartości średniej możemy podjąć decyzję, czy w ogóle sygnał uzyteczny odebrano. Tu można dać przykład prehistorycznego filtru do radiotelegrafu Morse'a. Ustalmy więc założenia w taki sposób, aby łatwo było znaleźć rozwiązanie: – Przyjmijmy, że nadawany jest znany sygnał s[n] o ograniczonym czasie trwania. – Szum ξ[n] niech będzie szumem białym o rozkładzie gaussowskim, który dodaje się do sygnału użytecznego (addytywny, biały szum gaussowski – po angielsku AWGN). – Nie wiemy czy, nie wiemy w jakiej chwili czasu ani z jaką amplitudą odebrany został sygnał s[n] – Chcemy na wyjściu układu maksymalizować stosunek szczytowej wartości impulsu (związanego z obecnością sygnału użytecznego) do średniej wartości szumu; ten warunek najłatwiej sformułować korzystając z pojęcia mocy – a więc maksymalizujemy kwadrat wartości szczytowej impulsu do średniej mocy szumu. – Układu przetwarzającego sygnał szukamy wśród przyczynowych układów liniowych i stacjonarnych. Przyjmujemy więc, że sygnał odebrany ma postać x[n] = s[n − n0 ] + ξ[n] dla n0 ¬ n ¬ n0 + P ξ[n] dla pozostałych n (6.1) gdzie P + 1 jest liczbą próbek nadawanego deterministycznego sygnału użytecznego s[n]. Skoro szukamy naszego filtru wśród układów liniowych, możemy oddzielnie obliczyć jak zostanie przetworzony szum, a jak sygnał użyteczny. Jeśli sy [n] jest sygnałem na wyjściu filtru, otrzymanym przez przetworzenie sygnału użytecznego s[n], a η[n] jest szumem na wyjściu filtru otrzymanym przez przetworzenie białego szumu w[n], to stosunek sygnał/szum na wyjściu filtru definiujemy ilorazem ρ= |sy (n0 + P )|2 E {|η(n0 + P )|2 } (6.2) Zauważmy, że wielkość ρ jest definiowana niekonwencjonalnie. Pod pojęciem stosunek sygnał/szum rozumie się na ogół iloraz mocy (wariancji), natomiast (6.3) jest ilorazem kwadratu Detekcja, filtr dopasowany, odbiór korelacyjny 2014-11-27 23:05 5 modułu sygnału użytecznego na wyjściu filtru w chwili n0 + P i wariancji szumu na wyjściu filtru. Dlaczego wynik badamy dopiero w chwili n0 + P ? Szukamy filtru przyczynowego, więc wcześniej filtr nie ma dostępu do całego sygnału użytecznego. Filtr liniowy, przyczynowy i stacjonarny, na wyjściu którego wielkość ρ osiąga największą możliwą wartość ρmax nazywamy filtrem dopasowanym do sygnału użytecznego (deterministycznego) s[n] . O tym w jaki sposób znaleźć filtr dopasowany rozstrzyga następujące Twierdzenie. Jeśli sygnał deterministyczny s[n] o skończonym czasie trwania, n = 0, 1, . . . , P , jest odbierany w obecności addytywnego szumu białego w[n] o zerowej wartości średniej i wariancji σw2 , to filtrem dopasowanym do sygnału s[n] jest filtr, którego odpowiedź impulsowa spełnia warunek h[n] = s∗ [P − n] (6.3) gdzie ∗ jest operatorem sprzężenia (istotnym tylko jeśli sygnał s[n] jest zespolony). Filtry utworzone przez dalsze opóźnianie i/lub skalowanie odpowiedzi impulsowej h[n] oczywiście też są filtrami dopasowanymi. Zauważ, że h(n) to s∗ (n) odwrócony w czasie (i opóźniony, aby filtr był przyczynowy). Tu można pokazać (nieobowiązkowo) wyprowadzenie, bo ono jest eleganckie matematycznie i wcale nietrudne. Na rys. 6.2 przedstawiono przykładowy przebieg sygnału s[n], sygnału odwróconego s[−n] i odpowiedź impulsową h[n] przyczynowego filtru dopasowanego do sygnału s[n]. Rys. 6.2: Przykładowy przebieg sygnału s[n] i odpowiedzi impulsowej h[n] przyczynowego filtru SOI dopasowanego do sygnału s[n] Dla uproszczenia w dalszych rozważaniach założymy, że sygnały są rzeczywiste. Rozpatrzmy dokładniej sygnał sy [n] (sygnał użyteczny po przejściu przez filtr dopasowany) przyjmując n0 = 0. Ponieważ n n sy (n) = X h(k)s(n − k) = k=0 X s(p − k)s(n − k) (6.4) k=0 to w chwili n = P otrzymamy sy (P ) = P X k=0 s(P − k)s(P − k) = P X |s(m)|2 (6.5) m=0 W zależności (6.5) tkwi „cała tajemnica” filtru dopasowanego – w chwili czasu n = P próbka sygnału wyjściowego określa energię sygnału użytecznego (sumę kwadratów próbek). Przy 6 Detekcja, filtr dopasowany, odbiór korelacyjny 2014-11-27 23:05 okazji zauważmy, że filtr dopasowany realizuje splot s[n] ∗ s[−n], a więc oblicza on funkcję autokorelacji sygnału s[n]. Przykład 6.1. Przypuśćmy, że sygnał użyteczny ma postać impulsu prostokątnego o wartości A i odbierany jest z opóźnieniem n0 s[n] = A dla n = n0 , n0 + 1, . . . , n0 + NF − 1 0 dla pozostałych n (6.6) Filtrem dopasowanym do sygnału (6.6) będzie filtr uśredniający o odpowiedzi impulsowej1 h[n] = 1/NF dla n = 0, 1, . . . , NF − 1 0 dla pozostałych n (6.7) Sygnał użyteczny na wyjściu sy [n] dla n = n0 + NF − 1 jest równy A, a więc przechodzi przez filtr ze wzmocnieniem 1. Natomiast szum biały (o wariancji σw2 ) po przejściu przez filtr uśredniający ma wariancję (w stanie ustalonym) σw2 /NF . Zmniejszenie wariancji szumu na wyjściu filtru uśredniającego jest zrozumiałe – zmienne losowe w(n) szumu białego są nieskorelowane, a więc ich uśrednienie zmniejsza poziom szumu wyjściowego. Iloraz (6.3) przyjmuje wartość maksymalną dla n = n0 + NF − 1 równą ρmx = A2 NF σw2 (6.8) Przykład 6.2. Przypuśćmy, że sygnał użyteczny jest zespoloną cosinusoidą s[n] = Aejnθo , n = n0 , n0 + 1, . . . , n0 + NF − 1 0 dla pozostałych n (6.9) gdzie A jest rzeczywistą amplitudą, a θ0 jest unormowaną ustaloną pulsacją. Z sygnałem (6.9) mamy bardzo często do czynienia w impulsowych systemach radiolokacyjnych. Rzeczywisty sygnał mikrofalowy (impulsowy) jest emitowany przez nadajnik i odbija się od obiektu znajdującego się w przestrzeni. W odbiorniku sygnał ten jest demodulowany w demodulatorze kwadraturowym, tj. wymnażany przez cosinusoidę i sinusoidę o częstotliwości sygnału nadawanego i filtrowany filtrem dolnoprzepustowym. Jeżeli echo jest odbite od obiektu nieruchomego, na wyjściu detektora kwadraturowego otrzymujemy sygnał o kształcie takim, jak obwiednia sygnału nadanego i o stałej fazie. Jeżeli jedna obiekt się porusza, faza sygnału odbitego się zmienia w czasie i uzyskujemy zespolony sygnał jak powyżej, gdzie θ0 reprezentuje unormowaną pulsację dopplerowską wynikającą z ewentualnego radialnego ruchu obiektu wykrywanego. Zauważmy, że w rozpatrywanym przykładzie sygnał (6.9) jest zespolony. W tym przypadku odpowiedź impulsowa przyczynowego filtru dopasowanego jest opisana zależnością h[n] = s∗ (N − n) 1 (6.10) Zauważ, że w stosunku do definicji z Twierdzenia (6.1) wprowadzono czynnik skalujący 1/A · 1/NF , który nie wpływa na iloraz ρ, gdyż wchodzi i do licznika, i do mianownika. Detekcja, filtr dopasowany, odbiór korelacyjny 2014-11-27 23:05 7 analogiczną do (??). Przyjmując N = NF − 1 i n0 = 0 otrzymujemy z (6.10) h[n] = Ae−j(NF −1−nθo ) , n = 0, 1, . . . , NF − 1 0 dla pozostałych n (6.11) Splatając odpowiedź impulsową h[n] z sygnałem (6.9) dla n0 = 0 otrzymamy sygnał na wyjściu filtru n sy [n] = X A2 e−j(NF −kθ0 ) · ej(n−k)θ0 (6.12) k=0 Dla n = NF − 1 otrzymujemy z (6.12) maksymalną wartość sygnału wyjściowego sy (NF − 1) = A2 NF (6.13) określającego energię sygnału użytecznego (6.9). Wielkość ρ przyjmuje dla n = NF − 1 wartość maksymalną określoną wzorem (6.8). Wnikliwy czytelnik zarzuci nam akademickość przykładu (6.2). – jeśli θ0 interpretować jako pulsację dopplerowską, której odpowiada pewna (nieznana) prędkość radialna obiektu wykrywanego przez radar, to w jaki sposób nie znając θ0 można zrealizować filtr dopasowany? Otóż tworzy się wówczas bank filtrów pasmowych nastrojonych na różne pulsacje środkowe θ1 , θ2 , . . . , θk i analizuje się sygnały wyjściowe z poszczególnych filtrów. Najsilniejszy sygnał (w odpowiedniej chwili czasowej) otrzymamy z r-tego filtru dla którego θr ∼ = θ0 . Można wówczas mówić, że filtr ten jest w przybliżeniu dopasowany do sygnału (6.9), otrzymujemy wówczas wartość ρ ¬ ρmx . 6.1.2. Krótka teoria modulacji PSK z rozpraszaniem widma Niniejszy rozdział nie jest wyczerpującym podręcznikiem teorii modulacji, ma tylko za zadanie przekazanie najważniejszych informacji umozliwiajacych wykonanie ćwiczenia i nabycie podstawowego zrozumienia sygnałowych podstaw kodowania z rozpraszaniem widma. Kodowanie z rozpraszaniem widma pozwala na wykorzystanie do transmisji pasma szerszego niż to wynika z samego strumienia danych. 6.1.2.1. Kodowanie bipolarne i PSK Stosunkowo prostym kodowaniem strumienia danych binarnych jest kodowanie bipolarne – dane kodowane są jako impulsy o stałej szerokości czasowej T i o wartości +1 dla bitu „1” oraz −1 dla bitu „0”. (rysunek) Widmo takiego sygnału zajmuje w przybliżeniu2 pasmo o szerokosci B = 1/T . Oznaczmy dalej taki sygnał jako x(t), a jego widmo jako X(jω). Jeżeli teraz każdy z impulsów bipolarnych pomnożymy przez pewien sygnał c(t), po stronie widmowej będzie temu odpowiadać splot z widmem C(jω). Najprostszym przykładem jest tu zwykła modulacja PSK, w której sygnał c(t) = sin(Ωt) jest sinusoidą – wtedy wartości “0” i “1” strumienia danych kodowane są poprzez odwrócenie fazy tej sinusoidy. Widmo S(t) sygnału zmodulowanego s(t) – wskutek wzmiankowanego splotu – przesuwa się do częstotliwości F = 2πΩ (patrz rys. 6.3 i rys. 6.4). 2 Przybliżenie polega na pominięciu listków bocznych widma. W praktyce stosuje się pewną modyfikację sygnału, mającą na celu zmniejszenie tych listków – wykorzystuje się impulsy o kształcie różnym od prostokątnego. 8 Detekcja, filtr dopasowany, odbiór korelacyjny 2014-11-27 23:05 Rys. 6.3: Schemat kodowania PSK Rys. 6.4: Widmo sygnału PSK 6.1.2.2. Kodowanie z rozpraszaniem widma (DSS) W modulacji z rozpraszaniem widma sygnałem c(t) jest sygnał pseudolosowy o czasie trwania T – powtórzony w czasie dla każdego bitu do zakodowania (rys. 6.5). Sygnał ten jest szybkozmienny (w czasie T następuje wiele zmian jego wartości) i nie zawiera składowych okresowych (w idealnym przypadku). Może on więc zajmować szerokie pasmo, znacznie szersze niż 1/T . Jeśli jest on generowany cyfrowo z częstotliwością próbkowania Ts , może zajmować pasmo o szerokości Bs = 1/Ts . W takiej sytuacji mówimy często Rys. 6.5: Schemat kodowania z rozpraszaniem widma (DSS) 2014-11-27 23:05 Detekcja, filtr dopasowany, odbiór korelacyjny 9 Rys. 6.6: Widmo sygnału DSS o sekwencji rozpraszającej, mając na myśli sekwencję (ciąg) próbek sygnału c(t). Akronim DSS oznacza „Direct Spread Spectrum”. Mnożąc s(t) i c(t), splatamy ich widma – w ten sposób widmo sygnału zakodowanego poszerza się (rozprasza), a sam sygnał bardzo przypomina szum (rys. 6.6). Przy odkodowaniu (detekcji) sygnału odbieranego na tle szumu wykorzystuje się filtr dopasowany do oryginalnego sygnału c(t). W przypadku modulacji PSK odpowiedź impulsowa filtru będzie odcinkiem sinusoidy3 , a w przypadku sygnału z rozpraszaniem widma – odwróconą w czasie sekwencją pseudolosową użytą w nadajniku. Podkreślmy, że odbiornik musi znać tę sekwencję. Po filtracji dopasowanej każdy symbol ai (któremu odpowiada przebieg ai · c(t − i · T ) przyjmie postać (ai · c(t−i · T ))∗c(−t), gdzie ∗ jest operatorem splotu (filtracji). Operator ten jest liniowy i niezmienniczy względem przesunięcia, otrzymamy więc impuls o amplitudzie ai kształcie c(t) ∗ c(−t) przesunięty do chwili i · T . Sygnał pseudolosowy jest bardzo dobry w roli sygnału c(t), gdyż z dużym prawdopodobieństwem jego splot z nim samym ma kształt wąskiej i wysokiej szpilki na tle niewielkiego szumu – zauważ, że gdyby c(t) potraktować jako realizację sygnału losowego, to c(t) ∗ c(−t) byłoby estymatą jego funkcji autokorelacji. Ciąg takich wąskich szpilek będzie bardzo łatwy do zdetekowania (i określenia znaku ich amplitudy). W praktyce telekomunikacyjnej stosuje się specjalnie dobrane (deterministyczne) sygnały c(t), mające wszystkie pożądane cechy – w szczególności szpilkowy kszałt c(t) ∗ c(−t). 6.1.2.3. Wielodostęp CDMA – przesyłanie kilku sygnałów w jednym kanale fizycznym Odpowiedni dobór różnych sekwencji rozpraszających pozwala przesłać w jednym kanale fizycznym wiele strumieni danych. Polega to na wykorzystaniu sekwencji (np. c1 (t) i c2 (t) takich, aby filtr dopasowany do jednej z nich był zupełnie niedopasowany do drugiej. Wtedy 3 Filtr musi być dopasowany do pojedynczego symbolu; filtr dopasowany do nieskończonej sinusoidy miałby nieskończenie wąskie pasmo i nie przeniósłby na wyjscie żadnych zmian fazy. 10 Detekcja, filtr dopasowany, odbiór korelacyjny 2014-11-27 23:05 Rys. 6.7: Schemat wielodostępu CDMA Rys. 6.8: Słowo 10-bitowe z bitami startu i stopu układ jak na rysunku (rys. 6.7) zapewni poprawne rozdzielenie dwóch strumieni danych4 . Odpowiada to warunkowi c1 (t) ∗ c2 (t) = 0, który jest praktycznie nierealizowalny – zastępuje się go warunkiem, aby amplituda tego splotu była mozliwie niewielka w porównaniu ze szczytową wartością c1 (t) ∗ c1 (t) czy c2 (t) ∗ c2 (t). Jeśli odbiornik jest dobrze zsynchronizowany – dokładnie znany jest moment, kiedy powinna wystąpić szczytowa wartość sygnału – warunek dotyczy chwili próbkowania wartości szczytowej, czyli t = 0, i mówimy wtedy o kodach ortogonalnych – iloczyn skalarny c1 i c2 (a więc splot dla chwili t = 0) ma byc równy zeru. 6.1.2.4. Sygnał kodowany wykorzystywany w laboratorium W laboratorium będziemy badać sygnał CDMA, w którym zakodowane bedzie 10-bitowe słowo (bit startu=1, 8 bitów informacji, bit stopu=0 – patrz rys. 6.8). Sekwencja rozpraszająca będzie pseudolosową sekwencją bipolarną, tj. będzie się składać z wartości +1 i -1. Przy domyślnych ustawieniach długość sekwencji rozpraszającej będzie wynosiła 1000 próbek. 4 W praktyce np. telefonii komórkowej 3G liczba jednoczesnych strumieni danych jest znacznie większa – wtedy potrzeba też wiekszej liczby różnych sekwencji ci (t). Detekcja, filtr dopasowany, odbiór korelacyjny 2014-11-27 23:05 11 6.1.3. Zadania do pracy własnej studenta Podobne zadania mogą znaleźć się na wejściówce. Nie dotyczy to zadań oznaczonych tu jako ”trudne”. 1) Jaka będzie odpowiedź filtru dopasowanego do sekwencji próbek s[n] = [+1, − 1, − 1, + 1, − 1, + 1]? 2) Jeśli na powyższy filtr podamy sygnał s[n] to jaki sygnał otrzymamy na wyjściu (oblicz dla każdej chwili czasu)? 3) Jeśli na powyższy filtr podamy szum biały gaussowski o mocy 1 – jaką moc będzie miał szum na wyjściu? 4) Oblicz wartość stosunku sygnał/szum ρ (patrz wzór (6.2)) na wejściu i na wyjściu filtru. Ile razy wzrósł ten stosunek? 5) Pewien sygnał wytworzono, pobudzając impulsem jednostkowym δ(n) filtr przyczynowy SOI o charakterystyce częstotliwościowej H(ejθ ). Jaką charakterystykę częstotliwościową będzie miał filtr dopasowany do tego sygnału? 6) Rozważ sygnał z czasem ciągłym, którego widmo amplitudowe ma kształt prostokąta od −ω0 do +ω0 , a fazowe równe jest zeru. Jak będzie wyglądał przebieg czasowy tego sygnału? Jaki będzie czas trwania głównej części sygnału? 7) Rozważ rodzinę sygnałów o skończonym czasie trwania równym N i postaci xk (n) = ejn 2πk N 0 dla0 ¬ n < N w pozostałych przypadkach a) Oblicz odpowiedź w chwili n = N −1 przyczynowego filtru dopasowanego do sygnału xk pobudzonego tym sygnałem. b) Wykaż, że odpowiedź filtru dopasowanego do sygnału xk będzie w chwili n = N − 1 równa dokładnie zeru dla każdego innego sygnału z tej rodziny. c) Wykaż, że N-punktowa DFT takiego sygnału zachowa się jak bank filtrów dopasowanych do tej rodziny, tj. na k-tej pozycji w transformacie będzie dokładnie taka sama wartość, jak w chwili n = N − 1 na wyjściu filtru dopasowanego do funkcji xk . Wskazówka: Zauważ, że wszystkie sygnały xk będą na odcinku N próbek miały całkowitą liczbę okresów. 6.2. Eksperymenty do wykonania w laboratorium 6.2.1. Filtr dopasowany 6.2.1.1. Filtr dopasowany do znanej sekwencji próbek Zbadaj odpowiedź filtru dopasowanego do sekwencji próbek podanej przez prowadzącego. Zapisz wektor sygnału s(n) (przykładową wartość zastąp sekwencją podaną przez prowadzącego). Dla lepszej wizualizacji uzupełnij sygnał zerami z obu stron i stwórz wektor in- 12 Odpowiedz Odpowiedz Detekcja, filtr dopasowany, odbiór korelacyjny 2014-11-27 23:05 deksów n odpowiadający sytuacji, gdy zadany sygnał rozpoczyna się5 od próbki o indeksie zerowym. » s=[1 3 -2 2 -3 -1] » s0=[zeros(1,10), s, zeros(1,10)] » n0=[-10:(length(s)+9)] » plot(n0,s0) » title('Sygnal wejsciowy') Utwórz wektor współczynników filtru dopasowanego do sygnału s(n) » h=s(end:-1:1) Zbadaj odpowiedzi filtru dopasowanego: impulsową i na sygnał s0 » delta_n=(n0==0)% same 0 (false) i 1 (true) na pozycji gdzie n=0 » figure(); » y_delta=filter(h,1,delta_n); » plot(n0, y_delta); » title('Odpowiedz impulsowa filtru dopasowanego') » figure() » y_s0=filter(h,1,s0); » plot(n0, y_s0); » title('Odpowiedz filtru dopasowanego na sygnal') Odpowiedz na pytanie: Jaka jest szczytowa wartość odpowiedzi filtru? Porównaj tę wartość z energią sygnału (uzasadnij wynik porównania). Zbadaj odpowiedź filtru na biały szum gaussowski η(n) o wariancji takiej samej, jak średnia moc sygnału s(n) » figure() » p_s=(s*s')/length(s) % moc średnia » eta=sqrt(p_s)*randn(size(s0)) %szum » plot(n0,eta); » title('Szum'); » y_eta=filter(h,1,eta); » figure() » plot(n0, y_eta); » title('Odpowiedz filtru dopasowanego na szum') Odpowiedz na pytanie: Ile razy wzrosła po filtracji szczytowa wartość sygnału (odczytaj z poprzedniego rysunku)? Ile razy – orientacyjnie – wzrosła po filtracji amplituda szumu (oszacuj wartość na rysunku i porównaj z sqrt(p_s))? O ile dB wzrósł stosunek sygnału do szumu? 6.2.1.2. Filtr dopasowany do impulsu prostokątnego Przed dalszą pracą uporządkuj środowisko: » close all; clear all Wygeneruj pojedynczy impuls prostokątny o czasie trwania 20 próbek, uzupełnij go 30 zerami z każdej strony. 5 Z matematycznego punktu widzenia rozpatrujemy sygnały o nieskończonym czasie trwania i ograniczonej energii. Pisząc „sygnał rozpoczyna się…” używamy pewnego skrótu myślowego; dla ścisłości matematyczej powinnismy użyć skomplikowanego sformułowania „sekwencja niezerowych próbek sygnału rozpoczyna się …” 2014-11-27 23:05 Detekcja, filtr dopasowany, odbiór korelacyjny 13 » s=ones(1,20); » s0=[zeros(1,30), s, zeros(1,30)]; Oblicz autokorelację sygnału6 . » plot(xcorr(s)) » title('Autokorelacja impulsu 20-probkowego'); Odpowiedz na pytanie: Jaką wartość szczytową powinna mieć odpowiedź filtru dopasowanego do sygnału badanego, gdy sygnałem wejściowym jest właśnie ten sygnał? Jak odpowiedź filtru jest związana z obliczona przed chwilą autokorelacją? Wyprowadź i zapisz wyrażenie na wartość szczytową takiej odpowiedzi dla impulsu prostokątnego o dowolnej długości L. Stwórz filtr dopasowany do sygnału s(n) i wyświetl jego odpowiedź na sygnał s0 Zanotuj wartość szczytową sygnału na wyjściu filtru. Zweryfikuj poprawność podanego w Twojej odpowiedzi na poprzednie pytanie wzoru, powtarzając eksperyment dla innej długości impulsu. Odpowiedz Zanotuj 6.2.1.3. Filtr dopasowany do impulsu z modulacją pseudolosową Nie zamykaj rysunków z poprzedniego zadania. Wymnóż sygnał z poprzedniego zadania przez ciąg pseudolosowy (biały, gaussowski) » s_wg=s.*randn(size(s)); » s0_wg=[zeros(1,30), s_wg, zeros(1,30)]; Wykonując podobną sekwencję instrukcji jak w poprzednim zadaniu, wyświetl odpowiedź filtru dopasowanego do sygnału z modulacją na taki sygnał. Odpowiedz na pytania: Jakie widzisz zasadnicze różnice w kształcie odpowiedzi filtru w tym zadaniu i w poprzednim? Zwróć uwagę na szerokość listka głównego odpowiedzi. Uzasadnij różnice w szerokości listka głównego. Wskazówka: Jaki kształt ma funkcja autokorelacji szumu białego? (albo:) Ile wynosi współczynnik korelacji dwóch niezależnych zmiennych losowych? 6.2.2. Detekcja sygnałów za pomocą filtru dopasowanego Detektorem optymalnym (wśród układów liniowych i stacjonarnych) dla znanego sygnału ukrytego w białym szumie gaussowskim jest detektor oparty na filtrze dopasowanym i detekcji progowej. Będziemy dalej badać rolę filtru dopasowanego w takim detektorze. W tej części ćwiczenia będziemy posługiwać się gotową funkcją generującą sygnał o znanym kształcie i nieznanym połozeniu czasowym, ukryty w szumie. Funkcja generuje sygnały pojedyncze lub (typ=0) wszystkie naraz, ukryte w jednym ciągu próbek. Funkcja [x, y, np, znak]=c6_gen(typ, sn, n, n1) ma następujące parametry: typ - rodzaj sygnalu ukrytego w szumie 0 - sygnaly 1-5 i dwa znaki sygnału kodowego nalozone na siebie 6 Skrót myślowy – pojęcie autokorelacji dotyczy sygnałów losowych. Sygnał s(n) jest tu deterministyczny, ale możemy go potraktować jako jedną realizację sygnału losowego, zdefiniowanego jako impuls prostokątny o znanym kształcie, lecz losowej chwili początkowej. Wtedy polecenie „oblicz” możemy uściślić jako „wyestymuj z jednej znanej realizacji”… Odpowiedz 14 Detekcja, filtr dopasowany, odbiór korelacyjny 2014-11-27 23:05 1 - sygnal staly 2 - sinusoida 3 - świergot (chirp) 4 - szum kolorowy 5 - świergot (chirp) zespolony 6 - sygnal kodowany CDMA sn - stosunek sygnału do szumu [dB] n - dlugosc rekordu danych (domyślnie 100000) n1 - dlugosc pojedynczego sygnalu ukrytego (domyślnie 10000) parametry wyjsciowe: x - sygnal wyjsciowy y - wzorzec sygnalu ukrytego - wszystkie sygnały podane są w wierszach o poniższych indeksach: 1 - sygnal staly (impuls prostokatny) 2 - sinusoida o losowej czestotliwosci 3 - świergot f=0.1..0.4 4 - szum kolorowy 5 - świergot zespolony 6 - sekwencja rozpraszajaca c1 (kanał pierwszy) 7 - sygnal zakodowany s1=x1*c1 (kanał pierwszy) 8 - sekwencja rozpraszajaca c2 (kanał drugi) 9 - sygnal zakodowany (kanał drugi) np - miejsca poczatków sygnalów Aby zrozumieć pojęcie sygnału kodowanego CDMA i rolę parametrów y([6:9],:) zapoznaj się z rozdziałem 6.1.2. Przed eksperymentami uporządkuj środowisko. » clear all; close all 6.2.2.1. Proste sygnały Zanotuj Zanotuj Poniższą sekwencję eksperymentów przeprowadź kolejno dla wszystkich sygnałów prostych (typ=1…5). Dla każdego z sygnałów wyświetl wyniki analizy różnymi technikami i ustal, przy jakiej wartości S/N można określić chwilę czasową wystąpienia sygnału. Rozpocznij badania przy wartości S/N wynoszącej -30 dB i zwiększaj ją z wybranym skokiem (np. 6 dB). Wyświetl przebieg czasowy, widmo (FFT), spektrogram sygnału. » typ=1; SNR=-30 » [x, y]=c6_gen(typ,SNR); » plot(x); » figure() » %…(student dalej przejawia inicjatywę) Zanotuj (dla każdego sposobu wizualizacji) przy jakiej wartości S/N było możliwe wykrycie sygnału na wykresie. Wyświetl autokorelację sygnału (wzorca)7 » templ=y(typ,:); » plot(xcorr(templ,templ)); 7 Sugerowana nazwa zmiennej templ pochodzi od angielskiego terminu template czyli wzorzec. 2014-11-27 23:05 Detekcja, filtr dopasowany, odbiór korelacyjny 15 Zanotuj maksymalną wartość autokorelacji Przefiltruj sygnał filtrem dopasowanym do wzorca, wyświetl wynik i zanotuj przy jakiej wartości S/N mozliwe jest wykrycie sygnału. Zanotuj 6.2.2.2. Sygnał z rozpraszaniem widma W tym zadaniu spróbujemy zastosować filtr dopasowany do zdekodowania sygnału z rozpraszaniem widma (CDMA). Nie będziemy się odnosić do poprzednich wyników – można przed eksperymentami uporządkować środowisko. » clear all; close all Wygeneruj i zapamiętaj sygnał CDMA przy wartości S/N równej -10 dB. Pomocniczo zapamiętaj wszystkie parametry wyjściowe funkcji c6_gen. » [x, y, np, znak]=c6_gen(6,-10); Zbadaj sekwencję rozpraszającą – wyświetl jej autokorelację i widmo » sscode=y(6,:) » plot(xcorr(sscode,sscode)); » figure(); » plot(abs(fft(sscode))); Zanotuj maksymalną amplitudę autokorelacji i uzasadnij w protokole tę wartość. Zbadaj podobnie cały sygnał x – wyświetl jego autokorelację i widmo Odpowiedz na pytanie: Dlaczego na wykresie autokorelacji widoczna jest “szczotka” krótkich impulsów? Zastosuj filtr dopasowany utworzony na podstawie kodu rozpraszającego do detekcji transmitowanego znaku. Sygnał przetwórz przy pomocy matlab'a, natomiast sam proces detekcji przeprowadź poprzez przyjrzenie się wykresowi. Wskazówka: Ciąg bitów zakodowanego sygnału rozpoczyna się bitem startu (zawsze o wartości 1), a kończy bitem stopu (zawsze o wartości 0). Zanotuj odkodowany znak tekstowy posługując się tablicą kodów ASCII i pokaż do weryfikacji prowadzącemu. Zanotuj Odpowiedz Zanotuj 16 Detekcja, filtr dopasowany, odbiór korelacyjny 2014-11-27 23:05 Tablica kodów ASCII b0-b3 b4-b7 0000 0001 0010 0011 0100 0101 0110 0111 0000 NUL DLE SP 0 @ P ‘ p 0001 SOH DC1 ! 1 A Q a q 0010 STX DC2 ” 2 B R b r 0011 ETX DC3 # 3 C S c s 0100 EOT DC4 $ 4 D T d t 0101 ENQ NAK % 5 E U e u 0 1 1 0 ACK SYN & 6 F V f v 0111 BEL ETB ' 7 G W g w 1000 BS CAN ( 8 H X h x 1001 HT EM ) 9 I Y i y 1010 LF SUB * : J Z j z 1011 VT ESC + ; K [ k { 1100 FF FS , < L \ l | 1101 CR GS − = M ] m } 1110 SO RS . > N ˆ n ˜ 1111 SI US / ? O __ o DEL Przykładowo, znak „6” kodowany jest w 8-bitowym słowie jako 00110110. 6.2.2.3. zadanie ekstra, wyłącznie przy dużym zapasie czasu!!! Detekcja automatyczna Napisz funkcję która automatycznie dokona detekcji. 6.2.3. Przesyłanie sygnału z wielodostępem kodowym Zastosowanie kodów ortogonalnych i dopasowanych do nich filtrów pozwala na jednoczesne przesyłanie wielu strumieni danych (kanałów logicznych) przez jeden kanał fizyczny. Zasymulujemy tu podstawowy mechanizm działania wielodostępu CDMA. 6.2.3.1. Dwa znaki przesyłane jednocześnie Zanotuj Wygeneruj sygnał, w którym będą nałożone w jednym czasie dwa zakodowane znaki. (Uwaga: są w nim ukryte w losowych chwilach czasu wszystkie dostępne sygnały!!) » [x, y]=c6_gen(0,-10); Obejrzyj spektrogram sygnału i zauważ na nim wzrost poziomu szumu szerokopasmowego na pewnym odcinku czasu – prawdopodobnie tu nałożony jest sygnał kodowany (zanotuj położenie tego odcinka). Utwórz dwa filtry dopasowane na podstawie dwóch wzorców sygnału rozpraszającego » h1=y(6,end:-1:1); 2014-11-27 23:05 Detekcja, filtr dopasowany, odbiór korelacyjny 17 Rys. 6.9: Połączenie mikrofonu poprzez przedwzmacniacz » h2=y(8,end:-1:1); i przefiltruj sygnał oddzielnie każdym filtrem, a następnie zdekoduj przesyłane znaki Zanotuj odkodowane znaki i pokaż do weryfikacji prowadzącemu. Zanotuj 6.2.3.2. zadanie ekstra Wykrywanie wielu sygnałów Wykryj wszystkie sygnały ukryte w szumie. 6.2.4. Przetwarzanie sygnału rzeczywistego Zestaw stanowisko do nagrywania sygnału. Ustaw amplitudę na około 1 V (sprawdź oscyloskopem). Połączenie mikrofonu poprzez przedwzmacniacz – patrz rysunek rys. 6.9. Nagraj 10 sekund sygnału akustycznego, zawierającego krótkie gwizdy o szybkozmiennej częstotliwości imitujące świergot, przeplatane z fragmentami mowy: “ćwir, ćwir, Ala ma kota, ćwir, dwa koty, ćwir...” Zastosuj fs = 44100 Hz. » x=GETDATA(10*fs,1,1/fs); 6.2.4.1. Przygotowanie sygnału – Obejrzyj przebieg czasowy sygnału i jego spektrogram. Określ na spektrogramie i zanotuj jakie pasmo częstotliwości unormowanych (fd , fg ) zajmuje gwizd. – Zaprojektuj filtr pasmowy 6-tego rzędu, przepuszczający interesujące pasmo: » [B, A]=butter(6,[fd, fg]); Przefiltruj sygnał zaprojektowanym filtrem. Zanotuj 18 Detekcja, filtr dopasowany, odbiór korelacyjny 2014-11-27 23:05 » y=filter(B,A,x); – Sprawdź na spektrogramie, czy filtr poprawił jakość sygnału. Odsłuchaj sygnał. » putdata(10*x,1/44100,1) 6.2.4.2. Fitr dopasowany utworzony na podstawie rzeczywistego sygnału Zanotuj – Wytnij w dziedzinie czasu jeden odcinek ładnego gwizdu (odsłuchaj go, ewentualnie wybierz inny). Wybrany kawałek sygnału użyj jako wzorzec do utworzenia filtru dopasowanego. – Przefiltruj cały sygnał. – Dwoma kolorami wyświetl na wykresie przebieg czasowy sygnału przed i po filtrze. Wskazówka: Przeskaluj sygnał po filtrze, żeby uzyskać podobne amplitudy na wykresie; koniecznie zanotuj współczynnik skalujący! – Wyznacz i zanotuj stosunek amplitud przed i po filtrze dla: – fragmentu sygnału użytego jako wzorzec świergotu – innych fragmentów świergotu – fragmentów z mową