Odpowiedz 
 
Ocena wątku:
  • 0 Głosów - 0 Średnio
  • 1
  • 2
  • 3
  • 4
  • 5
Joker SDR - Simple SDR HF transceiver project
SP9DK Offline
Damian

Liczba postów: 6
Dołączył: 17-08-2025
Post: #4
RE: Joker SDR - Simple SDR HF transceiver project
W wątku dyskusyjnym poproszono mnie o opis działania programu, więc rozwinę ciekawsze rzeczy jak powstawały i jak zostały zastosowane.
Kilka słów o metodach oddzielania jednej wstęgi, jakie poznawałem na wczesnych etapach uruchamiania odbiornika na płytce prototypowej.
Na początku próbowałem wyobrazić sobie zawinięty sygnał wokół DC z nałożonymi na siebie wstęgami po demodulacji na wyjściu mieszacza.
Przybliżeniem tego był dla mnie sznurek owinięty na słupku, gdzie oba końce sznurka skierowane były w jedną stronę jako rzeczywiste sygnały.
Zmiana częstotliwości VFO odpowiadała przewijaniu sznurka ciągnąc jeden z końców i popuszczając drugi. To bardzo uproszczona analogia.
Bazując na takim sposobie myślenia o wstęgach, łatwiejszą metodą do opanowania było użycie FFT.

İmage

Metoda FFT pozwoliła rozwinąć ten sznurek w obu kierunkach, gdzie częstotliwości „ujemne” względem DC skierowane były w lewo, a dodatnie w prawo.
Teraz sznurek przy zmianie VFO nie owijał się wokół DC, ale cały przesuwał w lewo lub w prawo. Taki obraz był dla mnie naturalny i łatwy do wyobrażenia.

İmage

W programie zamiast sznurka jest bufor wynikowy po przeprowadzonej transformacji FFT. Składnikami tego bufora są tzw. biny zawierające pary liczb zespolonych.
Każdy bin reprezentuje informację o danej częstotliwości, a ilość tych binów ma wpływ na rozdzielczość całego sygnału i bardziej precyzyjne filtrowanie.
Przykładowo jeśli nie chcę słyszeć niczego powyżej 3kHz to wyliczam, od którego binu zaczynają się te niechciane częstotliwości i po prostu zeruję ich wartości.
Podobnie zeruję biny, które określają częstotliwości znajdujące się po przeciwnej stronie DC. Zmodyfikowany w ten sposób bufor poddaję odwrotnej transformacji FFT.
Ostatecznie otrzymany sygnał w domenie czasu nie będzie zawierał już informacji, które zostały wyzerowane. W wielkim skrócie tak właśnie działał pracujący układ.
Zestaw binów jest podstawą do tworzenia dowolnego widma na ekranie, chociaż najbardziej wygodnym jest widok wodospadu, linia pikseli to obraz binów.
Dzięki sprawdzaniu działania tej metody i sposobów jej realizacji, nauczyłem się najwięcej jeśli chodzi o operowanie danymi w buforach przetwarzania sygnałów.

İmage

Odniesiony sukces i zadowolenie z działającego programu zachęciły mnie do prób z metodą bardziej dla mnie złożoną i trudniejszą do wyobrażenia.
Chodzi o metodę fazową. Piotr wiele razy tłumaczył mi cierpliwie jak dokładnie to działa, aż w końcu załapałem i za którymś razem mogłem w głowie
wytworzyć odpowiadającą temu animację w taki sposób, żeby była przeze mnie zrozumiała i logicznie prowadziła do wygaszenia jednej wstęgi.
Przesunięcia fazowe wykonywane są dwa razy, pierwsze realizowane jest na sygnale w.cz. za pomocą dwóch demodulatorów.
Drugie przesunięcie fazowe wszystkich składowych jednego z sygnałów m.cz. wykonane jest za pomocą transformaty Hilberta.
Łącząc ze sobą kolejne próbki pierwszego sygnału z próbkami sygnału po transformacie Hilberta, poprzez ich dodawanie lub odejmowanie,
otrzymujemy rzeczywisty sygnał częstotliwości zawierający dane tylko jednej wstęgi, druga wstęga zostaje wytłumiona.
Chociaż trudno jest mi zrozumieć stojącą za tym złożoną matematykę to potrafię jednak poprawnie jej używać otrzymując zamierzony efekt.
Cała operacja dokonywana jest wyłącznie w domenie czasu i nie ma tutaj możliwości na pozyskanie danych wyświetlonych na wodospadzie.
Przerabiając obie metody w celu uzyskania odbioru jednowstęgowego, najpierw FFT, potem fazowo, nie zauważyłem wyraźnych różnic w odsłuchu.
Obie techniki są interesujące, mają zupełnie inne podejście do przetwarzania sygnałów, ale wydają się być równie skuteczne.
Joker używa aktualnie metody fazowej dla audio i FFT dla wodospadu, korzystając w całości ze zgromadzonych doświadczeń.
Można więc powiedzieć, że to co słychać w głośniku nie jest tym co widać na wodospadzie, ponieważ są to dwie niezależne ścieżki.
Wzrok karmimy metodą FFT, słuch metodą fazową, ale jedno i drugie pracuje na tej samej częstotliwości VFO, więc odczuwamy spójność.

İmage

Innym ciekawym rozwiązaniem, tym razem w sekcji nadajnika telegraficznego, jest użycie kołowego bufora czasowego.
Piotr kiedyś powiedział mi, że dobrze byłoby gdyby wyjściowy sygnał CW posiadał niewielkie stałe opóźnienie.
Zbudowany został bufor, który tnie upływający czas na jednakowo krótkie odcinki zapisując stan sygnału telegraficznego.
Po upływie zadanego opóźnienia bufor obracając się odtwarza na wyjściu to co wydarzyło się wcześniej na jego wejściu.
Kołowa praca bufora nie wymaga nieskończonej jego długości ponieważ po pewnym czasie dane są nadpisywane,
za to cały bufor może obracać się nieskończoną ilość razy tak długo jak będzie trwało nadawanie znaków.
Pozwala to układowi nadajnika włączyć się przed rozpoczęciem wysyłania sygnałów.

İmage

Trochę uwagi skupiłem przy funkcji analizującej zapisane teksty w blokach pamięci i zamianę ich na kropki kreski.
Fajnym sposobem na zapisanie znaków alfabetu Morse’a było użycie jednowymiarowej tablicy liczb 16 bitowych.
Myślałem jakiś czas nad tym, w jaki sposób, wygodny i najbardziej kompaktowy, zapisać wszystkie potrzebne znaki.
Pomysłem były liczby 16 bitowe (0 .. 65535) , gdzie dla każdej litery lub cyfry była jedna taka liczba, prosto i elegancko.
Tak wygląda tablica wszystkich liter A .. Z mieszcząca się na jednej linii, gdzie każda litera jest jedną liczbą w tym zestawie.

{13, 3111, 3131, 311, 1, 1131, 331, 1111, 11, 1333, 313, 1311, 33, 31, 333, 1331, 3313, 131, 111, 3, 113, 1113, 133, 3113, 3133, 3311}

Tak samo wygląda tablica wszystkich cyfr 0 .. 9. Pomimo tego, że cyfry składają się z pięciu znaków, reprezentuje je jedna liczba.

{33333, 13333, 11333, 11133, 11113, 11111, 31111, 33111, 33311, 33331}

Funkcja czytająca litery i cyfry z tekstu, sprawdza przy danej liczbie kolejno jej jedności, dziesiątki, setki itd., tak generowane są znaki.
Chociaż nie znam telegrafii, nie było to wymagane na egzaminie, współpracując z Piotrem przy tej modulacji nauczyłem się
wiele nieznanych mi wcześniej rzeczy , zaczynając od sposobu prowadzenia łączności i kończąc na realizacji technicznej.

İmage

UWAGA : W celu zachowania czytelności wątku i możliwości wygodnej aktualizacji wpisów,
bardzo proszę wszystkich o ewentualne dyskusje w przygotowanym do tego miejscu.
Wpisy tutaj będą tworzyły osoby zaangażowane w projekt, przedstawiając bieżące postępy z prac.
Link do dyskusji >>> tutaj <<<
(Ten post był ostatnio modyfikowany: 24-08-2025 21:08 przez SP9DK.)
24-08-2025 21:08
Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
Odpowiedz 


Wiadomości w tym wątku
RE: Joker SDR - Simple SDR HF transceiver project - SP9DK - 24-08-2025 21:08

Skocz do:


Użytkownicy przeglądający ten wątek: 1 gości