File:Illustration of causal and non-causal filters.png

From Wikimedia Commons, the free media repository
Jump to navigation Jump to search

Original file(734 × 662 pixels, file size: 78 KB, MIME type: image/png)

Captions

Captions

Add a one-line explanation of what this file represents

Summary

[edit]
Description
English: Each component of the causal filter output begins when its stimulus begins. The outputs of the non-causal filter begin before the stimulus begins
Date
Source Own work (Transferred by Bob K)
Author Bob K
Permission
(Reusing this file)
Public domain This work has been released into the public domain by its author, Bob K. This applies worldwide.

In some countries this may not be legally possible; if so:
Bob K grants anyone the right to use this work for any purpose, without any conditions, unless such conditions are required by law.

Other versions Derivative works of this file:  Illustration of causal and non-causal filters.svg
Octave/gnuplot 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")         % has "insert text" option
%  graphics_toolkit("fltk")       % has cursor coordinate readout
   frame_background = .94*[1 1 1];
   d  = 4;                         % 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
  
  xmax = 1000;                    % length of plots
  L    = 100;                     % length of rectangles

% (https://octave.org/doc/v4.2.1/Graphics-Object-Properties.html#Graphics-Object-Properties)
% Speed things up when using Gnuplot
  set(0, "DefaultFigureColor",frame_background)
  set(0, "DefaultAxesTitleFontweight","normal")
  set(0, "DefaultAxesFontsize",12+d)   % size of numeric tick labels
% set(0, "DefaultTextFontsize",12+d)
  set(0, "DefaultAxesYlim",[0 2])
  set(0, "DefaultAxesXlim",0.02*([-200 xmax]))
  set(0, "DefaultAxesYtick",[])
  set(0, "DefaultLineLinewidth",2)

%=======================================================
  hfig = figure("position",[1 -150 735 835]);

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

  width = 1-x1-x2;
  height= (1-y1-y2-3*dy)/4;     % space allocated for each of 4 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])

  f = [zeros(1,200) ones(1,L) zeros(1,100)];

  plot(0.02*([1:length(f)]-250), f ,"r" )
  title("h(t) (non-causal impulse response)", "fontsize",14+d)

%=======================================================
  y_origin = y_origin -dy -height;
  subplot("position",[x_origin y_origin width height])
  plot(0.02*([1:length(f)]-200), f, "b" )
  title("h(t-1) (causal impulse response)", "fontsize",14+d)

%=======================================================
  y_origin = y_origin -dy -height;
  subplot("position",[x_origin y_origin width height])
  a = [zeros(1,200) ones(1,L) zeros(1,250) 0.5*ones(1,100) zeros(1,250) 0.25*ones(1,100) zeros(1,200)];
  plot(0.02*([1:length(a)]-200), a,"m")
  ylim([0 2*max(a)])
  title("Input", "fontsize",14+d)

%=======================================================
  y_origin = y_origin -dy -height;
  subplot("position",[x_origin y_origin width height])
  b = conv(a,f);
  c = b(200:end);
  plot(0.02*([1:length(c)]-250), c, "r", 0.02*([1:length(c)]-200), c, "b")
  ylim([0 max(b)])
  legend("f(t) non-causal output", "f(t-1) (causal output)")
  title("Outputs", "fontsize",14+d)

Original upload log

[edit]
The original description page was here. All following user names refer to en.wikipedia.

Upload date | User | Bytes | Dimensions | Comment

  • 2012-01-02 21:41:06 | Bob K | 32150 | 1470×1671 | remove gray background
  • 2005-12-12 00:25:17 | Bob K | 6466 | 483×585 | I created this figure myself, using Matlab tools.
  • 2005-12-11 23:47:49 | Bob K | 5782 | 441×659 | I created this figure myself, using Matlab tools.
  • 2005-12-11 23:34:00 | Bob K | 5727 | 429×635 | I created this figure myself, using Matlab tools.

File history

Click on a date/time to view the file as it appeared at that time.

Date/TimeThumbnailDimensionsUserComment
current08:55, 2 February 2020Thumbnail for version as of 08:55, 2 February 2020734 × 662 (78 KB)Bob K (talk | contribs)minor cleanup
18:57, 1 February 2020Thumbnail for version as of 18:57, 1 February 2020734 × 685 (86 KB)Bob K (talk | contribs)wider lines
18:47, 1 February 2020Thumbnail for version as of 18:47, 1 February 2020734 × 685 (67 KB)Bob K (talk | contribs)gray background restored, using qt instead of gnuplot
02:20, 7 January 2012Thumbnail for version as of 02:20, 7 January 20121,470 × 1,671 (31 KB)OgreBot (talk | contribs)(BOT): Reverting to most recent version before archival
02:20, 7 January 2012Thumbnail for version as of 02:20, 7 January 2012483 × 585 (6 KB)OgreBot (talk | contribs)(BOT): Uploading old version of file from en.wikipedia; originally uploaded on 2005-12-12 00:25:17 by Bob K
02:20, 7 January 2012Thumbnail for version as of 02:20, 7 January 2012441 × 659 (6 KB)OgreBot (talk | contribs)(BOT): Uploading old version of file from en.wikipedia; originally uploaded on 2005-12-11 23:47:49 by Bob K
02:20, 7 January 2012Thumbnail for version as of 02:20, 7 January 2012429 × 635 (6 KB)OgreBot (talk | contribs)(BOT): Uploading old version of file from en.wikipedia; originally uploaded on 2005-12-11 23:34:00 by Bob K
13:35, 6 January 2012Thumbnail for version as of 13:35, 6 January 20121,470 × 1,671 (31 KB)Bob K (talk | contribs){{BotMoveToCommons|en.wikipedia|year={{subst:CURRENTYEAR}}|month={{subst:CURRENTMONTHNAME}}|day={{subst:CURRENTDAY}}}} The upload bot is User:CommonsHelper2 Bot which is called by [http://toolserver.org/~commonshelper2/index.php CommonsHelper2]. The t

There are no pages that use this file.

Metadata