Sari la conținut
ELFORUM - Forumul electronistilor

Filtru digital cu dsPIC33F


mircang9

Postări Recomandate

multzam pentru raspunsuri.

si, da, si mie mi se pare ceva cam varza.

Faza este ca noi avea PIC-uri diferite, dar sa exemplificam pe

 

La dsPIC33f ar trebuie sa fie A/D pe 12 biti la 500KS/s sau pe 10 biti la 1MS/s

40MIPS - adica 40Mega instructiuni pe secunda

 

In varianta pe care o am eu am doar 10 biti la 1MS/s.

Cu PWM-ul am sa ma uit mai atetent cum este.

Schema pe care am vrut la acea vreme sa o fac este:

http://www.elforum.info/viewtopic.php?f=39&t=58489

numai ca programul era in C, iar eu nu lucrez in C prntru PIC, dar au dat si HEX-ul.

 

I-am scris bulgarului: "tata, cum se aude, e suficient pe 10 biti ?" Si el mi-a raspuns ca "este doar pentru joase".

 

Cam cu ce ati scris voi am vrut sa o modific (sa aiba si corectie) numai ca eu ma gandeam putin altfel. Sa ii fac transformata Fourier (FFT) elimin din frecvente si apoi invers. Am descarcat de pe Microchip niste proceduri pentru Fourier pentru dsPIC. O ciudatenie ca trebuia sa instalezi ceva care urma sa fie folosit in cadrul MPLAB si asa am renuntat....

Eu nu folosesc nici macar interfata MPLAB ca mi se pare prea complicat. Scriu fisierul in Natepad si apoi "il compliez" si il fac HEX.

 

Asta este intrebarea: ar merge schema aia si pentru inalte si medii ? Si ma gandeam ca din acest dsPIC sa ii dau si controlul pentru SMPS (sursa de alimetare). Daca merge vrajeala ar iesi un "class H frumos" Adica sa modifice puterea SMPS-ului pe acei finali.

 

Va rog sa ma ajutati macar sa intuiesc daca claritatea sunetului astfel ar fi mai buna decat la TDA7294. Nu am pretentia sa se auda mai clar decat IPA200.

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

Top autori în acest subiect

  • mircang9

    13

  • Mondan

    3

  • cirip

    2

  • 10vid

    1

Top autori în acest subiect

Imagini postate

Partea cu filtrarea este floare la ureche. Eu am facut un filtru ce filtreaza benzimult mult mai inguste ( 60 Hz latimea ). Si sunt sigur ca merge si la filtrarea frecventelor joase, medii si inalte. Problema ar fi peste 4 KHz, avand in vedere accesul la memorie. Filtru FIR este foarte bun. Vorbesc de ce am reusitsa fac pana acum, nu ce s-ar putea face. Nu cred ca exista o metoda mai bunadecat C la dsPIC microcontrollere. Assemblerul intr-adevar aduce o optimizarein plus si este mult mult mai greu de scris decat C, altfel n-ar fi aparut compilatoarelede C. Mplab este foarte simplu: folosesti cateva butoane din meniu: build, erase,program iar la debugg start, halt, reset si step in si cam atat.

Link spre comentariu

Asa cum rezistentele si condensatoarele se inseriaza, "la fel" se pot inseriasi dsPIC33Furile pentru a filtra perfect un semnal. Vorbesc de filtrare trece banda. Am folosit de data asta 256 esantioane si coeficienti. Fs = 8KHz.Bufferele ADC si PWM, toate in DMA. Cu DMA am reusit sa setez frecventaFs de esantionare chiar si la 44.1 KHz fara ca sa apara acele distorsiuni de carevorbeam. Se vede clar ca din cauza accesului la memorie apareau acele distorsiuni sau zgomote. Iata in pozele de mai jos facute in Matlab 7 analiza spectralaa semnalelor filtrate. Am aplicat tehnica restrangerii la narrow 10 adica Fp1 = Fc-10 Hz( necesar Fc-30 Hz ) si Fp2 = Fc+10Hz ( necesar Fc+30 Hz ) pentru a elimina a 4-a filtrare succesiva ( al 4-lea dsPIC33F ). Ideal este ca numarul de dsPICuri inseriatesa fie cat mai aproape de 1 sau chiar unu pentru a se evita pierderile de informatie in semnalul modulat FSK. In pozele atasate prezint filtrarea canalului 7 cu Fc = 1140 Hz. Fp1 = 1110 Hz si Fp2 = 1170 Hz.Prima poza este iesirea din primul dsPIC si intrarea in al 2-lea. A 2-a poza este iesirea din al 2-lea dsPIC si intrarea in al 3-lea dsPIC33F. A 3-a poza este iesirea din al 3-lea dsPIC33F "inseriat" ( cascadat ). Se observa succesiv eliminarea frecventelor de la canalul 6 invecinat cu frecventa centrala Fc = 1020 Hz ( Fp1 = 990 Hz;Fp2 = 1050 Hz ). Este chiar mai bine decat filtrarea fir1 facuta cu Matlab care este afisata in a 4-a poza. In Matlab filtrarea fir1 era la Fs = 44.1 KHz si la 1000 esantioane si coeficienti cu microprocesorul AMD 1.8 GHz !!!!Cele 3 dsPIC33F "inseriate" le voi pune pe aceeasi placa.Deci se poate !!! Si astea in conditiile in care pe linia telefonica canalul 6 are amplitudine de 10-15 ori mai mare decat canalul 7 !!!! ***** :da

post-23035-139829340619_thumb.jpg

post-23035-13982934062_thumb.jpg

post-23035-139829340622_thumb.jpg

post-23035-139829340625_thumb.jpg

Link spre comentariu

Momentan capitolul asta cu filtrarea il las asa cum este. Il continui prin ianuarie 2012.Cred ca am ajuns la faza de a trece la efectuarea hardware cu procesoare dsPIC33Finseriate, dar n-am acum bani si am destul de lucru pana atunci cu socketzi, http,server web, automatizare grup electrogen, rs232, interfata telemecanica in visual c++ etc.Intre timp sunt curios ce ati mai reusit si voi la capitolul asta. Cat despre filtre IIRam inteles ca nu s-ar prea merita sa ma complic intrucat sunt mai greu de implementat,sunt instabile ( n-au o caracteristica liniara in functie de faza asa cum este la FIR )chiar daca filtrarea este mai abrupta.Succese *** :101

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