Re: radio programowe

Użytkownik "WP" snipped-for-privacy@gmail.com napisał w

> > > [...] to raczej bym szedł w kierunku przesunięcia tego > >wszystkiego do basebandu (pomnożyć przez e^(2pi*j*-10kHz)), to > >potem > >dużo ułatwia. > > I to bedzie drugi etap, a moze pierwszy :-) > > Jestem ciekaw porownania homodyny z heterodyna .. poki nie > sprobowalem to mam mieszane uczucia co do homodyny. > Da sie odebrac slabiutki sygnal, jesli obok pracuje znacznie > mocniejszy generator w tym samym pasmie ?

Obydwa rozwiazania sa podobnie podatne na nieliniowosc i wymagaja filtrow pasywnych przed i za mieszaczem. W przypadku homodyny, te drugie to filtry dolnoprzepustowe. Homodyna jest bardziej podatna na szumy 1/f, przesluch LO na wejscie sygnalu w.cz. mieszacza (co powoduje powstanie skladowej stalej na jego wyjsciu) i ma wyzsze wymagania wobec spasowania obu kanalow mieszacza I/Q i przetwornika A/ C (nie ma mozliwosci pasywnego odfiltrowania sygnalu lustrzanego).

W praktyce lepiej zrobic tak jak planujesz - ustawic IF nieco powyzej zera (CLIF) i obrobic sygnal cyfrowo (zespolony filtr bandpass i mieszacz do DC). Odpada problem z szumami i skladowa stala i zostaje "tylko" spasowanie kanalow I i Q (tu bedzie potrzebny scalony mieszacz I/Q i dwukanalowy przetwornik A/C ze wspoldzielonym zegarem i napieciem odniesienia).

>cyfrowo jest łatwy do zrobienia, tylko współczynniki wychodzą > >zespolone. Metoda najprostsza: w matlabie fdatool w wybierałce FIR > >jest pozycja "complex cośtam". > > Bede sie musial doksztalcic ...

Taki filtr (FIR) mozna dosc latwo recznie zsyntezowac, gorzej z implementacja (najlepiej filtrowac kilkukrotnie z decymacja).

W skrocie: Odpowiedz impulsowa "zwyklego" filtru (skalarnego) to w najprostszym przypadku suma tonow (cosinusow) o czestotliwosciach, ktore chcesz przepuscic (np. 0, 1, 2,.., ft dla filtru dolnoprzepustowego), pomnozona przez okno wygladzajace. Chodzi o to by splot tej odpowiedzi z sygnalem w pasmie dal ten sam sygnal na wyjsciu, a z sygnalem spoza pasma dal 0.

Filtr ze wspolczynnikami zespolonymi uzywa tonow nie w postaci "cos (omega*t)" a "cos(omega*t)+j*sin(omega*t)". Najlepiej wyobrazic sobie taki sygnal jako wektor o dlugosci 1 obracajacy sie z predkoscia katowa omega. Po kierunku obracania sie tego wektora mozna ustalic czy czestotliwosc jest dodatnia czy ujemna. W przypadku sygnalow skalarnych bylo to niemozliwe bo cos(omega*t) jest funkcja parzysta (geometrycznie sygnal skalarny to rzut obracajacego sie wektora na os liczb rzeczywistych).

Dalej jest juz analogicznie jak z filtrem skalarnym - sumujesz tony o czestotliwosciach, ktore chcesz przepuscic i mnozysz przez okno wygladzajace. Np.:

odpowiedz_impulsowa(t) = okno(t) * [ ... + cos(-1*t) + j*sin(-1*t) + // = cos(1*t) - j*sin(1*t) cos(0*t) + j*sin(0*t) + // = 1 cos(1*t) + j*sin(1*t) + cos(2*t) + j*sin(2*t) + ... ]

Wszystkie operacje na tej odpowiedzi impulsowej (np. splot z sygnalem wejsciowym) musza uzywac operacji na liczbach zespolonych.

Sorry, ze tak lopatologicznie. Mam nadzieje, ze Ci sie to przyda.

-hob

Reply to
Hob Goblin
Loading thread data ...

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.