Polecam bardzo uważnie przeczytać. Homodyna SDR z SSB zbudowana na atmedze328P. Pełno bardzo sprytnych patentów (np. tłumik -13dB na audio który wykorzystuje fakt innej rozdzielczości ADC w zależności od tego jaki VREF się ustawi). Kod opisany i skomentowany. Bez assemblera
Naprawdę ciekawa i fajna lektura, także do nauki atmegi jak i DSP:
https://github.com/threeme3/QCX-SSB
Oczywiście to nie jest radio wyczynowe. Ale jest. Prościej naprawdę chyba się nie da
Witam!
Też jestem pod wrażeniem tego rozwiązania.
Pisałem kiedyś, że połączenie znajomości sprzętu i programowania to najwyższy stopień jaki w elektronice można osiągnąć a to jest właśnie taki przykład gdzie większa część funkcji zarówno nadajnika jak i odbiornika są realizowane w oprogramowaniu.
Pisząc od czasu do czasu jakieś programy na procesory ATMega wiem jak mało da się zmieścić w 32kB pamięci i tym bardziej jestem pełen podziwu dla umiejętności programistycznych autora - Guido (PE1NNZ).
Najpełniejszy opis łącznie z linkami do youtube z pokazem działania urządzenia
znalazłem tutaj.
Rozwiązanie faktycznie prostsze być nie może choć patrząc na to co już udało się zrobić można przypuszczać, że jednak da się coś poprawić. Wrażenie robi porównanie wersji urządzenia starszego, jedynie dla CW, z najnowsza wersją działającą w trybach CW, SSB, AM i FM!. Zwiększenie funkcjonalności spowodowało zmniejszenie o połowę ilości elementów układu bo ciężar funkcji realizowanych do tej pory w sprzęcie został przeniesiony na tą biedną ATMegę 328!
W szczególności, wydaje się, że dostęp do poszczególnych funkcji rozwiązania (np. do regulacji głośności) można byłoby poprawić w kierunku rozwiązania tradycyjnego (pokrętło jak w potencjometrze) a także zwiększenia ilości przycisków funkcyjnych (np. trybu pracy, szerokości pasma etc.) poprawiłoby ergonomię pracy zamiast przedzierania się za pomocą dwóch regulatorów przez gąszcz ustawień konfiguracyjnych.
Na razie załapałem ogólną ideę rozwiązania ale widzę, że jest to kopalnia pomysłów do szczegółowego zrozumienia a może nawet do wykorzystania.
Czytając kometarze pod opisami urządzenia najbardziej spodobał mi się ten, gościa, który napisał, że nie zrozumiał ani słowa z opisu technicznego ale wymiękł pod wrażeniem funkcjonalności rozwiązania.
L.J.
Czytałem kilka razy kod który jest na githubie, przyznam że sprawia wrażenie (zresztą sam autor przyznaje) raczej eksperymentalnego i pisanego "na brudno", można by sporo poprawić ale nie o to chodzi
Gdyby wzmacniacz po detektorze kwadraturowym, zastąpić wzmacniaczem o regulowanym wzmocnieniu (np. dodając potencjometr cyfrowy) to dynamika odbiornika by bardzo wzrosła.
Jedno czego nie do końca rozumiem to fakt że (w kilki miejscach to jest napisane w starym poście Guido) amplituda nie jest do końca konieczna do odtworzenia SSB w nadajniku.
Kwestia obsługi menu to jest inna sprawa - przyznam że dla mnie napisane menu jakiegokolwiek to męka, głównie dlatego że jest to żmudne i śmiertelnie nudne, a wyobrażenia programisty o ergonomii są zwykle bardzo dalekie od tego co na ten temat będzie myślał użytkownik
(20-05-2020 10:42)SQ5KVS napisał(a): [ -> ]Jedno czego nie do końca rozumiem to fakt że (w kilki miejscach to jest napisane w starym poście Guido) amplituda nie jest do końca konieczna do odtworzenia SSB w nadajniku.
Masz na myśli ten fragment?
"
Though the amplitude information is not mandatory to make a SSB signal intelligable, adding amplitude information improves quality."
Bo jakby się mocniej zastanowić, to faktycznie nie jest.
Ja to rozumiem następująco:
Zauważ, że właściwie samą modulacją fazy (która w tym rozwiązaniu jest przerabiana na modulację częstotliwości - na jedno wychodzi) można stworzyć sygnał SSB, tylko cała wstęga będzie miała jednakową amplitudę. Efekt będzie podobny do włączonej 100% kompresji audio przy nadawaniu SSB. Czyli zarówno ciche szepty jak i krzyczenie do mikrofonu, będzie odbierane na takim samym, maksymalnym poziomie amplitudy. Nie zmienia to jednak faktu, że taki sygnał jest ciągle zrozumiały ("
intelligable") dla odbiorcy, choć dość nieprzyjemny i mało naturalny, bo w takiej wstędze nie mamy informacji o amplitudzie sygnału, ale ciągle mamy pełną informację o częstotliwości/fazie sygnału modulującego.
Dopiero wprowadzenie modulacji amplitudy takiej wstęgi (odpowiednik wyłączenia kompresji audio przy nadawaniu) wprowadza dźwięk bardziej naturalny i przyjemny w odbiorze, choć oczywiście mniej efektywny pod względem oddawanej mocy w danym paśmie.
To urządzenie uważam za genialne i wiele już się z niego nauczyłem, choć dopiero zamierzam wgryźć się w kod źródłowy...
Pozdrawiam,
Rafał SP3GO
Jak się zastanowić to powinna być prawda, aczkolwiek przy kompresji mamy stałą średnią amplitudę. Nawet przy modulacji powiedzmy, stałą częstotliwością i amplitudą 1kHz, 1V (więc mamy stałą amplitudę m.cz.), po uczynieniu z tego SSB mamy też stałą amplitudę i częstotliwość. Jak się pomacha palcami to wychodzi że:
Dajmy na to mamy fale nośną 10MHz.
Zmieniamy w sposób ciągły fazę sygnału o taki (bardzo mały) czynnik aby kolejne "zbocza" sinusa były od siebie bliżej o 1/10000 niż zwykle.
Uzyskujemy falę 10.001MHz czyli to samo co przy zmodulowaniu przez SSB.
Tym niemniej to jakiś pomiot .....
Zgadza się, dlatego z tą kompresją to tylko takie zgrubne porównanie. Kompresja ma sens tam, gdzie mamy szersze pasmo (jak 2400Hz dla SSB) do "wyrównania" do stałego, wysokiego poziomu amplitudy.
A w tym rozwiązaniu chodzi jeszcze o częstotliwość samplowania sygnału audio, bo różnica w fazie do nastawienia na Si5351 obliczana jest pomiędzy poszczególnymi próbkami
Ogólnie genialny pomysł - bardzo mi się podoba!
Trochę już poczytałem kod (jestem w 1/3 całości). Są tam fragmenty, które mnie rozwaliły (w sensie pozytywnym: "to tak można?"
#define magn(i, q) (abs(i) > abs(q) ? abs(i) + abs(q) / 4 : abs(q) + abs(i) / 4) // approximation of: magnitude = sqrt(i*i + q*q); error 0.95dB
// Calculate the division ratio. 900,000,000 is the maximum internal PLL freq (official range 600..900MHz but can be pushed to 300MHz..~1200Mhz)
Pozdrawiam,
Rafał SP3GO
To pierwsze to chyba ten algorytm:
https://en.m.wikipedia.org/wiki/Alpha_ma..._algorithm choć mi wychodził z niego większy błąd.
Drugie - podobno starszych Si się nie dało ponad 900MHz
Btw, zapominam napisać do Przemka. Z mojego rozumienia dokumentacji do Si5351, w trybie "integer" można mieć tylko dwa wyjścia na plla i pllA jedno i pllB drugie, Trzecie musi być podłączone do a lub b w trybie fractional, jeśli ma mieć dowolnje różną częstotliwość?
Problem z ssb można zlikwidować modulując sygnał jego obwiednią, można użyć np. wzm. klasy D audio
ja gryzę to dsp, ale za głupi jestem
mrn