Zum Inhalt springen

Datei:Overlap-add algorithm.svg

Seiteninhalte werden in anderen Sprachen nicht unterstützt.
Zur Beschreibungsseite auf Commons
aus Wikipedia, der freien Enzyklopädie

Originaldatei (SVG-Datei, Basisgröße: 855 × 619 Pixel, Dateigröße: 140 KB)

Diese Datei und die Informationen unter dem roten Trennstrich werden aus dem zentralen Medienarchiv Wikimedia Commons eingebunden.

Zur Beschreibungsseite auf Commons


Beschreibung

Beschreibung
English: A sequence of 5 plots depicts one cycle of the Overlap-add convolution algorithm. The first plot is a long sequence of data to be processed with a lowpass FIR filter. The 2nd plot is one segment of the data to be processed in piecewise fashion. The 3rd plot is the filtered segment, including the filter rise and fall transients. The 4th plot indicates where the new data will be added with the result of previous segments. The 5th plot is the updated output stream.
Datum
Quelle Eigenes Werk
Urheber Bob K
Genehmigung
(Weiternutzung dieser Datei)
Ich, der Urheber dieses Werkes, veröffentliche es unter der folgenden Lizenz:
Creative Commons CC-Zero Diese Datei wird unter der Creative-Commons-Lizenz CC0 1.0 Verzicht auf das Copyright zur Verfügung gestellt.
Die Person, die das Werk mit diesem Dokument verbunden hat, übergibt dieses weltweit der Gemeinfreiheit, indem sie alle Urheberrechte und damit verbundenen weiteren Rechte – im Rahmen der jeweils geltenden gesetzlichen Bestimmungen – aufgibt. Das Werk kann – selbst für kommerzielle Zwecke – kopiert, modifiziert und weiterverteilt werden, ohne hierfür um Erlaubnis bitten zu müssen.

Andere Versionen Diese Datei wurde von diesem Werk abgeleitet: Overlap-save algorithm.svg
SVG‑Erstellung
InfoField
 
Der Quelltext dieser SVG-Datei ist W3C-invalid wegen 5 Fehlern.
 
Diese W3C-invalide Vektorgrafik wurde mit LibreOffice erstellt.
Gnu Octave source
InfoField
click to expand

This graphic was created with the help of the following Octave script:

% Options
  frame_background_gray                = true;

  if frame_background_gray
   graphics_toolkit("qt")         % or graphics_toolkit("fltk")
   frame_background = .94*[1 1 1];
   d = 2;                         % amount to add to text sizes
  else
   graphics_toolkit("gnuplot")    % background will be white regardless of value below
   frame_background = .94*[1 1 1];
   d=0;
  endif

 M  = 16;                    % filter length
 h  = ones(1,M)/M;           % filter impulse response
 L  = 100;                   % output segment length
 La = 500;                   % input data length
%randn("seed","reset")       % experiment with data generator
%seed = randn("seed")        % print value, in case want to use it again
 randn("seed", e)            % generate same data as Overlap-save_algorithm.svg
 a = 1 + randn(1,La)/3;      % data to be filtered
 seg = 2;                    % segment to be computed
 N   = L + M-1;              % DFT size (a power-of-2 would be more efficient)
 Xa  = seg*L + (1:L);        % indices of segment to be filtered

% (https://octave.org/doc/v4.2.1/Graphics-Object-Properties.html#Graphics-Object-Properties)
% Speed things up when using Gnuplot
  set(0, "DefaultAxesFontsize",10+d)
  set(0, "DefaultTextFontsize",12+d)
  set(0, "DefaultAxesYlim",[0 2])
  set(0, "DefaultAxesYtick",[0:2])
  set(0, "DefaultAxesYgrid","on")
  set(0, "DefaultAxesXlim",[0 La])
  set(0, "DefaultAxesXtick",[100:100:La])
  set(0, "DefaultAxesXgrid","on")
  set(0, "DefaultFigureColor",frame_background)
  set(0, "DefaultAxesColor","white")
%=======================================================
  hfig = figure("position",[10 10 912 685], "color",frame_background);

  x1 = .02;               % left margin
  x2 = .02;               % right margin
  y1 = .08;               % bottom margin for annotation
  y2 = .08;               % top margin for title
  dy = .04;               % vertical space between rows

  width = 1-x1-x2;
  height= (1-y1-y2-4*dy)/5; % space allocated for each of 5 rows

  x_origin = x1;
  y_origin = 1;           % start at top of graph area
%=======================================================
  y_origin = y_origin -y2 -height;        % position of top row
  subplot("position",[x_origin y_origin width height])

  plot(1:La, a, "color","blue", Xa, a(Xa), "color","red", "linewidth",2)
  title("One segment of an Overlap-add algorithm", "fontsize",14+d);
  text(1, 2.2, "X[n], with segment k=2 in red", "fontsize",10+d)
%=======================================================
  y_origin = y_origin -dy -height;
  subplot("position",[x_origin y_origin width height])

  plot(1:L, a(Xa), "color","red",...
       L+(1:M-1),zeros(1,M-1), "color","red", "linewidth",2)
  text(250, 1.6, 'X_k[n]')
%=======================================================
  y_origin = y_origin -dy -height;
  subplot("position",[x_origin y_origin width height])

  H = fft(h,N);
  b = real(ifft(H .* fft(a(Xa),N)));    % = conv(h,a(Xa))

  plot(1:N, b, "color","red", "linewidth",2);
  text(250, 1.6, 'Y_k[n], output of FIR lowpass filter');
%=======================================================
  y_origin = y_origin -dy -height;
  subplot("position",[x_origin y_origin width height])

  Xc = 1:seg*L;
  c = conv(h,a(Xc));
  x = (length(c)+1):La;

  plot(1:length(c), c,      "color","blue",...
     x, zeros(1,length(x)), "color","blue", "linewidth",2,...
     seg*L + (1:N), b,  "color","red", "linewidth",2)
  text(250, 1.6, 'Y_2[n-2L]')
%=======================================================
  y_origin = y_origin -dy -height;
  subplot("position",[x_origin y_origin width height])

  Xd = 1:(seg+1)*L;
  d1 = conv(h,a(Xd));
  x = (length(d1)+1):La;

  plot(1:length(d1), d1,    "color","blue",...
     x, zeros(1,length(x)), "color","blue", "linewidth",2)

  xlabel('\leftarrow  n  \rightarrow', "fontsize",12+d)

Kurzbeschreibungen

Ergänze eine einzeilige Erklärung, was diese Datei darstellt.

In dieser Datei abgebildete Objekte

Motiv

image/svg+xml

Dateiversionen

Klicke auf einen Zeitpunkt, um diese Version zu laden.

Version vomVorschaubildMaßeBenutzerKommentar
aktuell15:57, 25. Jan. 2020Vorschaubild der Version vom 15:57, 25. Jan. 2020855 × 619 (140 KB)Bob Kreplace version with spurious arrow at the top
03:11, 25. Jan. 2020Vorschaubild der Version vom 03:11, 25. Jan. 2020855 × 619 (136 KB)Bob KReverted to version as of 20:09, 24 January 2020 (UTC)
00:31, 25. Jan. 2020Vorschaubild der Version vom 00:31, 25. Jan. 2020855 × 619 (136 KB)Bob Kslightly darker shade of gray, because previous shade is ignored (i.e. replaced by white)
22:09, 24. Jan. 2020Vorschaubild der Version vom 22:09, 24. Jan. 2020855 × 619 (136 KB)Bob Kchange frame background from white to gray
16:31, 19. Jan. 2020Vorschaubild der Version vom 16:31, 19. Jan. 2020855 × 630 (111 KB)Bob Kchange seed value to "e"
00:01, 19. Jan. 2020Vorschaubild der Version vom 00:01, 19. Jan. 2020855 × 630 (110 KB)Bob Kuse same waveform as File:Overlap-save method.svg
00:34, 15. Jan. 2020Vorschaubild der Version vom 00:34, 15. Jan. 2020855 × 630 (102 KB)Bob KUser created page with UploadWizard

Keine Seiten verwenden diese Datei.

Globale Dateiverwendung

Die nachfolgenden anderen Wikis verwenden diese Datei:

Metadaten