Ir al contenido

Archivo:Window function (comparsion).png

Contenido de la página no disponible en otros idiomas.
De Wikipedia, la enciclopedia libre

Ver la imagen en su resolución original(988 × 726 píxeles; tamaño de archivo: 54 kB; tipo MIME: image/png)

Resumen

Descripción
English: Comparison of different window functions
Fecha
Fuente Own Work by user Marcel Müller
Autor Marcel Müller
Permiso
(Reutilización de este archivo)
Marcel Müller de la Wikipedia en inglés, titular de los derechos de autor de esta obra, la publica en los términos de la siguiente licencia:
w:es:Creative Commons
atribución compartir igual
Este archivo se encuentra bajo la licencia Creative Commons Genérica de Atribución/Compartir-Igual 3.0. Sujeto a disclaimer.
Atribución: Marcel Müller de la Wikipedia en inglés
Eres libre:
  • de compartir – de copiar, distribuir y transmitir el trabajo
  • de remezclar – de adaptar el trabajo
Bajo las siguientes condiciones:
  • atribución – Debes otorgar el crédito correspondiente, proporcionar un enlace a la licencia e indicar si realizaste algún cambio. Puedes hacerlo de cualquier manera razonable pero no de manera que sugiera que el licenciante te respalda a ti o al uso que hagas del trabajo.
  • compartir igual – En caso de mezclar, transformar o modificar este trabajo, deberás distribuir el trabajo resultante bajo la misma licencia o una compatible como el original.
Esta etiqueta de licencia fue agregada a este archivo como parte de la actualización de la licencia GFDL.
GNU head Se autoriza la copia, distribución y modificación de este documento bajo los términos de la licencia de documentación libre GNU, versión 1.2 o cualquier otra que posteriormente publique la Fundación para el Software Libre; sin secciones invariables, textos de portada, ni textos de contraportada. Se incluye una copia de la dicha licencia en la sección titulada Licencia de Documentación Libre GNU. Sujeto a disclaimer.
Esta imagen debería volverse a crear como imágenes vectoriales SVG. Esto proporciona muchas ventajas, véase Commons:Media for cleanup (en inglés) para más información. Si ya hay una versión SVG de esta imagen disponible, por favor súbala a Commons. Tras subirla, reemplace esta plantilla con la plantilla {{vector version available|nuevo nombre de imagen.svg}} en esta imagen.

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}];

Licencia

Marcel Müller de la Wikipedia en inglés, titular de los derechos de autor de esta obra, la publica en los términos de la siguiente licencia:
w:es:Creative Commons
atribución compartir igual
Este archivo se encuentra bajo la licencia Creative Commons Genérica de Atribución/Compartir-Igual 3.0. Sujeto a disclaimer.
Atribución: Marcel Müller de la Wikipedia en inglés
Eres libre:
  • de compartir – de copiar, distribuir y transmitir el trabajo
  • de remezclar – de adaptar el trabajo
Bajo las siguientes condiciones:
  • atribución – Debes otorgar el crédito correspondiente, proporcionar un enlace a la licencia e indicar si realizaste algún cambio. Puedes hacerlo de cualquier manera razonable pero no de manera que sugiera que el licenciante te respalda a ti o al uso que hagas del trabajo.
  • compartir igual – En caso de mezclar, transformar o modificar este trabajo, deberás distribuir el trabajo resultante bajo la misma licencia o una compatible como el original.
Esta etiqueta de licencia fue agregada a este archivo como parte de la actualización de la licencia GFDL.
GNU head Se autoriza la copia, distribución y modificación de este documento bajo los términos de la licencia de documentación libre GNU, versión 1.2 o cualquier otra que posteriormente publique la Fundación para el Software Libre; sin secciones invariables, textos de portada, ni textos de contraportada. Se incluye una copia de la dicha licencia en la sección titulada Licencia de Documentación Libre GNU. Sujeto a disclaimer.

Registro original de carga

Aquí se muestra la página de descripción original. Los siguientes nombres de usuario se refieren 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

Leyendas

Añade una explicación corta acerca de lo que representa este archivo

Elementos representados en este archivo

representa a

Historial del archivo

Haz clic sobre una fecha y hora para ver el archivo tal como apareció en ese momento.

Fecha y horaMiniaturaDimensionesUsuarioComentario
actual21:53 2 oct 2016Miniatura de la versión del 21:53 2 oct 2016988 × 726 (54 kB)CmdrjamesonCompressed with pngout. Reduced by 26kB (33% decrease).
01:42 23 ago 2008Miniatura de la versión del 01: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 siguiente página usa este archivo:

Uso global del archivo

Las wikis siguientes utilizan este archivo: