Chciałbym pokazać więcej nagrań z działania obrazowania fft ale w moich warunkach antenowych, z zakłóceniami na poziomie S9 a nawet więcej na niższych pasmach jest to niemal niemożliwe.
Niemniej, udało mi się zarejestrować kilka próbek korzystając, chyba, z dobrej propagacji na 14MHz i trwających zawodów więc było nieco więcej silniejszych stacji przebijających się przez zakłócenia. Pierwsze dwie próbki robiłem trzymając aparat w ręce stąd drgania obrazu.
Próbka 1
Próbka 2
Próbka 3
Próbka 4
Próbka 5
Próbka 6
Dwie ostatnie próbki to nieco nieudolne próby pokazania jak te same sygnały są widziane jako bar graf oraz jako wodospad. Przełączenie wizualizacji odbywa się przez dotyk pola wizualizacji i nie zawsze się udało ze względu na małą odległość między ekranem trx-a oraz kamerą aparatu, bez tych utrudnień przełączanie rysikiem a nawet palcem działa bardzo dobrze.
Rozważam wyjście z akumulatorem i z kawałkiem drutu w jakieś odosobnione miejsce gdzie spróbuję zrobić rejestrację bez zakłóceń. Wspominałem już, że któregoś dnia zabrakło w okolicy prądu na 2 godziny i okazało się, że na paśmie słychać było wyłącznie stacje krótkofalowe bez grama zakłóceń. Niestety, nie mam wpływu na moment awarii lub prac planowych choć taka supermoc od czasu do czasu by się przydała ;-)
Tymczasem, analizując opisany wcześniej efekt odwrócenia wykresu przy zmianie wstęgi wpadłem na jeszcze jeden sposób tworzenia w środowisku programowym Waleta dolnej lub górnej wstęgi.
[Obrazek: https://lx-net.pl/walet/image/lsb_usb1.jpg]
Rysunek pokazuje wcześniej opisane metody oraz na dole dodatkową metodę, którą można osiągnąć identyczny efekt. Wystarczy w tym wypadku programowe przesunięcie transformaty Hilberta z kanału Q do kanału I. Ponieważ definicja filtrów jest częścią składową cyfrowej części obróbki sygnału to nie są potrzebne żadne dodatkowe modyfikacje sygnału w domenie analogowej przez zmianę dodawania I oraz Q na ich odejmowanie lub zmiany faz heterodyn mieszacza Tayloe.
Definicja filtrów wygląda następująco:
inFiltered.setFilter(0, new FilterChain<float, 2>({ new BiQuadDF2<float>(b_lpf24_36, a_lpf24_36), new FIR<float>(hilbert_24_81) }));
inFiltered.setFilter(1, new FilterChain<float, 2>({ new BiQuadDF2<float>(b_lpf24_36, a_lpf24_36), new FIR<float>(coeffs_delay_81) }));
Definicja ta może być zmieniana "w locie" i w chwili obecnej służy wyłącznie do zmiany filtra LPF z 3.6kHz na 2.4kHz lub na filtr pasmowy 800Hz.
inFiltered.setFilter(1, new FilterChain<float, 2>({ new BiQuadDF2<float>(b_lpf24_36, a_lpf24_36), new FIR<float>(hilbert_24_81) }));
inFiltered.setFilter(0, new FilterChain<float, 2>({ new BiQuadDF2<float>(b_lpf24_36, a_lpf24_36), new FIR<float>(coeffs_delay_81) }));
Zmiana wstęgi wymagać będzie po prostu zamiany indeksów 0 na 1 i odwrotnie jak pokazałem wyżej.
Opisana manipulacja jest najprostszą z możliwych zmian prowadzących do uzyskania odpowiedniej wstęgi i otwiera nowe możliwości związane z poprawą sygnału, szczególnie dla wyższych częstotliwości o czym napiszę wkrótce.
Teraz, kiedy "odkryłem" opisaną możliwość wydaje mi się ona tak oczywista, że sam się sobie dziwię dlaczego nie zauważyłem jej od początku. Mam nadzieję, że nie zanudzam tymi swoimi odkryciami kolegów, którzy o tym wszystkim bardzo dobrze wiedzą ale piszę o tym głównie dla podobnych do mnie eksperymentatorów w dziedzinie cyfrowej obróbki sygnału aby mieli trochę łatwiej.
cdn.... lj
Github
Niemniej, udało mi się zarejestrować kilka próbek korzystając, chyba, z dobrej propagacji na 14MHz i trwających zawodów więc było nieco więcej silniejszych stacji przebijających się przez zakłócenia. Pierwsze dwie próbki robiłem trzymając aparat w ręce stąd drgania obrazu.
Próbka 1
Próbka 2
Próbka 3
Próbka 4
Próbka 5
Próbka 6
Dwie ostatnie próbki to nieco nieudolne próby pokazania jak te same sygnały są widziane jako bar graf oraz jako wodospad. Przełączenie wizualizacji odbywa się przez dotyk pola wizualizacji i nie zawsze się udało ze względu na małą odległość między ekranem trx-a oraz kamerą aparatu, bez tych utrudnień przełączanie rysikiem a nawet palcem działa bardzo dobrze.
Rozważam wyjście z akumulatorem i z kawałkiem drutu w jakieś odosobnione miejsce gdzie spróbuję zrobić rejestrację bez zakłóceń. Wspominałem już, że któregoś dnia zabrakło w okolicy prądu na 2 godziny i okazało się, że na paśmie słychać było wyłącznie stacje krótkofalowe bez grama zakłóceń. Niestety, nie mam wpływu na moment awarii lub prac planowych choć taka supermoc od czasu do czasu by się przydała ;-)
Tymczasem, analizując opisany wcześniej efekt odwrócenia wykresu przy zmianie wstęgi wpadłem na jeszcze jeden sposób tworzenia w środowisku programowym Waleta dolnej lub górnej wstęgi.
[Obrazek: https://lx-net.pl/walet/image/lsb_usb1.jpg]
Rysunek pokazuje wcześniej opisane metody oraz na dole dodatkową metodę, którą można osiągnąć identyczny efekt. Wystarczy w tym wypadku programowe przesunięcie transformaty Hilberta z kanału Q do kanału I. Ponieważ definicja filtrów jest częścią składową cyfrowej części obróbki sygnału to nie są potrzebne żadne dodatkowe modyfikacje sygnału w domenie analogowej przez zmianę dodawania I oraz Q na ich odejmowanie lub zmiany faz heterodyn mieszacza Tayloe.
Definicja filtrów wygląda następująco:
inFiltered.setFilter(0, new FilterChain<float, 2>({ new BiQuadDF2<float>(b_lpf24_36, a_lpf24_36), new FIR<float>(hilbert_24_81) }));
inFiltered.setFilter(1, new FilterChain<float, 2>({ new BiQuadDF2<float>(b_lpf24_36, a_lpf24_36), new FIR<float>(coeffs_delay_81) }));
Definicja ta może być zmieniana "w locie" i w chwili obecnej służy wyłącznie do zmiany filtra LPF z 3.6kHz na 2.4kHz lub na filtr pasmowy 800Hz.
inFiltered.setFilter(1, new FilterChain<float, 2>({ new BiQuadDF2<float>(b_lpf24_36, a_lpf24_36), new FIR<float>(hilbert_24_81) }));
inFiltered.setFilter(0, new FilterChain<float, 2>({ new BiQuadDF2<float>(b_lpf24_36, a_lpf24_36), new FIR<float>(coeffs_delay_81) }));
Zmiana wstęgi wymagać będzie po prostu zamiany indeksów 0 na 1 i odwrotnie jak pokazałem wyżej.
Opisana manipulacja jest najprostszą z możliwych zmian prowadzących do uzyskania odpowiedniej wstęgi i otwiera nowe możliwości związane z poprawą sygnału, szczególnie dla wyższych częstotliwości o czym napiszę wkrótce.
Teraz, kiedy "odkryłem" opisaną możliwość wydaje mi się ona tak oczywista, że sam się sobie dziwię dlaczego nie zauważyłem jej od początku. Mam nadzieję, że nie zanudzam tymi swoimi odkryciami kolegów, którzy o tym wszystkim bardzo dobrze wiedzą ale piszę o tym głównie dla podobnych do mnie eksperymentatorów w dziedzinie cyfrowej obróbki sygnału aby mieli trochę łatwiej.
cdn.... lj
Github

