Funcția de fereastră

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare

Î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 dreptunghiulară; B = 1,00

Fereastra Hamming

Fereastra Hamming; B = 1,37

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] .

[5]

Notă:

Fereastra Hann

Fereastra Hann; B = 1,50
[5]

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

Fereastra cosinus; B = 1,24
[5]

Notă:

  • cunoscută și sub numele de fereastră sinusoidală

Fereastra Lanczos

Fereastra Lanczos; B = 1,31

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 lui Bartlett; B = 1,33

Fereastra triunghiulară (nu nulă la capete)

Fereastra triunghiulară; B = 1,33

Fereastra Gauss

Fereastra Gauss, σ = 0,4; B = 1,45

Fereastra Bartlett-Hann

Fereastra Bartlett-Hann; B = 1,46

Ferestrele Blackman

Fereastra lui Blackman; α = 0,16; B = 1,73

Ferestrele Blackman sunt definite ca: [5]

Notă:

  • Printr-o convenție comună, termenul fereastra lui Blackman se referă la cazul α = 0,16.

Ferestre Kaiser

Fereastra Kaiser, α = 2; B = 1,5
Fereastra Kaiser, α = 3; B = 1,8

unde de exemplu .

Notă:

Fereastra Nuttall cu prima derivată continuă

Fereastra Nuttall, prima derivată continuă; B = 2,02
[5]

Fereastra Blackman-Harris

Fereastra Blackman-Harris; B = 2,01
[5]

Blackman - Fereastra Nuttall

Fereastra Blackman-Nuttall; B = 1,98
[5]

Geam maxim plat

Fereastra maxim plana; B = 3,77

(vârf plat)

[5]

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

Atenuarea benzii între diferitele 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ă

  1. ^ Eric W. Weisstein, Enciclopedia Concisă a Matematicii CRC, CRC Press, 2003, ISBN 1-58488-347-2 .
  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 .
  3. ^ Curtis Roads, Microsound , MIT Press, 2002, ISBN 0-262-18215-7 .
  4. ^ 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.
  5. ^ a b c d e f g h Formați ferestre :
    au doar 2K + 1 coeficienți DFT diferiți de zero, ceea ce le face o alegere bună pentru aplicațiile care necesită o fereastră de convoluție a domeniului de timp. În aceste aplicații, DFT-ul vectorului de date fără ferestre este necesar pentru alte aplicații decât analiza spectrală
  6. ^ Milton Abramowitz și Irene Stegun Manual de funcții matematice (Dover, New York, 1964) (capitolele 9 , 10 , 11 )

Bibliografie

  • 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 .

Elemente conexe

Alte proiecte

linkuri externe

Inginerie Portal de inginerie : accesați intrările Wikipedia care se ocupă de inginerie