Sari la conținut
ELFORUM - Forumul electronistilor

Filtrarea digitala a spectrlui de frecvente


Mondan

Postări Recomandate

Nu am stiut unde se incadreaza asta si am ajuns aici. In momentul de fata nu ma intereseaza notiunea pentru scoala, ci doar din pasiune. Faza e asa: Sa zicem ca ai un spectrul de frecvent, dar de un analizator spectral. Daca fiecare canal ar fi o coloana de nisip, si astea ar cade ape rand ar forma jos mici gramezi, care adunate ar da functia de convolutie.Aplicand metoda asta convolutia cu o functie cunoscuta spectrului si obtin "ceva" pe care il considera spectrul filtrata de zgomot.Numesc asta "digital filter".Aici fiind pe forum imi permit sa spun ca consider metoda asta o porcarie. Poate cineva sa ma lamureasca daca gresec (nu de putine ori am gresit).

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

Top autori în acest subiect

  • cirip

    16

  • mircang9

    15

  • nr4

    3

  • Mondan

    3

Top autori în acest subiect

Imagini postate

Salut,

 

Adevarul e ca ai cam venit in intampinarea unei intentii a mea de a scrie un tutorial depsre filtre digitale, dar am ezitat din lipsa de timp, am indoieli ca va starni interesul si pentru ca e destul de complicat. Dar sa o luam pe rand ...

 

Faza e asa: Sa zicem ca ai un spectrul de frecvent, dar de un analizator spectral. Daca fiecare canal ar fi o coloana de nisip, si astea ar cade ape rand ar forma jos mici gramezi, care adunate ar da functia de convolutie.
De unde pana unde e asta functia de convolutie? Cred ca te referi la functia pondere sau "impulse response" cum i se spune in engl., dar nici asta nu e.

 

Pe scurt, functia pondere este transformata Fourier inversa a caracteristicii de frecventa a filtrului. Ca sa filtrezi, o varianta este sa faci convolutia semnalului cu functia pondere a filtrului.

 

Aplicand metoda asta convolutia cu o functie cunoscuta spectrului si obtin "ceva" pe care il considera spectrul filtrata de zgomot.
Aici m-ai pierdut complet ... :jytuiyu

 

Numesc asta "digital filter".

Aici fiind pe forum imi permit sa spun ca consider metoda asta o porcarie.

Aha. Si ce propui in loc? De exemplu ai un semnal digital care contine esantioanele sumei a doua sinusuri: de 1KHz si de 2.3KHz. Cum faci ca sa-l filtrezi pe cel de 1KHz?

 

Poate cineva sa ma lamureasca daca gresec (nu de putine ori am gresit).
Poate, dar nu e clar ce vrei. Filtrarea se poate face prin 2 metode: in timp sau in frecventa. Or mai fi si altele dar nu-mi sunt familiare.

->In timp, se face convolutia semnalului cu functia pondere a filtrului si rezulta semnalul filtrat.

->In frecventa, se face transformata Fourier pe termen scurt a semnalului, se inmulteste cu tr. F. a filtrului, apoi se face tr F inversa a rezultatului ca sa revii in timp. Solicita efort mare de calcul si in plus trebuiesc luate masuri speciale ca sa nu apara discontinuitati in semnal. Exista cazuri in care filtrarea in frecventa este preferata convolutiei in timp, chiar daca transpira mai mult procesorul, dar nu imi vine in minte un caz concret.

 

Daca imi fac un pic de timp, o sa ticluiesc un spreadsheet excel care sa demonstreze functionarea unui filtru digital. E destul de dragut, dupa parerea mea.

 

Cirip

Link spre comentariu

Pentru yo9how - te iau pe scanner. Deocamdata nu pot sa emit ca n-am indicativ, dar timpul este aproape...

Tu ai o pasinune ce esti radioamator asa cum afirmai pe statie si ce are lumea cu tine, eu am o pasiune sa studiez tampeniile astea.... nu castig nici un fel ban din acest studiu, nici vreo nota, ba din contra cheltui eu niste bani,...

De unde pana unde e asta functia de convolutie?

http://mathworld.wolfram.com/Convolution.html

Ma refer la functia aia clopot din linkul de mai sus. Am sa incerc sa scriu putin mai corect. Desenul e aiurea facut, pentru ca are logica daca linia vericala verde are o "grosime".

Deci tu ce faci, iei ficare "bucata infinitezimal" din functia de mai sus si o redistrubui ca arie dupa functia de3 mai jos. Cam la asta ma refer. Am softul Mathematica.

Aplicand metoda asta convolutie cu o functie cunoscuta spectrului si obtin "ceva" pe care il considera spectrul filtrata de zgomot

Depinde cum definim filtrul digital. In cele mai multe cazuri, aplicare unui filtru digital este echivalenta cu a face derivata a doua a spectrului. Si astfel ei considera caracteristica din spctru care sa zicem ar fi sub forma de "clopot", ca apare atunci cand viteza de crestere a spectrului este mare. Dar in varful clopotului viteaza de crestere e zero. De aia se face a doua.

 

"Aha. Si ce propui in loc? De exemplu ai un semnal digital care contine esantioanele sumei a doua sinusuri: de 1KHz si de 2.3KHz. Cum faci ca sa-l filtrezi pe cel de 1KHz?"
raspusul asta este clar, dar eu vorbesc de cazul in care una din ele, sa zicem zgomotul este de un spectru de frecvente necunoscut.

El apare sa zicem in functie de un eveniment aleator mereu sub alta forma.

Daca imi fac un pic de timp, o sa ticluiesc un spreadsheet excel care sa demonstreze functionarea unui filtru digital. E destul de dragut, dupa parerea mea.Cirip

Este, dar cu conditia sa fie clar.

In imaginea atasata, ceea ce cunosc este doar matematic cum am trebui sa arate, dar nu stiu dimensiunile lui(1) si in (3) imaginea oferita de un analizor spectral.

Intrebarea este - dar cunosc foarte bine cum ar trebui sa arate (adica functia fara coeficienti) si am si inregistrarea pe analizor (3), dar nu cunosc foarma zgomotului, pot sa ghicesc forma reala a lui (1) ?

Daca n-am fost clar astept.

post-27575-139829306234_thumb.jpg

Link spre comentariu

Salut,Atentie la citate! Mi-ai atribuit un text care nu imi apartine si nu se mai intelege nimic.Functia clopot de pe wolfram este un simplu exemplu de cum merge convolutia. Nu ilustreaza relatia dintre convolutie si filtrare. Asta rezulta din proprietatile tr. F. In cuvinte, fiecare valoare a functiei de convolutie este data de suma produselor partiale ale celor doua functii implicate (una dintre ele inversata in timp) in operatie sau aria comuna la fiecare moment de timp. E mult mai intuitiv si usor de explicat pe un exemplu de convolutie discreta, nu continua. La discreta, integrala devine suma si e mai usor de inteles.Tot nu am priceput ce vrei sa faci. Ai un semnal afectat de zgomot aleator si vrei sa vezi forma zgomotului? Nu cumva vrei sa faci un notch care se acordeaza singur?In pozele alea ceea ce faci este suma spectrelor (presupunand ca axa x e frecventa, y este densitate de putere si ca o functie cu spectrul de tip salt treapta ar exista). Dat fiind ca suma transformatelor este transformata sumei originalelor, nu ai nevoie de convolutie. Produsul transformatelor este convolutia originalelor (functiile in timp) si exact asta este filtrarea: produsul transformatei semnalului cu cea a filtrului in domeniul frecventa.Revenind: ce vrei sa faci de fapt?Cirip

Link spre comentariu

In primul rand trebuie sa aprofundez domeniul si am nevoie de ajutorul vostru.Apoi vreau sa fac asa. Sa fac un analizor spectral in acea banda (GSM900). Apoi vreau sa folosesc un telefon si sa analizez spectral emisia fara sa am contact galvanic cu telefonul.Acest spectru, adica cel real, va fi suprapus peste zgomot, comunicatia altora in GSM900, care difera in functie de zi, ora de varf.Adica vreau sa observ nu numai canalul in care emite, ci si forma de clopot a emisiei.Vreau sa vad "clopotul" cat mai bine fara zgomotul care se suprapune peste clopotul meu si care - cred eu- ca poate sa ii "altereze" forma de clopot.Acum ma gandesc cum separ un "peak" pe care il cunosc doar ca forma nu ca inaltime sau grosime, sau pozitie de fonul care este necunoscut. Dar merg pe premiza ca fonul variaza mult mai lent decat peak-ul.

Link spre comentariu

Salut,Discutia a cam deviat de la filtrele digitale, dar indiferent ce semnal analizezi, este necesar sa tii cont de taica Nyquist, adica de rata de esantionare minima necesara. Daca nu, datele vor fi eronate. Dupa aia mai discutam de filtre si alte cele.Cirip

Link spre comentariu

Salut,Nu am deschis un subiect la tutoriale, ci am preferat sa-l continui pe asta, pentru ca nu e chiar tutorial ce am atasat. Teoria e destul de complicata, dar am vrut sa arat ca se poate. Mai mult, am realizat si practic pe un dsPIC filtrarea si merge, dar nu e periat inca.Explicatiile lipsesc pentru ca ma indoiesc ca o sa intereseze prea multa lume, dar daca exista amatori, intrebati si dezvoltam subiectul pe bucatele. Am postat si ca sa raspund celor cateva MPuri pe care le-am primit.Aveti atasat un fisier excel in care:-Pe prima pagina am sintetizat un semnal format din suma a doua sinusuri, unul de 45Hz si unul de 70Hz si ceva zgomot. Graficele reprezinta semnalul in timp si spectrul obtinut prin aplicarea FFT.-A doua pagina contine calculul coeficientilor (127 la numar) unui filtru trece banda intre 60-80Hz si graficul caracteristicii. Intentia e aceea de a filtra componenta de 70Hz din semnalul initial.-A treia pagina efectueaza filtrarea prin convolutia semnalului (2 sinusuri si zgomot) cu functia pondere (impulse response) a filtrului. Graficele arata semnalul inainte si dupa filtrare-A patra pagina face analiza spectrala (FFTul) a semnalului filtrat. Se observa ca a ramas componenta de 70Hz si ceva zgomot.Ideea e ca desepeala se poate face si demonstra in banalul Excel. Sper sa va placa. :)Cirip

Dig_Noise_Filt_Elforum.zip

Link spre comentariu

Salut!Am studiat partea de FTB si modul in care ai calculat coeficentii si am cateva intrebari:1. Ce reprezinta Fnorm? (intreb pentru ca vad ca utilizezi in aflarea h[n] si simplifica enorm munca)2. Cum a fost dedusa utilizarea lui Fnorm in h[n]?3. Cum s-au obtinut valorile din coloana Four?

Link spre comentariu
1. Ce reprezinta Fnorm? (intreb pentru ca vad ca utilizezi in aflarea h[n] si simplifica enorm munca)
Fnorm este frecventa normata si se calculeaza prin impartirea frecventei reale la frecv Nyquist, care la randul ei este jumatate din rata de esantionare.
2. Cum a fost dedusa utilizarea lui Fnorm in h[n]?
Functia pondere, h[n], este de obicei calculata pentru frecventa normata. "E de la ei", cum se zice. Mai in detaliu, se pleaca de un prototip de FTJ ideal (caramida) a carui frecv de taiere este 1. Facand invers-FFT, rezulta h[n] prototip cu frecv de taiere 1. Prin denormare ajungi la frecv reala dorita.
3. Cum s-au obtinut valorile din coloana Four?
Trebuie sa ai instalat Add-In-ul Analysis Toolpack din excel. Daca e instalat, cand clic pe tabul Data, in dreapta la capatul meniului apare Data Analysis. Clic si acolo gasesti FFT si alte functii dragute.
Link spre comentariu
Fnorm este frecventa normata si se calculeaza prin impartirea frecventei reale la frecv Nyquist, care la randul ei este jumatate din rata de esantionare.

Bun deci am inteles ca se urmareste normarea frecventei de taiere la frecventa lui Nyquist scoasa in functie de freceventa de esantionare dupa caz.

Functia pondere, h[n], este de obicei calculata pentru frecventa normata. "E de la ei", cum se zice. Mai in detaliu, se pleaca de un prototip de FTJ ideal (caramida) a carui frecv de taiere este 1. Facand invers-FFT, rezulta h[n] prototip cu frecv de taiere 1. Prin denormare ajungi la frecv reala dorita.

In formulele pe care le am eu, plecand de la Hideal(ejw)=e(-j*w*alfa)prin aplicarea IDFT se ajunge la formula:

htj[n]=sin((wc)*(n-alfa)) / pi(n-alfa)

Care este corespondenta intre aceasta formula si cea utilizta de tine:

htj[n]=sin(Fn*n*pi) / n*pi

w=omega;

Trebuie sa ai instalat Add-In-ul Analysis Toolpack din excel. Daca e instalat, cand clic pe tabul Data, in dreapta la capatul meniului apare Data Analysis. Clic si acolo gasesti FFT si alte functii dragute.

Ma intereseaza daca termenii aceia sunt obtinuti prin aplicarea FFT asupra coloanei Windowed h? (da sau ....)

Link spre comentariu
Bun deci am inteles ca se urmareste normarea frecventei de taiere la frecventa lui Nyquist scoasa in functie de freceventa de esantionare dupa caz.
Corect.

 

In formulele pe care le am eu, plecand de la Hideal(ejw)=e(-j*w*alfa)prin aplicarea IDFT se ajunge la formula:

htj[n]=sin((wc)*(n-alfa)) / pi(n-alfa)

Care este corespondenta intre aceasta formula si cea utilizta de tine:

htj[n]=sin(Fn*n*pi) / n*pi

w=omega;

E acelasi lucru. Daca notezi (n-alfa)=n', rezulta formula folosita de mine. Daca te uiti cu atentie, h[n] este de fapt o functie sinc (sinus cardinal). Se observa usor daca o pui pe un grafic.

 

Ma intereseaza daca termenii aceia sunt obtinuti prin aplicarea FFT asupra coloanei Windowed h? (da sau ....)
Da si asta deoarece caracteristica filtrului este Tr. Four. a functiei pondere, adica raspunsul la impulsul Dirac. Asta e chiar raspunsul cu care faci si convolutia ca sa filtrezi.

Poti sa plotezi si h[n] si FFT(h[n]) inainte de a aplica fereastra Hamming, si o sa vezi ca se obtine o caracteristica de frecventa mai nasoala.

Inca ceva. Atentie, filtrul trece banda e obtinut prin scaderea TF a doua filtre trece jos.

Link spre comentariu

Bun, am inteles cum se aplica filtrul FIR.Mai am o intrebare: de ce difera valorile din coloana "sin + zgomot" din foaia sin + zgomot de valorile din coloana "sin + zgomot" din foaia filtrat? (ma refer la cele 512 valori)Daca mai apare vreo nelamurire voi intreba.Acum daca ai putea sa faci si un exemplu pe aceeasi linie metodologica cu un filtru IIR:1. calculand coefiecientii prin functia model Butterworth.2. utilizand transformarea biliniara.Si pentru moment va ajunge tema de studiu.

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