Forums

question on the usage of the m-file "filter"

Started by vijay_harikrishna September 21, 2004
Hi,

Trying to use the M-file "filter" to filter out a high-freq signal
from a composite signal. num,den gives the co-efficients of a Low-Pass
filter with cut-off freq near 0.25*pi

The filter works fine when the step_size variable is greater than 0.8
The smaller i make the step_size, the worse the filter operation.

The code (as taken from mitra's book on dsp with plots added) is below -

----------------
% program 8_2 from sanjit k. mitra's text on DSP
% illustration of filtering by a lowpass iir filter

% generate the input sequence
step_size=1; % making this step_size lower than 0.6 say, breaks the
filter
k=1:step_size:50; w1=0.8*pi; w2=0.1*pi; A=1.5; B=2.0;

x1=A*cos(w1*(k-1)); x2=B*cos(w2*(k-1));
x=x1+x2; % the composite signal

% generate the output sequence by filtering the input
si = [0 0 0];
num=0.0662272*[1 3 3 1];
den=[1 -0.93561864 0.56712991716567 -0.10159281020491];
y=filter(num,den,x,si);

% plot the input and the output sequences
subplot(2,1,1);
plot(k-1,x); axis([0 49 -4 4]);
xlabel('Time index n'); ylabel('Amplitude');
title('Input sequence');
subplot(2,1,2);
plot(k-1,y(1:length(k)));
axis([0 49 -4 4]);
xlabel('Time index n'); ylabel('Amplitude');
title('Output sequence');
----------------------------

I think by making the step_size finer, the length of the input signal
(x in this case) becomes large. Is this the reason for the breakdown?
Should i break down the input sequence into chunks of segments? If
yes, what is the basis of choosing the "chunk length"?

Please enlighten me on what the problem is. Any leads on solving this
problem is appreciated greatly.

Thanks.

-vj