FIR Lowpass filter

function xf=lpf(x,fp)

% A length N=231 Remez lowpass filter with filtering procedure
% for long length data > (N-1)*3+1
% fp – Filter cutoff frequency (0.01>fp>0.5)
N=231-1;
h=firpm(N,[0 .001 fp .5]*2,[1 1 0 0],’l’);filter frequency response
xf=filtfilt(h,1,x);

return
x=3+randn(700,1);
xf=lpf(x,0.02);
N=231-1;
fp=0.02;
h=firpm(N,[0 .001 fp .5]*2,[1 1 0 0],’l’);
% Filter spectral characteristics
[H,F]=freqz(h);
figure(1);
subplot(121)initial and filtered signal
plot(F,abs(H),’.-‘);
axis([0 0.05 0.99 1.01])
xlabel(‘Frequency’)
ylabel(‘|FRF|’)
subplot(122)
plot(F,abs(H),’.-‘);
axis([0.8 1 0 0.001])
xlabel(‘Frequency’);
ylabel(‘|FRF|’)

% Compare signal before and after filtering
figure(2)
plot(x,’-.’), grid on, hold on
plot(xf,’r-‘)
legend(‘before’, ‘after filtering’)