File:Window function (comparsion).png
Da Wikipedia, l'enciclopedia libera.
Vai alla navigazione
Vai alla ricerca
Dimensioni di questa anteprima: 800 × 588 pixel. Altre risoluzioni: 320 × 235 pixel | 640 × 470 pixel | 988 × 726 pixel.
File originale (988 × 726 pixel, dimensione del file: 54 KB, tipo MIME: image/png)
Questo file e la sua pagina di descrizione (discussione · modifica) si trovano su Wikimedia Commons (?) |
Indice
Dettagli
DescrizioneWindow function (comparsion).png |
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:
|
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:
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 | ||
| ||
Questo tag di copyright è stato aggiunto nell'ambito dell'aggiornamento della licenza dei progetti Wikimedia.http://creativecommons.org/licenses/by-sa/3.0/CC BY-SA 3.0Creative Commons Attribution-Share Alike 3.0truetrue |
È 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.http://www.gnu.org/copyleft/fdl.htmlGFDLGNU Free Documentation Licensetruetrue |
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
Elementi ritratti in questo file
raffigura
21 lug 2006
Cronologia del file
Fare clic su un gruppo data/ora per vedere il file come si presentava nel momento indicato.
Data/Ora | Miniatura | Dimensioni | Utente | Commento | |
---|---|---|---|---|---|
attuale | 23:53, 2 ott 2016 | 988 × 726 (54 KB) | Cmdrjameson | Compressed with pngout. Reduced by 26kB (33% decrease). | |
03:42, 23 ago 2008 | 988 × 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/~ |
Pagine che usano questo file
La seguente pagina usa questo file:
Utilizzo globale del file
Anche i seguenti wiki usano questo file:
- Usato nelle seguenti pagine di es.wikipedia.org:
- Usato nelle seguenti pagine di nl.wikipedia.org: