HomeMade
TRX SDR-IF jako optymalne rozwiązanie SDR dla radioamatora - Wersja do druku

+- HomeMade (http://sp-hm.pl)
+-- Dział: Urządzenia nadawczo odbiorcze KF (/forum-62.html)
+--- Dział: Urządzenia i oprogramowanie SDR (/forum-68.html)
+--- Wątek: TRX SDR-IF jako optymalne rozwiązanie SDR dla radioamatora (/thread-954.html)



TRX SDR-IF jako optymalne rozwiązanie SDR dla radioamatora - 3Z9N - 12-09-2011 12:12

Witam,

Wiele różnych rozwiązań SDR-ów już powstało, a najbardziej rozpowszechniło się rozwiązanie tzw SDR-IQ podłączone do karty dźwiękowej komputera PC, chyba dlatego, że jest najprostsze (najmniejsza liczba elementów). Jednakże takie rozwiązanie pociąga za sobą wiele dodatkowych wymagań dotyczących komputera PC i karty dźwiękowej. Najlepiej jeśli komputer jest bardzo szybki, a karta dźwiękowa profesjonalna (24-bitowa). Potrzebne jest też dobre oprogramowanie, które nie będzie pochłaniało zbytnio zasobów komputera, a z tym bywa różnie. Dostępne oprogramowanie SDR-IQ w zasadzie zawsze opiera się na przetwarzaniu sygnału w dziedzinie częstotliwości poprzez tzw FFT (Fast Fourier Transform) co powoduje, że bufor spróbkowanego sygnału musi być odpowiednio duży (np. 2048 bajtów przy częstotliwości próbkowania 48000Hz), aby zniekształcenia wprowadzane przez FFT były jak najmniejsze. Takie rozwiązanie wprowadza dosyć duże opóźnienia sygnału (latencję) między wejściem a wyjściem rzędu kilkuset milisekund co jest dosyć niewygodnym zjawiskiem zwłaszcza dla urządzeń typu SDR. Daje się to odczuć podczas przestrajania lub podczas nadawania zwłaszcza, gdy chcemy używać VOX-a lub przy nadawaniu CW.
Poszczególne rozwiązania urządzeń SDR mają swoje wady i zalety. Przetestowałem kilka różnych rozwiązań SDR i muszę powiedzieć, że dla mnie optymalnym rozwiązanie SDR-a jest rozwiązanie typu SDR-IF (czy też zamiennie IF DSP), tzn takie, które polega na przetwarzaniu sygnału w 2 stopniu IF (2 pośrednia) pracującym na częstotliwości ok kilkunastu kHz (takiej, którą potrafi przetworzyć karta dźwiękowa). W urządzeniu takim 1 pośrednia pracuje na wyższej częstotliwości np 9MHz (lub wyższej), a druga pośrednia jak wyżej wspomniałem na częstotliwości kilkunastu kHz.
Co daje nam takie rozwiązanie ?
Może zacznę od wad:
Wady:
- potrzeba dobrych filtrów pasmowych na wejściu odbiornika - głównie dla odseparowania (wytłumienia) częstotliwości lustrzanych powstających w pierwszej przemianie
- potrzeba odpowiednio dobrego mieszacza (w 1-szej pośredniej)
- filtr kwarcowy (w 1-szej pośredniej) tzw roofing filter, który w tym wypadku służy głównie do wytłumienia częstotliwości lustrzanej powstającej w następnym (drugim) stopniu przemiany.
- węższe spektrum (dotyczy wizualizacji), zależne od szerokości pasma filtra kwarcowego
Zalety:
- przy zastosowaniu dobrego mieszacza z IP3 min +10dBm lepsza odporność na przesterowania dalszych stopni odbiornika dzięki roofing filtrowi niż w typowym SDR-IQ
- można zastosować prawie każdą kartę dźwiękową (najlepiej jeśli jest 24-bitowa - lepsza dynamika) - przy przetwarzaniu IQ nie każdą kartę można zastosować (chodzi o współbieżność kanałową oraz szumy)
- wystarczy 1 kanał audio dla odbiornika (drugi można zastosować dla nadajnika) - nie trzeba stosować przełączania wejść i wyjść pomiędzy odbiorem i nadawaniem
- bufor przetwarzania sygnału o dowolnej wielkości potęgi liczby 2 (dla przetwarzania DSP - nie FFT) - zależnej tylko od mocy obliczeniowej procesora (w praktyce ok 128 - 512 bajtów) co daje nam małe opóźnienie (latencję) przetwarzanego sygnału o wartości kilkudziesięciu milisekund
- bardzo dobre wytłumienie częstotliwości lustrzanej 2 pośredniej (zależnej od zastosowanego filtra kwarcowego) - z reguły więcej niż 80dB! (już dla filtra 4-kwarcowego, przy odstępie kilkunastu kHz)
- bardzo dobre wytłumienie niepożądanej wstęgi bocznej - z reguły więcej niż 80dB! w całym zakresie (zależy tylko od użytych filtrów DSP) - bardzo trudne do uzyskania w typowym SDR-IQ, a zwłaszcza na wyższych pasmach
- stosunkowo niski koszt wykonania takiego urządzenia

Myślę, że przytoczone powyżej wady są do "przeskoczenia" przy odpowiedniej konstrukcji odbiornika.
Jeszcze jedną wadą, która nie dotyczy raczej samego urządzenia, jest brak odpowiedniego oprogramowania. Te które jest dostępne opiera się na przetwarzaniu FFT, ale myślę, że to też jest do "przeskoczenia" (przynajmniej w moim przypadku tak się już stało).

Urządzenie typu SDR, jak to ktoś kiedyś powiedział, to głównie odpowiednie oprogramowanie. Właśnie z powodu braku odpowiedniego oprogramowania zająłem się pisaniem takiego programu i po wielu różnych próbach program taki powstał i działa na moim urządzeniu. Jest na razie w roboczej wersji i trudno się nim chwalić, ale najważniejsze, że działa i spełnia moje oczekiwania. Program, który napisałem działa pod systemem Linux. Opóźnienie (latencja) sygnału jakie udało mi się uzyskać wynosi ok 40ms, co daje bardzo duży komfort przy pracy z takim urządzeniem. Systemu Linux używam właśnie dlatego, że sterowniki linuxowe (Alsa) wnoszą bardzo małe opóźnienia - nie do osiągnięcia w takich systemach jak np Windows (nawet ze sterownikami ASIO).
Postaram się systematycznie podawać informację o postępach z prac nad moim urządzeniem i oprogramowaniem. Może ktoś mógłby się również podzielić swoimi doświadczeniami z SDR-IF - zachęcam.
W tytule wątku podałem, że SDR-IF może być optymalnym rozwiązaniem dla radioamatora, ponieważ jego cechy bardziej odpowiadają cechom typowego radia. Wszystkie mankamenty typowego radia SDR wychodzą głównie wtedy, gdy chcemy je zastosować do nadawania. Urządzenie SDR-IF z małymi opóźnieniami bardziej nadaje się do nadawania niż typowy SDR-IQ i właśnie dlatego zastosowałem u siebie tego typu rozwiązanie.

Pozdrawiam wszystkich SDR-owców Wink
Krzysiek SP9NLD


RE: TRX SDR-IF jako optymalne rozwiązanie SDR dla radioamatora - GREG - 20-09-2011 10:28

Dziękujemy Krzysztofie za wykład. Czekamy na zdjęcia budowanego przez Ciebie układu.
Czy pracujesz również nad układem DSP?
Może jest szansa na zaprezentowanie schematu SDR-IF ?

Pozdrawiam
Grzegorz


RE: TRX SDR-IF jako optymalne rozwiązanie SDR dla radioamatora - SP9FKP - 28-09-2011 18:14

A mnie się wydaje, że FFT wykorzystywane jest wyłącznie w celu obrazowania amplitudy widma na osi częstotliwości w postaci analizatora lub wodospadu i nie ma żadnego wpływu na opóźnienie sygnału. To powstaje przede wszystkim na wskutek filtrowania filtrami FIR/IIR, gdzie jak wiadomo dla uzyskania odpowiedniej stromości i tłumienia poza pasmowego trzeba ileś tam "odczepów" w ciągu kolejnych próbek z odpowiednimi współczynnikami. Oczywiście bufory I/O też są konieczne bo system potrzebuje czasu na wewnętrzne operacje i to źródło kolejnych opóźnień. Jest więc uzasadnione zastosowanie dobrego filtru przed DSP, bo wtedy można zmniejszyć opóźnienie w filtrach DSP. Przesunięcie obróbki do kilkunastu kiloherców jest uzasadnione znacznym obniżeniem szumów 1/f, charakterystycznym dla półprzewodników ale podnosi wymagania na szybkość przetwarzania bo próbki trzeba obrabiać z częstotliwością przykładowo 10 razy większą od wymaganego pasma przenoszenia. Tak więc dyskutujmy nad rozsądnym kompromisem ...


RE: TRX SDR-IF jako optymalne rozwiązanie SDR dla radioamatora - 3Z9N - 04-10-2011 23:47

Witam kolegów,
Trochę późno odpowiadam, ale byłem w ostatnim czasie bardzo zajęty zawodowo i po prostu nie miałem czasu tutaj zajrzeć. Myślę, że niedługo pochwalę się tym co już zrobiłem. Wracając do tego co napisał kolega Piotr SP9FKP, to niestety właśnie tak jest, że w znanych programach takich jak PowerSDR, Winrad, czy też SDRMax przetwarzanie sygnału odbywa się w dziedzinie częstotliwości tzn w FFT. Przestudiowałem dosyć dobrze źródła tych programów i mówię to w całej odpowiedzialności, zresztą wzorując się na programie PowerSDR, który korzysta za źródeł programu "dttsp" (notabene napisanego pierwotnie pod Linux'em) również napisałem sobie taki programik, aby przetestować jak to działa. Niestety programy takie potrzebują dużego bufora przy samplingu 48kHz rzędu 2048 bajtów, a przy samplingu 96kHz jeszcze większego (4096) i dlatego działają z dużą latencją (opóźnieniem). Zresztą wystarczy poczytać opinie (na eham.net) ludzi, którzy pracują ze sprzętem i oprogramowaniem FlexRadio. To co widzimy na ekranie monitora - spektrum - jest dokładnie tym co jest przetwarzane w przychodzącym sygnale, a dokładnie są to "sklejone" dwa obrazy sygnałów tzw "real" i "image" ( sygnał rzeczywisty 0...fp/2 i lustrzany -fp/2...0 ), dlatego możemy zauważyć w środku spektrum (przy braku sygnału z anteny) "szpilę" szumów bardzo niskich częstotliwości, która rozciąga się od DC do ok 1 kHz ( w jedną i w drugą stronę spektrum ). To oczywiście bardzo ładnie działa i mamy ładne spektrum sygnału, ale jak to bywa w życiu wszystko ma swoje zalety i wady. Problemy zaczynają się przy nadawaniu, a głównie przy przechodzeniu z odbioru na nadawanie, gdzie przytoczone wcześniej opóźnienia dają się we znaki. Najbardziej jest to odczuwalne przy emisji CW, gdzie zwłoka pomiędzy nadawaniem i odbiorem powinna być jak najmniejsza (max rzędu kilkudziesięciu milisekund).
W takim wypadku nadawanie CW powinno być rozwiązane w inny sposób - osobny odbiornik i osobny nadajnik - pracujące niezależnie od siebie. Tutaj sytuacja się dosyć mocno komplikuje. Widziałem też rozwiązanie takie, gdzie zastosowano dwie karty dźwiękowe, gdzie jedna obsługuje odbiornik, a druga nadajnik. Pomysł dobry, ale oprogramowanie musi to uwzględniać, no i dochodzi nam większa ilość użytego sprzętu (druga karta dźwiękowa).

Pomysł przetwarzania sygnału w tzw drugiej IF ( drugiej pośredniej) rzędu kilkunastu kHz + przetwarzanie w tzw dziedzinie czasu ( tradycyjny sposób filtrowania - nie FFT) jest w porównaniu z tym co wcześniej napisałem o wiele prostszy. Wymaga tylko jednego kanału karty dźwiękowej (czy też kodeka) przy odbiorze i jednego przy nadawaniu. Nie trzeba tutaj mieć wyprowadzonych sygnałów IQ, ponieważ są one tworzone wewnątrz programu DSP, poza tym nie jesteśmy tutaj zobligowani wielkością bufora przetwarzanego sygnału, co wyraźnie zmniejsza latencję sygnału na wyjściu układu. Dodatkowo tłumienie niepożądanej wstęgi bocznej nie jest uzależnione od wykonania detektora kwadraturowego IQ i jest ono znacznie większe (rzędu 90dB). Myślę, że właśnie z tych powodów tego typu rozwiązanie jest obecnie stosowane w radiach z przetwarzaniem DSP.

Przepraszam za nudną rozprawkę naukową na ten temat, ale powinniśmy znać zasady, które rządzą przetwarzaniem sygnałów w urządzeniach typu DSP, jeśli takowe chcemy budować.
Dzisiejsze rozwiązania takie jak Elekraft K3 lub Picastar opierają się właśnie na tego typu rozwiązaniu i jak wszyscy wiemy są bardzo dobre. Oczywiście budowanie systemu DSP opartego na kodeku i procesorze DSP nie jest takie proste, dlatego prostszym rozwiązaniem jest wykorzystanie komputera PC i karty dźwiękowej. Komputer + karta dźwiękowa to "gotowy" system DSP nie wymagający żadnego wysiłku w budowanym przez nas urządzeniu. Jedyny wysiłek polega na napisaniu odpowiedniego programu, który zaprzęgnie do pracy ten system Wink

Pozdrawiam,
Krzysiek sp9nld


RE: TRX SDR-IF jako optymalne rozwiązanie SDR dla radioamatora - 3Z9N - 27-10-2011 23:56

(20-09-2011 10:28)GREG napisał(a):  ...Może jest szansa na zaprezentowanie schematu SDR-IF ?

Witam,

Ostatnio jestem bardzo zajęty i mam mało czasu na konstrukcje i doświadczenia.
Tak jak obiecałem systematycznie będę podawał moje doświadczenia z układami SDR.
W załączniku zamieszczam schemat toru odbiorczego. Odbiornik jest bardzo prosty, ale ma bardzo dobre parametry. Dynamika układu wynosi ok 100dB. Jeśli by wprowadzić AGC, to dynamikę można zwiększyć jeszcze bardziej - wszystko przed nami. Czułość układu jest też dobra. Nie mierzyłem, ale dzięki niskoszumnemu wzmacniaczowi na układzie SGA3286 czułość jak dla mnie jest wystarczająca. Na wyższe pasma można dołożyć jakiś wzmacniacz wstępny, ale na pasma 160-20 m nie jest to konieczne. Resztą zajmuje się komputer z kartą dźwiękową 24-bitową, u mnie jest to Asus Xonar D1 ze swoją dynamiką ponad 100 dB. Częstotliwość środkową 2 pośredniej ustaliłem na 13 kHz. Samplerate karty dźwiękowej ustalone jest na 48 kHz (max pasmo przenoszenia 24 kHz). Postaram się wkrótce dorobić do mojego programu nagrywanie i zamieszczę próbki działania odbiornika. Mój SDR-IF działa nie gorzej od mojego IC-718. Mam obydwa na biurku i mogę porównać, bez żadnego przechwalania się. Mogę dodać, że audio z mojego SDR-a jest lepsze niż z IC-718, a automatyka działa lepiej niż ta z IC-718.
Jako VFO używam układu Si570 z prostym sterownikiem na procesorze PIC podłączonym poprzez port USB z komputerem. Do sterownika podłączony jest również encoder do strojenia. VFO można przestrajać zarówno z programu, jak i przez encoder (zamiennie). Zmiana częstotliwości VFO jest monitorowana przez program SDR. Jak dokończę interfejs graficzny programu, to umieszczę jakieś zrzuty ekranowe.

Pozdrawiam,
Krzysiek


RE: TRX SDR-IF jako optymalne rozwiązanie SDR dla radioamatora - 3Z9N - 23-04-2012 21:49

Witam wszystkich po dosyć długim czasie mojej nieobecności tutaj na forum.
Ostatnio poszły trochę do przodu moje prace nad SDR-IF, a wyniki zamieściłem na mojej stronie www, którą też dopiero co uruchomiłem. Zapraszam zainteresowanych do obejrzenia i posłuchania moich efektów z SDR-IF.

http://www.sdr.pdg.pl/index.php/SDR-IF

Pozdrawiam,
Krzysztof sp9nld


RE: TRX SDR-IF jako optymalne rozwiązanie SDR dla radioamatora - 3Z9N - 03-07-2012 13:46

(02-07-2012 17:06)SP1HQA napisał(a):  Oglądałem i słuchałem. Pięknie słychać no i stonowana, bez zbędnych bajerów grafika. Moje gratulacje.
Może masz już jakąś wizję pokazania szerszego spektrum odbiornika, bo tu widać tak na oko ok. 6 kHz. Trzymając kciuki za powodzenie projektu, będę z uwagą śledził ciąg dalszy.
Pozdrawiam - witek sp1hqa

Witam,

Prawdę mówiąc, to ja ostatnio zająłem się trochę moim SDR-em typu IQ, z tym, że oprogramowanie będzie tego samego typu co dla SDR-IF. Jednak spektrum będzie szersze (już jest) i będzie wynosić 24 kHz. Wynika to z samplingu karty (48kHz) i z metody działania dsp (metoda filtrowa), gdzie całkowite pasmo przenoszenia jest 48kHz/2, czyli 24kHz. Co do oprogramowania, to zrobiłem już wersję standardową i wersję typu klient-serwer (serwer i klient jako oddzielne programy). Mam z tym pewny dylemat, bo nie wiem na co się zdecydować. Zrobiłem np. klienta, który jest napisany w Javie i działa bardzo dobrze, powiedziałbym nawet, że nadzwyczaj dobrze. Biorąc pod uwagę, że Java pracuje pod wirtualną maszyną, to szybkość działania programu jest jedynie troszeczkę mniejsza niż programu napisanego w C++ !!!
Takich i innych pomysłów mam dużo, a czasu trochę mało, dlatego u mnie wszystko idzie raczej powoli. Mam też pomysl, żeby napisać taką konsolę pod OpenGL-em, gdzie można robić różne graficzne cuda, jakie daje OpenGL.
Poniżej zrzut ekranu z consoli SDR napisanej w Javie...

Pozdrawiam, Krzysiek sp9nld


RE: TRX SDR-IF jako optymalne rozwiązanie SDR dla radioamatora - 3Z9N - 09-07-2012 0:07

(08-07-2012 15:57)SP1HQA napisał(a):  Chyba zacznę zbierać elementy...

Jedna uwaga - ten obraz spektrum pochodzi z mojego SDR-a typu IQ. To znaczy odbiornik jest wykonany na switch-ach FST3125 i wzmacniaczach MCP6022. VFO jest na Si570 + sterownik na procesorze PIC24HJ128GP202. Nadajnik jest w tym wypadku tylko na CW i pracuje niezależnie od programu SDR (kluczowany jest poprzez sterownik, który ma w sobie automatycznego keyera). Mogę pracować bezpośrednio z klucza i oczywiście mgę też kluczować z mojego programu SDR pracując na klawiaturze. Odbiornik w tym wypadku jest trochę lepszy niż ten w SDR-IF (lepsza odporność na modulację skrośną). SDR-IF pomyślałem głównie jako do pracy na SSB.
Prawdę mówiąc wolę pracować na CW, dlatego ten SDR jest pomyślany do pracy na CW (nadawanie). Jest bardzo prosty, tani i bardzo dobrze działa, Myślę, że lepiej niż niejeden fabryczny transceiver, a miałem ich już kilka i do pracy na CW żaden z nich nie był lepszy od tego SDR-a Nie mówiąc już o tym, że mając do dyspozycji spektrum, nie tylko słyszymy, ale i widzimy to, co dzieje się na paśmie i to właśnie jest piękne. Fabryczne urządzenia, które mają takie możliwości jak mój SDR są ok 10 razy droższe od niego. Mój fabryczny TRX stoi obok na biurku i służy tylko do testowania moich konstrukcji, natomiast łączności wolę przeprowadzać na własnych urządzeniach. Obecnie chcę dopracować program klienta (tzn konsoli). W przyszłości chcę też zrobić przesyłanie dźwięku poprzez sieć LAN (na razie jest tylko sterowanie i spektrum, a dźwięk po kablach audio).
Jeśli będzie jakieś zainteresowanie, to mogę udostępnić schematy i program, ale jak mówię, program jest dopiero w fazie rozwoju i jeszcze będzie zmieniany. Ta konsola napisana w Javie działa - robię na niej łączności i to dx-owe Wink , natomiast docelowo będzie napisana w C++ tak, aby mogła działać również w trybie pełnoekranowym (fullscreen).

Pozdrawiam,
Krzysiek SP9NLD


RE: TRX SDR-IF jako optymalne rozwiązanie SDR dla radioamatora - 3Z9N - 12-07-2012 1:06

U mnie cz. pośrednia jest 24,576MHz (filtr kwarcowy wykonany z popularnych kwarców). Pośrednia oczywiście może być na 9MHz. Wyższa pośrednia pozwala bardziej odsunąć się od częstotliwości lustrzanych. Przy niższej trzeba stosować dobre filtry pasmowe aby nie dawały się we znaki lustrzanki. Jeśli chodzi o przestrajanie, to jeśli przestrajam VFO, to przesuwa się cała skala, a obraz filtra I pasma przepustowego pozostaje w miejscu. Na ten moment ja nie używam u siebie enkodera do przestrajania, a po prostu przesuwam skalę myszką lub klikając prawym przyciskiem myszki ustawiam się na daną częstotliwość, wtedy wybrana częstotliwość "przesuwa" się na środek spektrum tam, gdzie jest obraz filtra. Jeśli kto woli, to można oczywiście podłączyć enkoder i przestrajać gałką, ale z doświadczenia, to szybciej się jest wstrajać myszką, przynajmniej dla mnie.

Pozdrawiam, Krzysiek