Problems using the filter function with a column vector
1 次查看(过去 30 天)
显示 更早的评论
I am having problems using the filter function with a column vector. I have a simple column vector that starts off with numbers like so:
77
76
75
75
77
78
.....
When I apply the filter function my new vector starts with
19.2500
38.2500
57
75.7500
75.7500
76.2500
....
When both these vectors are plotted the first couple of filtered points are completely off as imagined when looking at the first few rows of data. After the preceding error the filtered version follows the unfiltered version as expected.
a = filter([0.25 0.25 0.25 0.25], 1, z);
0 个评论
采纳的回答
Wayne King
2013-11-15
编辑:Wayne King
2013-11-15
Not sure why you say it is off. filter() convolves the data with the 4-point moving average filter in a causal manner.
So for the first element you get 77/4 because x(0-k) is only valid when k=0, as soon as k increments to 1, you have x(-1) which is 0. There is no element before the starting element, x(0) (not using MATLAB 1-based indexing here)
For the 2nd element you get (x(1-0)+x(1-1))/4 = (77+76)/4
finally the 4th element gives you 75.75
Using zero-based indexing, filter is outputting the following:
Let h(n) = 1/4 n = 0,1,2,3,4
y(n) = \sum_{k=0}^3 h(k) x(n-k)
start plugging in values for n of n = 0, 1,2, 3 and you'll see why you get the output you observe.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Filter Design 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!