Vizitator MIRCAN DAN Postat Ianuarie 24, 2017 Partajează Postat Ianuarie 24, 2017 (editat) Salutare tuturor ! Am si eu nevoie mare de cineva dintre voi care are software-ul FULL pentru calcul coeficienti pentru filtrare. Am softul Part Number: SW300001-LT - Digital Filter Design Lite DAR care imi calculeaza doar 64 coeficienti FIR. http://www.microchipdirect.com/ProductSearch.aspx?Keywords=SW300001 Am 22 canale pentru care vreau sa calculez separat pentru fiecare coeficientii FIR adica 512 taps si fereastra Hamming. Cine ma poate ajuta, va rog sa-mi scrieti. Cu 64 coeficienti taps FIR am filtrat cu succes cu dsPIC33FJ256GP506 si filtreaza bine doar ca-mi trebuie o panta mai abrupta. Banda de trecere pentru FTB pentru fiecare dintre cele 22 canale are DOAR 60 Hz. Mentionez ca am calculat 512 coeficienti FIR in MATLAB si i-am convertit in format Q15 pentru filtrare DSP, DAR problema este ca folosindu-i la dsPIC, NU se potriveste probabil cu arhitectura interna a dsPIC si NU filtreaza deloc. Deci exclud MATLAB-ul sau alt software de calcul coeficienti FIR. Posed dsPIC starter Kit cu placuta demo cu dsPIC33FJ256GP506. Am modificat putin programul in limbajul C demo ce vine cu CD-ul kitului. DOAR introduc coeficientii calculati din fisierul cu extensia "*.s" si filtreaza excelent. La intrare ii introduc o melodie sau un pattern cu tot spectrul de frecvente vocale ( pana la 3200 Hz ) si la iesire inregistrez ce a filtrat cu Audacity si verific spectrograma si astfel vad ca filtreaza corect. Asta, asa ca sa stiti cum fac. Rezultatul filtrarii l-am verificat si in MATLAB si e in regula, doar ca filtrarea nu e atat de abrupta sau selectiva pe cat imi doresc adica sa aiba banda de trecere de doar 60 Hz pentru FTB. Am mai discutat cu "cirip" pe acest forum dar el ma baga in tot felul de calcule matematice. Eu vreau ceva simplu. Atasez un fisier cu extensia *.s cu pe care il atasez in proiectul MPLAB pentru dsPIC pentru a va face idee despre ce vorbesc. Coeficientii introdusi in acest fisier sunt calculati in MATLAB, DAR nu filtreaza, cum am zis mai sus. Atasez si un fisier cu extensia *.s cu 64 coeficienti calculati cu Digital Filter Design Lite care filtreaza corect. Va multumesc ! ftb_64.txt ftb_7_512_hn.txt Editat Ianuarie 24, 2017 de MIRCAN DAN Link spre comentariu
Vizitator MIRCAN DAN Postat Ianuarie 24, 2017 Partajează Postat Ianuarie 24, 2017 (editat) Digital Filter Design Lite imi genereaza automat fisierul cu extensia *.s ce contine cei 64 coeficienti gata calculati dupa ce ii dau caracteristicile filtrului FTP. Apoi, eu doar includ acest fisier in proiectul din MPLAB pe care apoi il compilez, programez dsPIC-ul si gata filtrul digital ! Coeficientii din fisierul *.s sunt convertiti din format fractional apoi in format Q15 si apoi in hexazecimal pe 16 biti gata pregatiti pentru a fi introdusi in dsPIC. Dupa ce testez toate acestea voi face un PCB cu dsPIC33FJ128GP802 cu 28 pini care are si convertor DAC intern. Editat Ianuarie 24, 2017 de MIRCAN DAN Link spre comentariu
mars01 Postat Ianuarie 24, 2017 Partajează Postat Ianuarie 24, 2017 (editat) Salut, Ai PM. Dar sa stii ca si calculele matematice au rolul lor... Editat Ianuarie 24, 2017 de mars01 Link spre comentariu
masterpic77 Postat Ianuarie 25, 2017 Partajează Postat Ianuarie 25, 2017 Fisierele cu extensia .s sunt librarii ; daca le folosesti in proiectul tau , inainte de utilizare ele vor trebui build-uite ca librarii , nu este suficient doar sa modifici ceva in .s file sa gata , nu va avea nici un efect. Link spre comentariu
cirip Postat Ianuarie 26, 2017 Partajează Postat Ianuarie 26, 2017 (editat) Salut Dan, "NU se potriveste probabil cu arhitectura interna a dsPIC"Exclus! Arhitectura nu iti ofera decat executie accelerata, dar daca stii sa codezi un filtru, o poti face si pe un i8080 de pe vremea dacilor, atata doar ca e lent. Dar de filtrat filtreaza de n-are aer. Acum multi ani, cand dsPICul nici nu aparuse, am scris un filtru cu PIC16F877 fugarit la 20MHz. Mergea schiopatand, dar mergea. Filtra semnale telegrafice la o frecventa de esantionare de 3.8KHz sau asa ceva. La voce nu-l tineau balamalele. "Deci exclud MATLAB-ul"He he. O sa razi, dar Matlabul este prietenul tau cel mai bun. Un filtru pe care l-am postat aici pe forum acum cativa ani, are filtre cu 300 de coeficienti, calculati in Matlab si merge pe dsPIC bine mersi. "NU filtreaza deloc"Ai simulat filtrul in Matlab? Ai folosit functiile din biblioteca dsPICului? Ai tinut cont de alinierea datelor si pozitionarea lor in memoriile X sau Y. Este foarte important. Daca tii cont de toate astea, cred ca poti face filtre cu peste 1000 de coeficienti, ca memorie are destula. Nu uita de facilitatea DMCI din MPLAB. Cu aia poti sa vizualizezi in mod grafic continutul buferelor si sa te prinzi de ce nu munceste. Cu aia m-am prins eu de un glici pe care il aveam in procesare din cauza unei indexari incorecte; iesea in afara bufferului cu o locatie si aparea cate un sughit. "Am mai discutat cu "cirip" pe acest forum dar el ma baga in tot felul de calcule matematice. Eu vreau ceva simplu."Hihi... Din pacate nu se poate ceva simplu. Domeniul asta nu e simplu deloc. Sau daca vrei ceva simplu, adica sa folosesti softuri care sa faca treaba ptr tine, daca sunt moka, atunci au limitari, ca deh ... Branza e pe bani. M-am uitat de curiozitate la coeficientii tai, aia 512. Sunt scosi destul de corect si ar trebui sa filtreze. Daca imi spui cu ce frecventa de esantionare lucrezi, pot sa "desenez" mai precis caracteristica de frecventa. Ceva e putin ciudat ptr ca ai foarte multe zerouri si functia pondere nu este centrata in mijlocul intervalului de 512 prize. Ce tip de filtru i-ai cerut Matlabului sa iti faca? Inca ceva... Stiu ca te chinui de cativa ani la treaba asta si parca ti-am si extras mai demult un canal dintr-o inregistrare pe care mi-ai trimis-o. Asta e sarcina de serviciu? E pentru o firma? Ca pare destul de serioasa treaba. Eu n-as fi avut rabdare sa ma strofoc atata numai ptr hobi Care e scopul final al proiectului astuia? Uite, cam asa arata filtrul tau, ala de 512 coeficienti. Coeficientii sunt corecti, ar trebui sa mearga, dar cred ca nu codezi tu bine convolutia aia ... Spor la treaba si te rog sa nu fii suparat pe mine, ca de "artimetica" tot nu scapi asa de usor, daca te-ai bagat in ciorba asta frumoasa si interesanta, de altfel. Cirip Editat Ianuarie 26, 2017 de cirip Link spre comentariu
Vizitator MIRCAN DAN Postat Ianuarie 26, 2017 Partajează Postat Ianuarie 26, 2017 Multumesc Cirip * Acesta e un hobby. La filtre digitale am lucrat intre oct-dec 2011. De atunci si pana acum am facut o pauza. Da ! "Branza e pe bani." Dar si MATLAB-ul e pe bani. MATLAB-ul pe care-l folosesti este cel standard adica fara librarii speciale ? Am folosit MATLAB 7 in 2011. Sa vad unde mai gasesc CD-urile de instalare. Imaginile de mai sus ( caracteristicile acelea ) le-ai generat in MATLAB ? sau Excel ? Ce functii MATLAB ai folosit ? Pana nu m-apuc iar efectiv de introdus iar coeficienti in dsPIC nu-ti pot spune exact ce frecventa de esantionare am folosit. Cred ca 8KHz sau 44,1 KHz. Cei 512 coeficienti i-am calculat in MATLAB cu functiile pe care mi le-ai dat prin 2011. Oricum am multe fisiere *.s completate cu cf. calculati in MATLAB. Oricum m-ai incurajat sa mai incerc cu MATLAB sa calculez si sa introduc coeficientii in dsPIC. Cu coeficientii calculati gata de SW300001-LT - Digital Filter Design Lite mi-a filtrat bine dsPICu. Deocamdata suspend acest topic pentru ca ma arde mai tare demodularea FSK pentru care deschid un nou topic. Dupa ce termin cu demodularea FSK continuu acest topic cu filtrarea digitala. Link spre comentariu
cirip Postat Ianuarie 27, 2017 Partajează Postat Ianuarie 27, 2017 Salut, Imaginile le-am generat cu Matlabul. Nimic special ca functii. Diverse manevre cu matrici ca sa convertesc din hex in zecimal, apoi ca sa transform matricea in vector. Apoi o transformata Fourier pe vectorul de coeficienti. Pff, uitasem ca ti-am dat functiile alea. Ce-a trecut timpul. Aveai alt user atunci. Am cautat si am gasit threadul ala cu demodulare FSK din 2012. Sa-l fi continuat pe ala. In orice caz, parerea mea e sa nu te chinui cu numararea trecerilor prin zero. Metoda e ineficienta si foarte sensibila la zgomot; O sa fii foarte departe de limita de demodulare Shannon. Cred ca e bine sa lamuresti filtrarea intai. Oricum trebuie sa filtrezi inainte sa demodulezi. Spor! Link spre comentariu
mircang9 Postat Februarie 23, 2017 Partajează Postat Februarie 23, 2017 Subiectul acesta se dezbate la: http://www.elforum.info/topic/66251-cum-schimb-referinta-la-un-semnal/page-8 Link spre comentariu
Postări Recomandate
Creează un cont sau autentifică-te pentru a adăuga comentariu
Trebuie să fi un membru pentru a putea lăsa un comentariu.
Creează un cont
Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!
Înregistrează un nou contAutentificare
Ai deja un cont? Autentifică-te aici.
Autentifică-te acum