Szerző Téma: DSP-rádió  (Megtekintve 18536 alkalommal)

Nem elérhető uprog

  • Full Member
  • ***
  • Hozzászólások: 188
  • Karma: +33/-2
    • Profil megtekintése
    • blog
Re:DSP-rádió
« Válasz #15 Dátum: 2012 December 04, 20:19 »
ui: Kozben meg szember jutott egy kerdes: I/Q keveresnel, ha a DDS I/Q kimeneten az LPF fazistolasa nem szimmetrikus (I/Q), az nagyon bekavarhat SSB eseten ? Udv. Szabi

Nem elérhető HA5FTL

  • Sr. Member
  • ****
  • Hozzászólások: 406
  • Karma: +28/-1
    • Profil megtekintése
Re:DSP-rádió
« Válasz #16 Dátum: 2012 December 05, 08:34 »
Mit jelent, hogy "nem szimmetrikus"?

Nem elérhető ha1drp

  • Jr. Member
  • **
  • Hozzászólások: 75
  • Karma: +6/-0
    • Profil megtekintése
    • http://ha1drp.fw.hu
Re:DSP-rádió
« Válasz #17 Dátum: 2012 December 05, 18:21 »
Sziasztok!

Jani köszönöm a kiegészítést! Természetesen kezelni kell a túlcsordulást. Szerencsére jellemzően az accumulátorok mindig nagyobbak, így pl az itt szóba hozott DsPic 16 bites adatszélességhez 40 bites accumulátorok tartoznak.

Egyébként a 16 bithez 96dB tartozik, míg a 32 bithez 192dB. Összehasonlítva a neten található gyári rádiók mérési adataival a a 16 bites minta sem tűnik olyan vészesnek, míg a 192dB ma nem tűnik reálisnak.

Szabi!

Kérdésedhez annyi, hogy több DBM-es kapcsolás található a neten.
pl.: http://www.sm5bsz.com/linuxdsp/hware/optiq.htm 
Keresőbe írva a DBM vagy IQ, SDR kulcsszavakat biztosan találsz még jópárat.
A másik 50kHz FIR szűrőhöz legalább 100kHz mintavétel szükségeltetik, persze függ a szűrő együtthatóinak a számától, de ez már inkább nagyobb kontrollert kíván.
Az FM demoduláció FIR szűrővel történő megvalósításáról nem tudok, esetleg, ha valaki igen az engem is érdekelne.

73! Csaba

Nem elérhető uprog

  • Full Member
  • ***
  • Hozzászólások: 188
  • Karma: +33/-2
    • Profil megtekintése
    • blog
Re:DSP-rádió
« Válasz #18 Dátum: 2012 December 05, 18:57 »
Sziasztok !

Koszi a valaszt.
Ezek alapjan nem remenykedhetek dsPIC SSB/FM vevoben.

HA5FTL:

Az I/Q kulon van szurve mondjuk egy egy LPF-el. Az LPF-nek van fazistolasa. Ha nem egyforman tolja el a ket LPF a fazist, nem 90 fok lesz az I/Q kozott. Bar ez csak ugy eszembe jutott, lehet valosag alapja;)

Udv.
Szabi

Nem elérhető uprog

  • Full Member
  • ***
  • Hozzászólások: 188
  • Karma: +33/-2
    • Profil megtekintése
    • blog
Re:DSP-rádió
« Válasz #19 Dátum: 2012 December 06, 10:28 »
Szia HA7MBI !

Az emlitett ARM-hoz milyen fejlesztokornyezet erheto el? Van valami ingyenes, esetleg ami Linux alatt is megy ?
Hol lehet beszerezni a panelt ?

Koszi.

Udv.
Szabi

Nem elérhető HA7MBI

  • Newbie
  • *
  • Hozzászólások: 13
  • Karma: +7/-0
    • Profil megtekintése
Re:DSP-rádió
« Válasz #20 Dátum: 2012 December 07, 20:13 »
Sziasztok!

ha1drp:
Az, hogy lebegőpontos, hidd el nagyon sokat számít!  Több adatot valóban nem tudsz tárolni lebegőpontosan, de a dinamikatartomány igen is nagyobb(1529dB). Ez nem a jel szempontjából érdekes hanem a szűrők együtthatói miatt. Például IIR szűrőt nem próbálnék meg implementálni 16 bites fixpontos aritmetikára (32 bitesre is necces). A kvantálás miatt vagy gerjed vagy nem teljesíti a specifikációt. Én nem nézem le a dsPIC-et, de egy ilyen feladathoz szerintem kevés a 16 bit, meg a 70 Mips. Ennél az első Texas dsp-k is többet tudtak. Nem rossz, csak nem erre találták ki.

ha5di:
A jelenlegi felállásba egy PCM1804 ADC van benne meg az említett CS43L22 DAC. Az utóbbi tényleg nem az igazi, a kimeneten 200 kHz-es tüskék vannak  a pwm miatt. Ez vételnél nem zavaró, mert nem hallatszik, de adásra alkalmatlan. Egy próbát megért, mert a panel úgyis kell a programozás miatt. Tervbe van egy teljesen független panel tervezése, amit a discovery boarddal programoznék (jelenleg úgy van, hogy a discovery boardot rádugom egy saját nyákra, azon van az adc gombok meg enkóderek). 24 bites lenne az ADC és a DAC is. Itt gondba vagyok, hogy két külön IC legyen benne, vagy egy kodek?

uprog:
A panelt az fdh.hu-n rendeltem. Ez az : http://fdh.hu/product/show/496374 Ez a farnell magyar disztribútora vagy mi. Budapesten ingyen kiviszik. Fejlesztőkörnyezetből hármat ismerek ami jó hozzá: Atollic truestudio, IAR, és Keil. Én az utóbbit használom. Elvileg valahogy megoldható, hogy valamelyik feltelepítése után kiszedni belőle a comliert, és megcsinálni hogy működjön Eclipse alapon, de ez nekem 3 nap szenvedés után sem sikerült. A Keilbe tudok segíteni ha kell, de ez tudtommal nem megy linuxon.

HA7MBI, Bálint

Nem elérhető uprog

  • Full Member
  • ***
  • Hozzászólások: 188
  • Karma: +33/-2
    • Profil megtekintése
    • blog
Re:DSP-rádió
« Válasz #21 Dátum: 2012 December 08, 10:10 »
Szia Bálint !

Koszi a valaszt !
Meg lenne kerdesem hozzad.
C-ben programoztad a szurot, vagy kellett assembly is?
Ez dsp processzor MAC,stb utasitasokkal, vagy csak arra is hasznalhato a lebegopontos arithmetika miatt es a nagy MIPS miatt?

Udv.Szabi
« Utoljára szerkesztve: 2012 December 08, 10:17 írta uprog »

Nem elérhető uprog

  • Full Member
  • ***
  • Hozzászólások: 188
  • Karma: +33/-2
    • Profil megtekintése
    • blog
Re:DSP-rádió
« Válasz #22 Dátum: 2012 December 08, 19:54 »
Sziasztok ! Kozben talaltam DSP peldakat a korabban emlitett processzorra.
Itt: http://www.st.com/internet/com/SOFTWARE_RESOURCES/SW_COMPONENT/FIRMWARE/stm32f4_dsp_stdperiph_lib.zip
Az arm_fir_f32 fileba belenezve, nem nagyon hasznal asm-t. Nagyon sok fuggveny megvan irva , nem kell 0-rol indulni. Szimpatikus.

ui: Linux ala is talaltam valamit:
http://www.triplespark.net/elec/pdev/arm/stm32.html

Udv.
Szabi
« Utoljára szerkesztve: 2012 December 08, 19:59 írta uprog »

Nem elérhető HA7MBI

  • Newbie
  • *
  • Hozzászólások: 13
  • Karma: +7/-0
    • Profil megtekintése
Re:DSP-rádió
« Válasz #23 Dátum: 2012 December 08, 20:06 »
Szia Szabi!

Látom Te is rátaláltál. A FIR szűrővel szenved, mert nincs hozzá hardveres támogatás, sok címszámolgatás meg töltögetés viszi el az idejét. De DSP utasítások vannak benne.
Ezek a függvények elég jók, tényleg működnek, és a példákba le van írva szépen a használatuk. Én is csak c-be programozom, ASM ilyen bonyolult architektúráknál kizárt.

HA7MBI

Nem elérhető hg2ecz

  • Hero Member
  • *****
  • Hozzászólások: 1 522
  • Karma: +741/-4
    • Profil megtekintése
    • http://hg2ecz.ham.hu
Re:DSP-rádió
« Válasz #24 Dátum: 2012 December 08, 20:14 »
Az, hogy lebegőpontos, hidd el nagyon sokat számít!  Több adatot valóban nem tudsz tárolni lebegőpontosan, de a dinamikatartomány igen is nagyobb(1529dB).

Hány biten van tárolva a törtrész az alkalmazott lebegőpontos ábrázolásodban?
A fenti dinamikatartományhoz (legkisebb jel <--> szomszédos erős jel) ugyanis 256 bites törtrész tartozna.

Egy klasszikus float esetén 23 bit volt, egy IEEE754 double esetén pedig 52 bites. A gcc long double-ja is csak 63 bitnyi törtet tárol. Ez eddig semmiven sem ad jobb dinamikát egy 64 bites akkumulátorral operáló egész számos MAC utasításnál.


Véleményem szerint egy számunkra szükséges jelfeldolgozó algoritmust egy 32 bites ARM Cortex M3 feletti mikrovezérlőre (ill. A8 feletti procira) épülő eszközzel vagy akár MIPS32 mikrovezérlővel (pl. PIC32) nagyon szépen meg lehet valósítani.

Belátható, hogy bejön max 24 bites A/D jele. Ezt felszorzod egy 28 bitesnél nem több bites konstanssal majd hozzáadod az 64 bites eredményregiszterhez (ezekben van már MAC utasítás, ez egyben ledarálja a reg64 += reg32a * reg32b műveletet). Ekkor elmondható, hogy akár 4000 lépésben végzett összegzés esetén sem lesz túlcsordulásod. Ha a konstanst 28 bitről csökkented, akkor még több összeadás esetén is garantált a túlcsordulásmentesség.

A végén pedig csak a felső X bitet fogod úgyis a D/A-ra vezetni. A sok alsó bit csak a számítás kerekítési hibájának csökkentése miatt kell. Ráadásul itt is van egy jó játék: AGC úgy valósítható meg, hogy felső bitek vizsgálatával meghatározod, milyen jelerősséged van, azaz nem a legfelső bittől adod ki a D/A-ra, hanem az alatt néhány bittel, hiszen a felső bitjeit kisebb A/D-zett jelek esetén tartósan 0-ák.

Tény, hogy lebegőpontos algoritmust egyszerűbb írni, hiszen az integeres aritmetikára ezt még át kell dolgozni. De nem akkora többletmunka, mint amennyire félnek sokan tőle. Csak picit tovább kell gondolni a lebegőpontos algoritmust.


Nyelv: C-ben ésszel programozva jól optimalizál a C fordító, nem kell assembly-hez nyúlni - csak ellenőrizni adott esetben, hogy tényleg "értette-e" a C fordító a feladatot. A MAC utasítást is például  ily módon kell kicsikarni belőle, mert arra nehezebben talál rá a fordító. Erre egy régebbi hozzászólásomban írtam példát.

Nem elérhető uprog

  • Full Member
  • ***
  • Hozzászólások: 188
  • Karma: +33/-2
    • Profil megtekintése
    • blog
Re:DSP-rádió
« Válasz #25 Dátum: 2012 December 08, 20:33 »
Sziasztok ! Orulok a valaszoknak ! A kerdes az, hogy melyik a jobb radionak (FIR, AGC, hilbert) , dsPIC vagy a fenti ARM ?

Udv. Szabi

Nem elérhető HA7MBI

  • Newbie
  • *
  • Hozzászólások: 13
  • Karma: +7/-0
    • Profil megtekintése
Re:DSP-rádió
« Válasz #26 Dátum: 2012 December 09, 01:52 »
Szia hg2ecz!

Nem voltál Te véletlenül HA5KFU-s régen??

Nyilván 32 bites fixpontosnál is és single precision floatnál is 2^32 különböző értéked lesz. Az hogy ez jelentené a dinamikatartományt, szerintem nem így van. A float felfogható egy 24 bites értékként (előjel nélkül 23), amit egy 256 bites regiszterben tologatsz (és mindig csak azt a 24 bitet látod). Pont ezért akkora a dinamikatartománya amennyit írtam. Az automatikus tologatás a fontos. FIR szűrőnél nem sokat számít, de egy IIR-nél már van haszna. Ha Te 32 bites fixpontos értékekre kvantálod a szűrőegyütthatókat nem biztos hogy működni fog. Kell játszogatni a shifteléssel. Ezt a float elvégzi helyetted. Esetleg nem a direkt vagy kaszkád formát használod hanem rezonátoros vagy egyéb ínyenc megvalósítást. De nem hiszem hogy egy kísérleti projectnél megérné ezzel szenvedni. Ha esetleg egy nagy példányszámban eladott eszközről lenne szó akkor megérné a fáradozást a fixpontossal, mert az ilyen architektúrák valamennyivel olcsóbbak. Azonban ha egyik kontrollerhez sincs programozó biztos jobban megéri az STM, mert olcsóbb mint egy PIC + programozó.  További érvem az STM mellet, hogyha lenne valaki aki ezzel foglalkozna rajtam kívül, lehetne tapasztalatokat megosztani. Aztán lehet hülyeségeket írogatok, de én így látom.


Nem elérhető ha7sg

  • Hero Member
  • *****
  • Hozzászólások: 564
  • Karma: +752/-4
    • Profil megtekintése
Re:DSP-rádió
« Válasz #27 Dátum: 2012 December 09, 12:28 »
Szia Balint,

Hogyan dontottel vegulis, 8-15kHz-en dolgozod fel a jelet, vagy a 300Hz-3kHz tartomanyban.
Jol emlekszem, hogy a 8kHz-ben maradtunk?
Neztem atkevero kvarcot az AREL-nel, ki is irtam a frekit, de elvesztettem a papirt mielott megrendeltem volna. Azutan nem fektettem bele tul sok energiat, mondtad Te is megnezed.
Meg keresgettem, a tipusszam milyen meretu kristalyt jelent, de nem talaltam meg.

Ha 8-15kHz az A/D bemenete, le kell csokkenteni az LT6200 erositeset 30..40dB-re, mert a 60-at nem valoszinu, hogy elviszi 8kHz-en elfogadhato fazismenettel.
Sikerult kiszedni a 30uV zajt?
Egyebkent hogy haladsz?

73: 7SG Gabor
73: 7SG Gabor

Nem elérhető HA7MBI

  • Newbie
  • *
  • Hozzászólások: 13
  • Karma: +7/-0
    • Profil megtekintése
Re:DSP-rádió
« Válasz #28 Dátum: 2012 December 09, 13:22 »
Szia Gábor!

Most a 12kHz-s KFes verzió van rajta és a proccesszorba I/Q-zok. Ezzel is volt szenvedés, mert a hilbert szűrő nem volt jó a mintavételi frekvencia miatt, keverés után decimálni kellett.  Nem tudtam spektrumanalizátorral megmérni, csak egy szkóp FFT funkciójával, ami nem egy pontos dolog. Az elnyomás így több mint 60 dB, az elnyomott oldalsáv elbújik valahol a zajban, ezért szerintem több mint 60. Mivel Neked jó szűrők vannak benne, meg lehet azt csinálni, hogy lemegyünk a KF-el addig, hogy még ne legyen átlapolódás, így a műveleti erősítő is jobban bírja. A zaj az maradt, mert most a dokumentációval szenvedek. Az hogy működjön úgy, hogy az előzetesen előállított I-Q jel kerül az ADC-re azzal még egy kicsit várok, mert lemértem, hogy kb. 0.1dB eltérés van a két csatorna között a műveleti erősítős illesztő miatt. Így ha a bejövő jel tökéletes is lenne (mind erősítésbe mind fázisba), már ez miatt sem nem lehet 50dB-nél nagyobb tükörelnyomást csinálni.
A kvarcot nem néztem meg, mert elfelejtettem a cég nevét, de most majd utánanézek.

Bálint

Nem elérhető ha7sg

  • Hero Member
  • *****
  • Hozzászólások: 564
  • Karma: +752/-4
    • Profil megtekintése
Re:DSP-rádió
« Válasz #29 Dátum: 2012 December 09, 15:12 »
Szia Balint,

A tukorelnyomast en ugy mertem, hogy a kivant oldalsavnal beallitottam egy jol merheto szintet,
megjegyeztem a bemeno es kimeno szintet.
Ezutan az elnyomando oldalsavra allitottam a szignal generatort, es addig noveltem a bemeno jelet, amig ugyanakkora kimeno jel lett. A kulonbseg a tukorelnyomas. Kb nalam is akkora volt a kristalyszuro+ fazistolo altal adott tukor elnyomas, mint nalad. Ha minden igaz a papiron meg is talalod.
Jo a 12 kHz, ha fel tudod dolgozni rendesen. Minel nagyobb ez a II. KF, annal jobban ervenyesul a kristalyszuro elnyomasa is. Ugyanakkor az A/D tenyleges felbontasa (ENOB) gyorsan romlik a mintaveteli freki emelesevel. Nezd meg fs=48kHz, fin=12kHz, hogy ott hany ertekes
bitet irnak ra. Olyan 16..19-et mondanek, ami mar jelentosen lecsokkenti a dinamika tartomanyt.

Gondolkoztam azon is, ha visszaalakitanank a panelt az eredeti Tayloe demodulatoros valtozatra
(a Tayloe sajnos nem csinal oldalsav elnyomast ennel ), ami osszegzi a ket kristalyszurorol jovo jelet (0, 90, 270, 180 ). Itt a szurok nem tokeletes egyformasaga ( mind fazis, mind amplitudo menetben), nem szolna bele az oldalsav elnyomasba. Viszont a jelfeldolgozasod altal adott kb. 60 dB elnyomashoz hozzatenne meg vagy 50-60 dB-t, ami mar minden igenyt kielegit.

A 0.1dB elteres semmi. Pontosabb egyuttfutast nehez lenne elkepzelni. Az en aramkorombol sokkal nagyobb hibaval jon ki a jel, ezert is van trimmer rajta. SW-bol egy szorzassal siman tudod kompenzalni.
A fazismenet egyformasagat is lemerted? A fazishiba sokkal nagyobb problema, szerintem.

Nem tudom, jogilag mi a helyes, de egyszer majd reszletezhetned, mit csinaltal, mi a hatter.

73: 7SG Gabor
73: 7SG Gabor