Jump to content
ELFORUM - Forumul Electronistilor

benishor

Membru activ
  • Content count

    86
  • Joined

  • Last visited

Community Reputation

0 Neutral

About benishor

  • Rank
    Nou venit

Recent Profile Visitors

84 profile views
  1. benishor

    Cum sa incep cu DSP?

    Salut @cirip, Multumesc pentru hintul cu sursa de inspiratie pentru oscilator. Am ajuns intr-un final sa ma folosesc de functiile librariei dsp scrise pentru xc16 si am ajuns la urmatorul rezultat: Treaba interesanta e ca functioneaza cum imi doresc insa codul pe care l-am scris efectiv nu se pupa cu teoria pe care am implementat-o inainte in softul pentru PC. Am scos si un matlab pentru "trial" si m-am apucat sa invat sa-l folosesc suficient cat sa incerc sa vad efectiv ce se intampla la fiecare pas al algoritmului. Mi-ar placea sa discutam putin pe marginea subiectului daca ai avea disponibilitatea, bineinteles. Toate bune, benishor
  2. benishor

    Cum sa incep cu DSP?

    Am rezolvat problema si cu filtrele. Am plasat de mana coeficientii in C (dupa ce am scris un tool de generat fisiere .s ca Filter Designer din coeficienti generati de http://t-filter.engineerjs.com/). Mai ramane o problema; spuneai la un moment dat ca imi poti explica in ce mod pot genera un oscilator in dspic (pentru BFO). Help? Multumesc!
  3. benishor

    Cum sa incep cu DSP?

    Salut Cirip, Hai c-am reusit si cu DMA-ul si bufferele ping-pong. Ramane sa incep cu filtrarea insa caut peste tot si nu gasesc softul de la Microchip, Filter Designer sau ceva de genul. Ai idee unde il pot obtine? Vad ca toate exemplele de filtre care folosesc DSP lib-ul de la Microchip sunt artefacte in assembler, generate de softul mai sus amintit. As vrea sa le generez de mana insa nu imi e clar ce tip de encoding este folosit la coeficienti. Ai idee cumva? Multumesc!
  4. benishor

    Cum sa incep cu DSP?

    Salut Cirip, Am reusit sa identific si sa rezolv problema dupa ce mi-am dat seama ca pinii de DCI nu erau mapati conform arhitecturii mele hardware. De fapt nici nu stiu unde erau mapati by default si nu inteleg cum/daca merg exemplele de pe la microchip fara mapare explicita. In fine, bine ca am scos-o la capat. Urmatorul pas este sa aplic o transformare (un filtru) pe semnalul de pe input, eventual adaugat DMA dupa. Sa vedem ce-o iesi. Ceva tips and tricks la capitolul asta izvorate din experienta? Ajunge sa folosesc sample-uri de 16 biti sau ar trebui ceva mai mult? Are sens batching? Multumesc!
  5. benishor

    Cum sa incep cu DSP?

    Salut Cirip, Am citit atat documentul dedicat interfetei DCI cat si cel al codecului. Ideea de baza este ca nu reusesc sa configurez desepicul ca I2S slave folosind DCI (simplu, fara DMA la inceput) astfel incat sa-mi faca trigger la DCI interrupt si ma intrebam daca e vreo problema bine stiuta de mod de configurare. Am osciloscop si l-am folosit pentru a verifica existenta CSCK si COFS validand ca sunt generate corespunzator. DSP-ul il configurez ca sclav ceva de genul: DCICON1bits.CSCKD = 1; DCICON1bits.CSCKE = 1; DCICON1bits.COFSD = 1; DCICON1bits.UNFM = 0; DCICON1bits.CSDOM = 0; DCICON1bits.DJST = 0; DCICON1bits.COFSM = 1; DCICON2bits.BLEN = 1; DCICON2bits.COFSG = 0; DCICON2bits.WS = 15; DCICON3 = 0; TSCONbits.TSE0 = 1; RSCONbits.RSE0 = 1; TXBUF0 = 0; TXBUF1 = 0; DCICON1bits.DCIEN = 1; _DCIIF = 0; _DCIIE = 1; Ce urmaresc e sa il fac sa comunice OK cu codecul stereo astfel incat sa primesc si sa trimit sample-uri de 16bit, stereo. Aparent sunt chestii destul de confuze prin manual, mai ales pe la detalii gen configurare DCICON2 pentru cazul mai sus amintit (la I2S aparent COFSG trebuie pus jumatate fata de normal). Intr-un final ma intereseaza doar sa stiu ca cineva a reusit sa configureze un dsPIC drept I2S slave prin DCI si a functionat, in rest depinde de mine. Insa imi dau seama ca e greu ceea ce cer asa ca voi reveni cu alte intrebari mai high level dupa ce reusesc sa trec de hopul asta. Toate bune!
  6. benishor

    Cum sa incep cu DSP?

    Salut Cirip, Long time no see. Iaca am reusit sa prind niste timp printre crescut copil si muncit si am continuat lucrul la jucaria mai sus amintita (DSP + Codec pentru demodulare SSB). Intre timp am refacut nitel PCB-ul si l-am trimis in China la facut. Am fost multumit de prima experienta de genul. Am lipit apoi dsPIC-ul impreuna cu suportul necesar programarii si am scris un mic programel care sa faca blink la un led sa testez toolchain-ul. Am lipit apoi codecul impreuna cu restul componentelor si m-am apucat de programare. Merge destul de greu dat fiind faptul ca sunt majoritatea chestii noi pentru mine si am multe de citit/inteles. Targetul actual este sa reusesc sa configurez toata sandramaua sa-mi citeasca de pe LINE IN, sa duca la dsp care mai apoi sa le trimita inapoi pentru codec output, adica un soi de echo. O poza cu ce-a iesit pana acum: https://imgur.com/a/wYweWfT Buba e ca desi am citit documentatia de x ori, nu reusesc sa configurez DSP-ul sa-mi genereze DCI interrupt. M-ai putea ajuta cumva cu un hint? Codec-ul e WM8731 si il configurez ca I2S master care serveste toate clockurile aferente I2S dsp-ului. Toate bune!
  7. benishor

    Cum sa incep cu DSP?

    Salut Cirip, Decat sa dau wav-uri pentru auditie SSB mai bine dau binarul compilat pentru windows sa te joci in voie pe care il poti gasi la https://hq.scene.ro/yo6ssw-demodulator-2.zip . Asta e versiunea fara filtrul de telegrafie. In README.md poti gasi o descriere a tastelor folosite pentru tuning/volum/etc. Am sa ma joc si cu filtrul de telegrafie si revin cu alt binar. Oricum, asta este doar un loc de joaca si de test pe PC al algoritmilor ca pregatire pentru dsPIC. M-am hotarat ca la dsPic sa merg cu samplerate de 8KHz intrucat e suficient pentru AM/SSB/CW si cel mai probabil primul oscilator din diagrama de mai sus va fi cu o frecventa fixa deoarece tuning-ul il voi face din VFO. Asa ca in punctul respectiv voi avea din nou nevoie de expertiza ta pentru a regenera filtrele cu samplerate-ul dorit. In prima instanta m-am gandit sa ofer cate doua filtre pentru fiecare tip de emisiune: SSB wide/narrow si CW wide/narrow. Multumesc pentru toate si revin cu updates, benishor
  8. benishor

    Cum sa incep cu DSP?

    Salut Cirip, Felicitari, al naibii filtru Face treaba buna! Mostre: a) Am folosit fisierul tau generat anterior (beni_1.wav) care contine un ton la -11KHz si altul la 5KHz si am facut un sweep al purtatoarei de la ~3KHz la ~7KHz. Rezultatul audio poate fi accesat aici: https://hq.scene.ro/audio-sweep-new-filter-cirip.wav iar spectrograma la https://hq.scene.ro/audio-sweep-new-filter-cirip.png. Se poate vedea cu ochiul liber ca nu mai apare "buba" cu imaginea. Well done! b) Un sweep mai lent al purtatoarei de la ~2KHz la ~6.3KHz folosind ca input fisierul cw-iq.wav. Rezultatul audio se poate gasi la: https://hq.scene.ro/audio-sweep-new-filter-cirip-cw.wav iar spectrograma aferenta la https://hq.scene.ro/audio-sweep-new-filter-cirip-cw.png Mentionez ca nu am mai folosit vreun filtru suplimentar de data aceasta. Rezultatele sunt "curate", folosind iesirea algoritmului descris mai sus. O alta intrebare intrebatoare: la transceiverul la care lucrez as dori sa las utilizatorul posibilitatea sa selecteze frecventa preferata a tonului morse precum si cea a selectarii unui filtru FTB centrat in jurul ei cu largimea de banda selectabila dintr-un set predefinit. Ai vreo idee cum s-ar putea realiza asta la un mod cat mai simplist? Multumesc, benishor
  9. benishor

    Cum sa incep cu DSP?

    Salut Cirip, Desigur, uite un sample: https://youtu.be/PG-lQ1Nz_wk Am mai uitat un detaliu care nu apare in diagrama bloc de procesare dar care se poate vedea in filmuletul de mai sus: semnalul final il trec prin niste filtre LPF/BPF in functie de filtrul ales (SSB, CW-1, CW-2). Problema la care ma refeream nu era ca se aud mai multe semnale telegrafice folosind filtrul SSB, e normal; problema era ca baleind frecventa oscilatorului principal in jurul unui semnal telegrafic, se aude cum ajunge la 0 beat apoi, trecand in cealalta laterala, se aude totusi o frantura din imagine. Lucrul ala e vizibil si mai sus in spectograma. Ma gandeam ca s-ar putea remedia acest aspect umbland nitel la filtrul folosit dupa multiplicarea complexa cu primul oscilator. Toate bune, benishor
  10. benishor

    Cum sa incep cu DSP?

    Salut Cirip, Ei da, asa mai merge! Rezultatele se pot vedea aici: https://youtu.be/AjILLMvH-H0 Acum intrebare intrebatoare: cand ai facut design la filtru ce parametri ai folosit? Se leaga cumva de frecventa "BFO"-ului sau nu? De asemenea, ma intreb ce impact ar avea asupra procesarii transformarea lui intr-un BPF in loc de LPF, ca sa excludem si o portiune din semnalele de "jos". Apropos, am facut o mica modificare. Ca sa schimb laterala demodulata nu mai inversez semnul frecventei "BFO"-ului ci inlocuiesc ultimul pas al sumatorului din I + Q in I - Q. Nu am facut calculele riguros insa auditiv da bine, adica "la fel" si e mai convenabil la procesare. Multumesc, benishor
  11. benishor

    Cum sa incep cu DSP?

    Salut Cirip, Multumesc pentru efortul depus! Am inteles si imi sunt clari pasii aplicati. Suna destul de bine, desi cred ca mai e loc de improvement pe undeva, relativ la cat anume se suprima imaginea nedorita. Iata cum arata spectrograma fisierului, generata cu spek (http://spek.cc): https://hq.scene.ro/weaver-spectrogram.png (a se vedea dupa trecerea prin 0 beat). M-as fi asteptat in mod normal ca supresia imaginii sa fie cat mai aproape de ideal dat fiind faptul ca fisierul sursa contine semnale cu SNR deosebit. Poate trebuie umblat pe la filtre sau amplitudinile oscilatoarelor. Crezi ca imi poti da te rog coeficientii pentru filtrul folosit? Multumesc, benishor
  12. benishor

    Cum sa incep cu DSP?

    Salut Cirip, Sunt total de acord ca demodularea este incorecta. Nu am vreo preferinta intre metodele enumerate mai sus exceptand poate phasing curat (2) sau Weaver (1). Dintre cele doua as selecta metoda mai usoara din punct de vedere al procesarii; phasing cere un FIR pentru Hilbert + delay pe cealalta ramura pe cand la Weaver nu sunt sigur, mie imi suna a ceea ce am implementat deja insa se poate sa ma insel. In concluzie as zice sa vedem cum iese cu metoda phasing (https://www.dsprelated.com/showarticle/176.php). Toate bune, benishor
  13. benishor

    Cum sa incep cu DSP?

    Salutare, Lucrez la un proiect personal, un transceiver de unde scurte si m-ar bate gandul sa incerc sa fac demodulatorul (AM, SSB, CW) cu niste hardware embedded ca sa am un footprint fizic cat mai mic. Semnalele de intrare ar fi in faza si cuadratura, aduse in baseband (cu un IF de ~160Hz ca sa nu am purtatoarea la DC). Problema e ca nu am mai pus mana pe niciun hw DSP si nu stiu ce device sa aleg sau la ce criterii de selectie ar trebui sa fiu atent. M-ar putea ajuta cineva cu niste informatii? De asemenea, nu inteleg cum imi pot configura un anumit sample rate: imi pun un timer si execut toata procesarea in interrupt handler? Multumesc mult!
×