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

Uploaded by Bob K
Upload date 2020-02-02T08:55:41Z
MIME type image/png
Dimensions 734 × 662 px
File size 77.8 KB

Summary

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: <source lang=Matlab> % 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)

</syntaxhighlight>

Original upload log

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.

Captions

Add a one-line explanation of what this file represents

Items portrayed in this file

depicts

11 December 2005

image/png

79,626 byte

662 pixel

734 pixel

b75a4d11e6a23d51cb5a224f88870a5c0545ec1d