Graphics Programs Reference
In-Depth Information
can plot both input and output signals for comparison. We also use
legend
to display a legend for the plot.
plot(t,x1,'b-',t,y1,'r-')
legend('x1(t)','y1(t)')
This plot illustrates the effect of the running mean on the original input se-
ries. The output
y1
is signifi cantly smoother than the input signal
x1
. If we
increase the length of the fi lter, we obtain an even smoother signal.
b2 = [1 1 1 1 1]/5;
m2 = length(b2);
y2 = conv(b2,x1);
y2 = y2(1+(m2-1)/2:end-(m2-1)/2,1);
plot(t,x1,'b-',t,y1,'r-',t,y2,'g-')
legend('x1(t)','y1(t)','y2(t)')
The next chapter introduces a more general description of fi lters.
6.5 Comparing Functions for Filtering Data Series
A very simple example of a nonrecursive fi lter was described in the previ-
ous section. The fi lter output
y
(
t
) only depends on the fi lter input
x
(
t
) and
the fi lter weights
b
k
. Prior to introducing a more general description for
linear time-invariant fi lters, we replace the function
conv
by
filter
that
can be used also for recursive fi lters. In this case, the output
y
(
t
n
) depends
on the fi lter input
x
(
t
), but also on previous elements of the output
y
(
t
n
-1
),
y
(
t
n
-2
),
y
(
t
n
-3
).
clear
t = (1:100)';
randn('seed',0);
x3 = randn(100,1);
We design a fi lter that averages fi ve data points of the input signal.
b3 = [1 1 1 1 1]/5;
m3 = length(b3);
The input vector can be convolved with the function
conv
. The output is
again correct for the length of the data vector.
y3 = conv(b3,x3);
y3 = y3(1+(m3-1)/2:end-(m3-1)/2,1);