Funcția de fereastră
În procesarea semnalului digital, o funcție de fereastră (cunoscută și sub numele de rețea de cântărire sau funcție de reducere a conului [1] ) este o funcție care are valoare zero în afara unui anumit interval. De exemplu, o funcție care este constantă în interval se numește fereastră dreptunghiulară . Atunci când o altă funcție este înmulțită cu o funcție de fereastră, produsul ia și valori nule în afara intervalului: nu mai rămâne decât „vizualizarea” prin fereastră.
O definiție mai generală a unei funcții de fereastră nu necesită anularea dintr-un interval, ci faptul că produsul pentru funcția de fereastră este o funcție pătrată însumabilă , adică funcția de fereastră se anulează suficient de repede [2] .
Aplicații
Aplicațiile funcțiilor ferestrelor includ analiza spectrală , proiectarea filtrelor digitale și formarea fasciculului . În aplicațiile tipice, ferestrele utilizate sunt curbe non-negative cu declin "în formă de clopot" [3] pe lângă funcțiile dreptunghiulare și triunghiulare.
Ferestre utilizate în mod obișnuit
Terminologie :
- reprezintă lățimea, în număr de eșantioane, a unei ferestre de timp discret. De obicei este o putere întreagă de 2, cum ar fi .
- este un număr întreg, care ia valori . Deci, acestea sunt versiuni traduse de Windows : , in care este maxim pentru .
Fereastra dreptunghiulară
Fereastra Hamming
Cosinusul ridicat cu acești coeficienți a fost propus de Richard W. Hamming . Înălțimea lobului lateral maxim este de aproximativ o cincime din fereastra Hann, un cosinus ridicat cu coeficienți mai simpli [4] .
Notă:
Fereastra Hann
Notă:
- Ferestrele Hann și Hamming, ambele ale familiei cunoscute sub numele de ferestre „cosinus ridicat”, poartă numele lui Julius von Hann și, respectiv, al lui Richard Hamming . Termenul „fereastră Hanning” este uneori folosit pentru a se referi la fereastra Hann.
Fereastra cosinus
Notă:
- cunoscută și sub numele de fereastră sinusoidală
Fereastra Lanczos
Notă:
- sinc (x) este definit ca sin (πx) / (πx)
- cunoscută și sub numele de fereastra sinc , deoarece :
- este lobul principal al unei funcții sinc normalizate
Fereastra lui Bartlett (nimic la extrem)
Fereastra triunghiulară (nu nulă la capete)
Fereastra Gauss
Fereastra Bartlett-Hann
Ferestrele Blackman
Ferestrele Blackman sunt definite ca: [5]
Notă:
- Printr-o convenție comună, termenul fereastra lui Blackman se referă la cazul α = 0,16.
Ferestre Kaiser
unde de exemplu .
Notă:
- este funcția Bessel modificată de primul fel și ordinul 0 [6]
Fereastra Nuttall cu prima derivată continuă
Fereastra Blackman-Harris
Blackman - Fereastra Nuttall
Geam maxim plat
(vârf plat)
Fereastra Bessel
Ferestrele Dolph-Chebyshev
Fereastra Dolph-Chebyshev permite obținerea unor lobi laterali, în domeniul transformat, echilibru. Următorul cod C ++ permite producerea cronologiei eșantioanelor unei ferestre Dolph-Chebyshev No_points lungi și cu un nivel final de lobi egal cu sl_level . Pentru compilare este necesar să utilizați unele anteturi ale bibliotecii matematice GNU \ GSL, descărcabile sub licența GNU de pe site-ul https://www.gnu.org/software/gsl/ .
COD C ++
#include <gsl / gsl_math.h>
#include <gsl / gsl_vector.h>
#include <gsl / gsl_complex_math.h>
gsl_vector * chebwin ( int No_points , double sl_level ) {
int N = No_points - 1 ;
alfa dublu = sl_level / 20.0 ;
dublu beta = cosh ( 1 / ( dublu ) N * gsl_acosh ( pow ( 10.0 , alfa )));
double den = cosh ( N * gsl_acosh ( beta ));
gsl_vector * fft_array = gsl_vector_alloc ( No_points );
gsl_vector * A = gsl_vector_alloc ( N );
pentru ( int k = 0 ; k < N ; k ++ )
gsl_vector_set ( A , k , beta * cos ( M_PI * k / ( dublu ) N ));
gsl_vector_complex * W = gsl_vector_complex_alloc ( N );
pentru ( int k = 0 ; k < N ; k ++ ) {
dublu x = gsl_vector_get ( A , k );
gsl_complex z = gsl_complex_arccos_real ( x );
z = gsl_complex_mul_real ( z , N );
z = gsl_complex_cos ( z );
gsl_vector_complex_set ( W , k , gsl_complex_mul_real ( z , pow ( -1.0 , ( double ) k ))));
}
gsl_complex z = gsl_complex_rect ( 1 / den , 0 );
gsl_vector_complex_scale ( W , z );
gsl_vector * w = gsl_vector_alloc ( N );
for ( int n = 0 ; n < N ; n ++ ) {
gsl_complex sum = gsl_complex_rect ( 0 , 0 );
pentru ( int k = 0 ; k < N ; k ++ )
sum = gsl_complex_add ( sum , gsl_complex_mul_real ( gsl_complex_rect ( cos ( 2 * M_PI * k * n / N ), sin ( 2 * M_PI * k * n / N )), GSL_REAL ( gsl_vector_complex_get ( W , k )))));
gsl_vector_set ( w , n , GSL_REAL ( sumă ));
}
gsl_vector_scale ( w , 1 / ( dublu ) N );
gsl_vector_set ( w , 0 , gsl_vector_get ( w , 0 ) / 2.0 );
pentru ( int n = 0 ; n < N ; n ++ )
gsl_vector_set ( fft_array , n , gsl_vector_get ( w , n ));
gsl_vector_set ( fft_array , No_points -1 , gsl_vector_get ( w , 0 ));
gsl_vector_scale ( fft_array , 1 / gsl_vector_max ( fft_array ));
// depanare ////////
// FIȘIER * f;
//fopen_s(&f,"C:\\test_fft.txt "," w ");
// gsl_vector_fprintf (f, fft_array, "% f");
// fclose (f);
/////////
return ( fft_array );
}
Taylor windows
Comparație între diferite ferestre
Când alegeți o funcție de fereastră adecvată, această diagramă de comparație poate fi utilă. Graficul arată doar detaliile lobului principal al răspunsului în frecvență al ferestrei. Axa de frecvență are ca unitate „coșurile” FFT atunci când fereastra de lungime N este aplicată datelor și se efectuează o transformare a lungimii N.
Pot fi utilizate și alte valori, cum ar fi lățimea lobului principal și nivelul maxim al lobilor laterali, care determină respectiv posibilitatea rezolvării semnalelor de intensitate comparabilă la frecvențe din apropiere și semnale de intensități diferite la frecvențe mai îndepărtate. De exemplu fereastra dreptunghiulară este cea mai bună alegere pentru lățimea lobului principal și cea mai proastă alegere pentru nivelul lămpilor laterale.
Ceea ce nu se vede din grafic este că fereastra dreptunghiulară are cea mai bună bandă de zgomot și este cea mai bună alegere pentru detectarea unei unde sinusoidale SNR scăzute.
Notă
- ^ Eric W. Weisstein, Enciclopedia Concisă a Matematicii CRC, CRC Press, 2003, ISBN 1-58488-347-2 .
- ^ Carlo Cattani și Jeremiah Rushchitsky, Wavelet and Wave Analysis As Applied to Materials With Micro Or Nanostructure , World Scientific, 2007, ISBN 981-270-784-0 .
- ^ Curtis Roads, Microsound , MIT Press, 2002, ISBN 0-262-18215-7 .
- ^ Loren D. Enochson și Robert K. Otnes, Programare și analiză pentru datele din seria digitală de timp , Departamentul SUA pentru apărare, șoc și vibrații. Centrul de informații, 1968, p. 142.
- ^ a b c d e f g h Formați ferestre :
- ^ Milton Abramowitz și Irene Stegun Manual de funcții matematice (Dover, New York, 1964) (capitolele 9 , 10 , 11 )
Bibliografie
- Fredric j. Harris, „Despre utilizarea Windows pentru analiza armonică cu transformarea discretă Fourier” , în Proceedings of the IEEE , vol. 66, nr. 1, ianuarie 1978, pp. 51–83. Articol despre ferestre pentru FFT care introduce majoritatea valorilor pentru evaluarea diferitelor ferestre.
- Albert H. Nuttall, Câteva ferestre cu un comportament foarte bun la nivelul sidelobului , în IEEE Transactions on Acoustics, Speech, and Signal Processing , vol. 29, nr. 1, februarie 1981, pp. 84-91. Extinderea articolului lui Harris.
- Oppenheim, Alan V ; Schafer, Ronald W.; Buck, John A., Procesarea semnalului în timp discret , Upper Saddle River, NJ, Prentice Hall, 1999, pp. 468–471, ISBN 0-13-754920-2 .
- SWA Bergen, A. Antoniou, Design of Ultraspherical Window Functions with Prescribed Spectral Characteristics , in EURASIP Journal on Applied Signal Processing , vol. 2004, nr. 13, 2004, pp. 2053–2065, DOI : 10.1155 / S1110865704403114 .
- SWA Bergen, A. Antoniou, Proiectarea filtrelor digitale nerecursive folosind funcția fereastră ultrasonică , în Jurnalul EURASIP privind procesarea semnalului aplicat , vol. 2005, nr. 12, 2005, pp. 1910–1922, DOI : 10.1155 / ASP . 2005.1910 .
Elemente conexe
Alte proiecte
- Wikimedia Commons conține imagini sau alte fișiere în funcția Window
linkuri externe
- Ajutor LabView, caracteristicile filtrelor de netezire, http://zone.ni.com/reference/en-XX/help/371361B-01/lvanlsconcepts/char_smoothing_windows/
- Evaluarea diferitelor funcții ale ferestrei folosind Multi-Instrument, http://www.multi-instrument.com/doc/D1003/Evaluation_of_Various_Window_Functions_using_Multi-Instrument_D1003.pdf