File proveniente da Wikimedia Commons. Clicca per visitare la pagina originale

File:Window function (comparsion).png

Da Wikipedia, l'enciclopedia libera.
Vai alla navigazione Vai alla ricerca

File originale(988 × 726 pixel, dimensione del file: 54 KB, tipo MIME: image/png)

Logo di Commons
Logo di Commons
Questo file e la sua pagina di descrizione (discussione · modifica) si trovano su Wikimedia Commons (?)

Dettagli

Descrizione
English: Comparison of different window functions
Data
Fonte Own Work by user Marcel Müller
Autore Marcel Müller
Licenza
(Riusare questo file)
Marcel Müller da en.wikipedia.org, detentore del copyright su quest'opera, dichiara di pubblicarla con la seguente licenza:
w:it:Creative Commons
attribuzione condividi allo stesso modo
Questo file è disponibile in base alla licenza Creative Commons Attribuzione-Condividi allo stesso modo 3.0 Unported Soggetto a disclaimer.
Attribuzione: Marcel Müller da en.wikipedia.org
Tu sei libero:
  • di condividere – di copiare, distribuire e trasmettere quest'opera
  • di modificare – di adattare l'opera
Alle seguenti condizioni:
  • attribuzione – Devi fornire i crediti appropriati, un collegamento alla licenza e indicare se sono state apportate modifiche. Puoi farlo in qualsiasi modo ragionevole, ma non in alcun modo che suggerisca che il licenziante approvi te o il tuo uso.
  • condividi allo stesso modo – Se remixi, trasformi o sviluppi il materiale, devi distribuire i tuoi contributi in base alla stessa licenza o compatibile all'originale.
Questo tag di copyright è stato aggiunto nell'ambito dell'aggiornamento della licenza dei progetti Wikimedia.
GNU head È permesso copiare, distribuire e/o modificare questo documento in base ai termini della GNU Free Documentation License, Versione 1.2 o successive pubblicata dalla Free Software Foundation; senza alcuna sezione non modificabile, senza testo di copertina e senza testo di quarta di copertina. Una copia della licenza è inclusa nella sezione intitolata Testo della GNU Free Documentation License. Soggetto a disclaimer.
Questa immagine (categorizzazione automatica: graph) o tutte le immagini in questa categoria o galleria dovrebbero essere ricreate usando grafica vettoriale come file SVG. Questo offre diversi vantaggi: vedi Commons:Media for cleanup per maggiori informazioni. Se è disponibile una versione in formato SVG di questa immagine, per favore caricala. Dopo aver caricato un file SVG, sostituisci questo avviso con il template {{Vector version available|nome_immagine.svg}}.

Image details and source code

The image is created with Mathematica 3.0 and some beautifications with CorelDraw 7.0. Due to the old versions no SVG export is available.

Init

<< Graphics`Graphics`
<< Graphics`Legend`

Parameters

Len = 4096;   (* Window length *)
Oversamp = 8; (* Oversampling *)

Helper functions

CreateWindow[winfn_] := Table[winfn[p/Len], {p,0,Len}]

DoFFT[data_] := Chop@Take[
  Fourier[RotateLeft[Join[data, Table[0, {Oversamp*(Length[data]-1)-Length[data]}]], (Length[data]-1)/2]],
  (Length[data]-1)*Oversamp/2+1]

GetEnvelope[data_] := Block[
  {min = 1, max, last = data[[1]]},
  While[data[[min+1]] < last*1.001, last=data[[++min]]];
  Map[
    {#,data[[#]]}&,
    {Range[min], Select[Range[2, Length[data]-1], # > min && data[[#-1]] < data[[#]] > data[[#+1]]&]},
    {2}]
]

PlotWin[winfo_,opt___] := Block[
  {fft = Abs@DoFFT@CreateWindow@winfo[[2]]},
  ListPlot[
    20*Log[10, fft/fft[[1]]+1*^-12],
    GridLines->Automatic, PlotJoined->True, Frame->True, PlotRange->All, opt]
]

PlotWin2[winfo_,opt___] := Block[
  {fft = GetEnvelope@Abs@DoFFT@CreateWindow@winfo[[2]]},
  {LogLinearListPlot[
     {#[[1]]/Oversamp, 20*Log[10,#[[2]]/fft[[1,1,2]]+1*^-12]}& /@ fft[[1]],
     GridLines->Automatic, PlotJoined->True, Frame->True, PlotRange->All, opt],
   LogLinearListPlot[
     {#[[1]]/Oversamp, 20*Log[10,#[[2]]/fft[[1,1,2]]+1*^-12]}& /@ fft[[2]],
     GridLines->Automatic, PlotJoined->True, Frame->True, PlotRange->All, opt]}
]

Colors = Apply[
  RGBColor,
  {{0,0,0}, {1,0,0}, {0,0,1}, {0,.7,0}, {.8,0,.8}, {0,.6,.6}, {.6,.6,0}, {.5,.5,.5}},
  {1}];

Dashings = AbsoluteDashing/@(2{{} (*, {4,2}, {4,2,2,2}*)});

GetStyle[i_] :=
  {Colors[[Mod[i-1,Length[Colors]]+1]],
   Dashings[[Mod[Quotient[i-1,Length[Colors]], Length[Dashings]]+1]]}

Window Functions

GaussWin[sigma_] = Exp[-.5 * ((2#-1)/sigma)^2]&;

CosWin[a__] = Apply[Plus, {a} * Table[(-1)^p Cos[2 Pi p #], {p, 0, Length[{a}]-1}]]&;

KaiserWin[alpha_] = BesselI[0, Pi alpha Sqrt[1 - (2#-1)^2]] / BesselI[0, Pi alpha]&;

WinFN = {
  {"Recangular",        1&,                                          1.},
  {"Gauss \[Sigma]=.4", GaussWin[.4],                                1.45},
  {"Hamming",           CosWin[.53836,.46164],                       1.37},
  {"Hann",              CosWin[.5,.5],                               1.5},
  {"Bartlett",          1-Abs[2#-1]&,                                1.33},
  {"Bartlett-Hann",     .62-.48Abs[#-.5]-.38Cos[2Pi#]&,              1.46},
  {"Blackman",          CosWin[.42,.5,.08],                          1.73},
  {"Kaiser \[Alpha]=1", KaiserWin[1],                                1.2},
  {"Kaiser \[Alpha]=2", KaiserWin[2],                                1.5},
  {"Kaiser \[Alpha]=3", KaiserWin[3],                                1.8},
  {"Nutall",            CosWin[.355768,.487396,.144232,.012604],     2.01},
  {"Blackman-Harris",   CosWin[.35875,.48829,.14128,.01168],         2.01},
  {"Blackman-Nutall",   CosWin[.3635819,.4891775,.1365995,.0106411], 1.98},
  {"Flat top",          CosWin[1,1.93,1.29,.388,.032],               3.77}
};

Test Results

PlotWin[WinFN[[-1]]];

PlotWin2[WinFN[[-1]]];

ListPlot@CreateWindow[WinFN[[-1,2]]];

LogLogListPlot[DoFFT@CreateWindow[WinFN[[-1,2]]],
  PlotRange->All, PlotJoined->True, GridLines->Automatic];

DoFFT@CreateWindow[WinFN[[-1,2]]]

GetEnvelope[Abs@DoFFT[CreateWindow[WinFN[[1,2]]]]]

Results

gr = Show[MapIndexed[
  PlotWin2[#, DisplayFunction->Identity, PlotStyle->GetStyle[#2[[1]]]&, WinFN],
  DisplayFunction->$DisplayFunction, PlotRange->{All, {-145,5}}];

gr2 = ShowLegend[
  gr, {MapIndexed[{Graphics[Append[GetStyle[#2[[1]]], Line[{{0,0},{1,0}}]]],#[[1]]}&, WinFN],
  LegendShadow->{0,0}, LegendPosition->{-.8,-.5}, LegendSize->{.4,.55}, LegendTextSpace->5}];

Licenza

Marcel Müller da en.wikipedia.org, detentore del copyright su quest'opera, dichiara di pubblicarla con la seguente licenza:
w:it:Creative Commons
attribuzione condividi allo stesso modo
Questo file è disponibile in base alla licenza Creative Commons Attribuzione-Condividi allo stesso modo 3.0 Unported Soggetto a disclaimer.
Attribuzione: Marcel Müller da en.wikipedia.org
Tu sei libero:
  • di condividere – di copiare, distribuire e trasmettere quest'opera
  • di modificare – di adattare l'opera
Alle seguenti condizioni:
  • attribuzione – Devi fornire i crediti appropriati, un collegamento alla licenza e indicare se sono state apportate modifiche. Puoi farlo in qualsiasi modo ragionevole, ma non in alcun modo che suggerisca che il licenziante approvi te o il tuo uso.
  • condividi allo stesso modo – Se remixi, trasformi o sviluppi il materiale, devi distribuire i tuoi contributi in base alla stessa licenza o compatibile all'originale.
Questo tag di copyright è stato aggiunto nell'ambito dell'aggiornamento della licenza dei progetti Wikimedia.
GNU head È permesso copiare, distribuire e/o modificare questo documento in base ai termini della GNU Free Documentation License, Versione 1.2 o successive pubblicata dalla Free Software Foundation; senza alcuna sezione non modificabile, senza testo di copertina e senza testo di quarta di copertina. Una copia della licenza è inclusa nella sezione intitolata Testo della GNU Free Documentation License. Soggetto a disclaimer.

Registro originale del caricamento

La pagina di descrizione originale era qui. Tutti i nomi utente che seguono sono riferiti a en.wikipedia.
  • 2007-01-19 20:25 Marcel Müller 988×726×??? (82239 bytes) Frequency response of the window functions. The double logarithmic plot shows the magnitude in dB over the normalized frequency. Besides the main lobe only the envelope of the frequency response is shown. This is more clearly and allows a quick comparsion

Didascalie

Aggiungi una brevissima spiegazione di ciò che questo file rappresenta

Elementi ritratti in questo file

raffigura

Cronologia del file

Fare clic su un gruppo data/ora per vedere il file come si presentava nel momento indicato.

Data/OraMiniaturaDimensioniUtenteCommento
attuale23:53, 2 ott 2016Miniatura della versione delle 23:53, 2 ott 2016988 × 726 (54 KB)CmdrjamesonCompressed with pngout. Reduced by 26kB (33% decrease).
03:42, 23 ago 2008Miniatura della versione delle 03:42, 23 ago 2008988 × 726 (80 KB)File Upload Bot (Magnus Manske) {{BotMoveToCommons|en.wikipedia}} {{Information |Description={{en|Comparison of different window functions}} |Source=Transferred from [http://en.wikipedia.org en.wikipedia]; transferred to Commons by User:Sfan00_IMG using [http://tools.wikimedia.de/~

La seguente pagina usa questo file:

Utilizzo globale del file

Anche i seguenti wiki usano questo file: