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) |
|
||
| Other versions | Derivative works of this file: Illustration of causal and non-causal filters.svg | ||
| Octave/gnuplot source | 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
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.