Sari la conținut
ELFORUM - Forumul electronistilor

Filtru Digital - dsPIC33F


cirip

Postări Recomandate

Salut,Am si eu un proiectel cu care sa ma laud. E inceput cam de un an, dar am lucrat la el in limita timpului disponibil. As putea spune ca acum este finalizat, cel putin pentru etapa asta. Deocamdata se adreseaza radioamatorilor si in viitor se va adresa audiofililor. Nu am postat la radioamatorism si la audio ca sa nu fac dublu post, dar daca un moderator considera util, poate sa faca linkuri in cele doua sectiuni catre aceasta sectiune. Despre ce este vorba? Este un montaj DSP de uz general. In etapa asta,in scop demonstrativ, este facut sa ruleze un numar de 8 filtre pentru radioamatori: 2 de SSB si 6 de telegrafie. Filtrele sunt dupa cum urmeaza:SSB_larg = 300 2700HzSSB_ingust = 300 2100HzCW centrat pe 800Hz cu largime de 500HzCW centrat pe 800Hz cu largime de 200HzCW centrat pe 800Hz cu largime de 100HzCW centrat pe 1000Hz cu largime de 500HzCW centrat pe 1000Hz cu largime de 200HzCW centrat pe 1000Hz cu largime de 100HzAm avut in vedere simplitatea in ceea ce priveste modul de operare. In mod intentionat am prevazut montajul cu un singur buton, iar selectia filtrelor se face ciclic. Ledurile indica filtrul care ruleaza la momentul curent. Schimbarea filtrului se face din mers. Primele doua leduri din stanga indica SSB_larg si SSB_ingust. Ultimele 3 leduri indica de la stanga la dreapta largimile de banda CW500, CW200 si CW100. Cand frecventa centrala se schimba la 1K, ledurile de CW clipocesc.O idee care mi s-a parut utila este aceea de a permite utilizatorului sa isi testeze singur montajul fara a face apel la aparatura complicata. Avand in vedere ca generator si voltmetru electronic sau osciloscop nu isi permite oricine, am facut urmatorul artificiu: daca la pornire este tinut butonul apasat, atunci montajul intra in mod test. In acest mod, la intrarea blocului de filtre este aplicat un generator de zgomot de banda larga al carui spectru este "decupat" de caracteristicile filtrelor. Aplicand iesirea la un analizor de spectru audio pe PC, care se gasste relativ usor pe net, utilizatorul poate vizualiza caracteristica fiecarui filtru. Odata pornit in mod test, functionalitatea butonului ramane aceeasi, in sensul ca schimba filtrele in mod ciclic. La fiecare apasare se trece la un nou filtru, apoi dupa al optulea filtru o ia de la capat.In soclul de 8 pini se poate instala un LM386, ca sa nu mai fie nevoie de un amplificator extern.Asta am facut pana acum. Ca proiecte de viitor care imi vin in minte ar fi: -Sa fac sa memoreze ultimul filtru pe care a stat mai mult de 3 minute si sa porneasca cu el la urmatoarea alimentare. -set de filtre comutabile pentru subwoofer. Stiu ca multi audiofili se straduiesc cu scheme cu operationale, dar e cam greu sa atingi panta de atenuare a unui filtru digital.-Diverse efecte: ecou, voce robotica, pitch shifter-Demodulator BLU atasat la un mixer Tayloe. De fapt o mica sincrodina la care rejectia imaginii se face prin mixare complexa (adica a+jb).-Si ... mai ascult idei de la cei interesatiDespre contructie, treaba e mai delicata. E facut cu SMDuri, pe care le-am lipit folosind ochelari din aia cu dioptrii multe. Dar asta merge pentru o placa, doua. De asemenea, executia placii trebuie facuta de o firma specializata. Este exclusa executia de mana ptr ca traseele sunt prea fine. De asemenea, sunt o multime de gauri metalizate cu diametrul de 0.2mm. Asa ceva se poate face numai pe masina in coordonate. Spun toate astea pentru simplul motiv ca daca exista mai multa lume interesata, as putea sa fac o comanda de placi gata asamblate. Nu stiu in acest moment la ce pret ar iesi. Depinde si de numarul de placi comandate.Am atasat o arhiva cu schema, poze, grafice si un fisier mp3 in care filtrez un semnal telegrafic in mod progresiv cu SSB_larg -> SSB_ingust -> CW500 -> CW200 -> CW100. Exista o poza in care este facuta analiza spectrala in timp ce filtreaza un semnal telegrafic. Am ales nume sugestive pentru poze, dar daca sunt neclaritati, va rog sa intrebati. Placa arata ca in poza atasata. Restul detaliilor in arhiva.post-879-139829433775_thumb.jpgDeocamdata ma opresc aici. Nu am dat prea multe explicatii, dar daca exista interes, putem dezvolta subiectul in acest topic.Distractie placuta!Ciripdesepel.zip

Link spre comentariu
  • Răspunsuri 13
  • Creat
  • Ultimul Răspuns

Top autori în acest subiect

  • cirip

    5

  • ratza

    2

  • hpavictor

    2

  • mircang9

    1

Top autori în acest subiect

Tare! :aplauze Foarte interesant ar fi un filmuleţ cu tot cu sunet, în care să se vadă analizorul spectral şi, în acelaşi timp, să se audă ce efect are filtrul.Cel mai mult mi-a placut ideea cu generatorul de zgomot alb pentru autotest. :daPentru filtru de subwoofer nu ar fi nevoie în total de 3 filtre? Unul care să mixeze ambele canale şi să aplice apoi un FTJ, plus încă două de tip FTS, câte unul pe fiecare canal?

Link spre comentariu

Multumesc RoGeorge,O sa apara si un filmulet mai detaliat si poate chiar un fel de recenzie facuta de o terta parte, care va avea mai multa rabdare decat mine. Plus ca va fi mai critic. Eu sunt mai indulgent, ca doar eu l-am mosit :)Ptr subwoofer ... depinde. Placuta e facuta cu doua canale de intrare si doua de iesire, complet independente dpdv hardware, asa cum se vede si in schema. Sumarea sau ce se mai face, daca se face, e in totalitate la discretia softului. De ex., in etapa actuala folosesc numai calea de stanga. Intr-o versiune anterioara intram cu semnalul prin intrarea de stanga si scoteam pe ambele iesiri, dar am abandonat ideea; mi s-a parut inutil ptr o aplicatie de tip filtru ptr transceiver.

Link spre comentariu

frumos :aplauze Eu intre timp am trecut pe alt gen de comunicatie: transceiver Ethernetcu PIC cu Ethernet ( capsula TQFP 64 - 100 PIN ) cu adresa IP configurabila. Pentru ce mi-a trebuit am reusit: filtrare trece banda ingusta ( +/- 30 Hz ) IIR cu dsPIC33F pentru comunicatieFM pe cablu telefonic pe suport de cupru. Spor * :dans:

Link spre comentariu
  • 3 săptămâni mai târziu...

Se poate adauga un filtru notch reglabil , măcar un filtru ?....dar dacă ar fi posibil , as recomanda introducerea functiilor câtorva asemenea filtre notch , cu ele poți rejecta tot felul de purtatoare si paraziti , semnale nedorite dar aflate in interiorul benzii de trecere a filtrului SSB .....proiectul este deosebit de interesant !

Link spre comentariu

Sigur ca da. De fapt chiar am in plan doua variante de notch: unul cu ajustare manuala si unul adaptiv, care "se agata" singur pe purtatoare si o rejecteaza.O sa mai dureze pana la implementare ptr. ca deocamdata fac o pauza la desepel pentru ca am alte chestii la care trebuie sa lucrez.Multumesc pentru sugestie.Cirip

Link spre comentariu

Daca se poate .....trebuie rejectate mai ales " gunoaiele " gen purtatoare continua , sunt cele mai deranjante .......dar si filtrele notch pe care le poti seta manual sunt importante ......

Link spre comentariu
  • 11 luni mai târziu...

Abia am gasit topicul asta.... Trebuia pus la accesorii audio -> corectoare,......Si eu am nevoie de help.Vreau sa fac cu PIC un egalizator grafic cu minim 256 canale.FFT ia sute de mS, deci nu prea mai e real time sunetu'http://www.elforum.info/viewtopic.php?f=285&t=145496 Eu nu am fost asa norocos ca cineva sa imi raspunda.Tu ai scris de filtrul :

Vrei o filtrare trece jos? Cea mai simpla e ceva de forma: y(n) = a*y(n-1) + (1-a)*x(n), unde:y(n)=esantionul de iesire curenty(n-1)=esantionul de iesire anteriorx(n)=esantionul de intrare curenta=o constanta intre 0 si 1. Cu cat a e mai aproape de 1, cu atat frecv de taiere a filtrului e mai joasa.

Caut un algoritm simplu..Daca formula de mai sus o aplic pentru un trece sus si pentru un trece jos obtin trece banda ? :nebunrau:Ce fac astia aici, ca dau mai mult joase asta e simplu: Ei fac corectia doar pe 8 canale.http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=2680&dDocName=en537918
Link spre comentariu
Abia am gasit topicul asta....

Trebuia pus la accesorii audio -> corectoare,......

A fost postat initial la "Proiectul Meu", apoi a fost mutat la audio cand s-a facut compactarea.
Si eu am nevoie de help.
Toti avem nevoie de cate ceva ...
Vreau sa fac cu PIC un egalizator grafic cu minim 256 canale.
Mult succes! :)
FFT ia sute de mS, deci nu prea mai e real time sunetu'
Afirmatia nu are acoperire. Fara sa spui in cate puncte, cu ce precizie, e o vorba in vant. Cat despre "real time", absolut niciun filtru nu poate sa fie real time. Ca sa poata sa filtreze, filtrul trebuie "sa se uite si sa vada" ce e acolo. Orice filtru, analogic sau digital, are un timp de propagare, respectiv intarziere.

Si ca sa ai o idee de viteza de executie, treaba sta cam asa. Frecventa de esantionare este de 8KHz, adica perioada de 125us. Procesarea se face in blocuri de cate 512 esantioane. Asta inseamna ca trebuie sa termine de procesat un bloc in maxim 512x0.125ms=64ms. Practic, procesorul termina de filtrat in vreo 5ms, daca imi amintesc bine; filtrele sunt de tip FIR si au 300 de prize. In orice caz are timp berechet. Folosesc functiile din libraria C30. dsPICul este fugarit la 40MIPS.

http://www.elforum.info/viewtopic.php?f=285&t=145496

Eu nu am fost asa norocos ca cineva sa imi raspunda.

Viata e nedreapta. :)
Caut un algoritm simplu..
Mai simplu de-atat nu cred ca gasesti.
Daca formula de mai sus o aplic pentru un trece sus si pentru un trece jos obtin trece banda ?
Nu. Formula aia este pentru trece jos de ordinul 1. Ptr trece sus se face altfel.
Ce fac astia aici, ca dau mai mult joase asta e simplu: Ei fac corectia doar pe 8 canale.
Simplu? Bun, realizeaza filtrul pe 8 canale, apoi mareste nr de canale treptat. De asemenea, daca instalezi compilatorul C30 de la Micrichip, vei avea la dipozitie un numar de librarii pentru DSP, printre care si filtru IIR. Egalizoarele grafice folosesc in general filtre IIR ai caror coeficienti genereaza o configuratie de tip biquad. Nu se prea foloseste filtrarea bazata pe FFT, adica in domeniul frecventa. E mai practic sa filtrezi in domeniul timp facand convolutie.

 

Uite doua articole interesante despre calculul si realizarea egalizoarelor grafice cu DSP:

http://www.musicdsp.org/files/Audio-EQ-Cookbook.txt

http://www.musicdsp.org/files/EQ-Coefficients.pdf

Link spre comentariu

Legat de executie, se pot gasi placi de genul asta pe internet:

Posted Image

 

Se gasesc atat ptr 0.4 cat si ptr 0.5mm (am cateva cumparate ptr un alt proiect).

Credeti ca se poate realiza mai usor cu asa ceva?

Scapi de traseele mai inghesuite, trebuie doar sa lipesti chipul, insa trebuie sa-ti proiectezi restul placii dupa headerele alea.

Link spre comentariu

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 cont

Autentificare

Ai deja un cont? Autentifică-te aici.

Autentifică-te acum



×
×
  • Creează nouă...

Informații Importante

Am plasat cookie-uri pe dispozitivul tău pentru a îmbunătății navigarea pe acest site. Poți modifica setările cookie, altfel considerăm că ești de acord să continui.Termeni de Utilizare si Ghidări