10Hz High Pass filter with Matlab

1. Nov 5, 2009

leonpolou

Hi everyone,

here is the problem:
I am trying to reproduce a human finger while pressing a keyboard.
I am using a shaker and a fingertip made of foam rubber. To measure the force history, a force gage make a link between the fingertip and the shaker.
The fact is the curve has an offset and I try to know why.

A solution might be that we use the force gage at a 5.8Hz and that material is usully use with frequency upper than 10 Hz.
To solve that problem a basic solution would be to filter the signal recorded with an high pass filter.
Actually I really don't know how to do it.

here is my code on matlab
f=10; %Cut off frequency%
fs=42000; %resolution frequency%
w=f/(fs/2); % frequency normalized%
N=100; &filter order%
b=fir1(N,w,'high');
figure(1);
freqz(b,1,42000,fs); % we see how the filter look like%
y=fftfilt(b,X1(1:65536,2));
figure(2);
plot(X1(1:65536,1),y,'r',X1(1:65536,1),X1(1:65536,2))

First, how do you think is it possible to make a 10Hz high pass filter with matlab

Second, if you have some idea to solve my problem while using other thing than filter the signal, that would be a pleasure for me.

Regards
jeremy

2. Nov 6, 2009

KLoux

I'm not familiar with the MATLAB command fir1(), but here are some thoughts:

100 is a pretty high order for a filter. I would recommend starting with N = 1 and step up one order at a time until you get something you like. High orders might tend to distort your data very badly.

The cutoff frequency (as interpreted by the fir1 command) is likely to be in radians/sec, not Hz. Like I said, I have no experience with this, so you should check the documentation to be sure.

Hope this helps,

Kerry

3. Nov 9, 2009

trambolin

you can use butter command.