implementing a "first difference" filter in Matlab defined by a difference equation.

4 次查看(过去 30 天)
Hi all
I am a student in a digital signal processing module and I am stuck on the final question of a lab session and I am not sure if my understanding is correct, i have already tried asking the lab tutor for help via email but no reply (he's a PHD candidate). the difference equation is shown below.
y[n] = x[n] - x[n -1]
He tells us its simple and can be achieved with one line of code.
My code is shown below, my understanding is its a second order difference equation.
FD = repmat(1/2,1,2); %repmat creates large matrix of 1 row by 2 columns (every coefficient value 1/2=0.5) FD_Filtered = firfilt(FD, x); %filtering input signal x with FD filter
Any advice will be greatly appreciated.
Thanks in advance,
Ben

回答(2 个)

Wayne King
Wayne King 2013-10-24
No, I just mean filter(). A causal N-point moving average filter just has filter coefficients of 1/N
b = 1/N*ones(N,1);
  1 个评论
Ben
Ben 2013-10-24
编辑:Ben 2013-10-24
Ok thanks I understand now that this has two 1 and -1 right hence the y[n] = (1/1)x[n] + (1/-1)x[n-1] = x[n]-x[n-1]
therefore FD = [1 -1] (filter coefficients)

请先登录,再进行评论。


Wayne King
Wayne King 2013-10-24
Why do you believe it's a second order difference equation?
Since it is a homework problem, I do not want to simply give you the answer, but look at filter()
He is correct in telling you that you can do it easily with one line of code.
  1 个评论
Ben
Ben 2013-10-24
the previous questions were to design moving average filters which were defined by a summation equation example;
y[n]= 1/5 ∑_(k=0)^4▒〖x[n-k]〗 (k going from 0 to 4 (4 = M-1) M=5)
for 5 point average so can the difference equation in the question be shown a similar way;
y[n]= 1/2 ∑_(k=0)^1▒〖x[n-k]〗 (k going from 0 to 1 when M-1=1 and M=2)
Do the filter coefficients seem correct?
By look at filter() do you mean firfilt()?
Thanks for advising

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Matched Filter and Ambiguity Function 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by