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

24 views (last 30 days)
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

Answers (2)

Wayne King
Wayne King on 24 Oct 2013
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 Comment
Ben
Ben on 24 Oct 2013
Edited: Ben on 24 Oct 2013
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)

Sign in to comment.


Wayne King
Wayne King on 24 Oct 2013
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 Comment
Ben
Ben on 24 Oct 2013
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

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!