DSPRelated.com
Forums

Problems with Butterworth f. when order>=10

Started by adap...@yahoo.co.jp August 7, 2009
Hello everybody.

Thank you always for your help.
I have a question regarding Butterworth filters with order >.

I was out of the office, so couldn't use MATLAB. Instead I used Octave. I tried to do the following:

>[b a]=butter(10,0.015);
>y=filter(b,a,x);

for a original signal x.(a sin signal)

Now when ploting I can see this gives me a filtered signal (although a little strange in some values, still good

But when I tried the following

>[b a]=butter(10,0.01);
>y=filter(b,a,x);

the result is not a filtered sinusoid at all, but a signal that goes to infinite!

Now I am at lost why I can not construct butterworth filters of order 10 with a normalized cutoff of less than 0.015. Is it a theoretical constraint? is it a bug in octave? (havent tried it in Matlab)

can anyone share some insight in this?

Kansai
Hi kansai,
Could you attach you butterworth coefficients calculated out of
octave, someone may check your results on matlab.

B.R.
Wayne

On 8/7/09, a...@yahoo.co.jp wrote:
> Hello everybody.
>
> Thank you always for your help.
> I have a question regarding Butterworth filters with order >.
>
> I was out of the office, so couldn't use MATLAB. Instead I used Octave. I
> tried to do the following:
>
>>[b a]=butter(10,0.015);
>>y=filter(b,a,x);
>
> for a original signal x.(a sin signal)
>
> Now when ploting I can see this gives me a filtered signal (although a
> little strange in some values, still good
>
> But when I tried the following
>
>>[b a]=butter(10,0.01);
>>y=filter(b,a,x);
>
> the result is not a filtered sinusoid at all, but a signal that goes to
> infinite!
>
> Now I am at lost why I can not construct butterworth filters of order 10
> with a normalized cutoff of less than 0.015. Is it a theoretical constraint?
> is it a bug in octave? (havent tried it in Matlab)
>
> can anyone share some insight in this?
>
> Kansai
HI Wayne

Thanks for the reply

The coefficients are:

1) in the first case
[b a]=butter(10.0.015)

b=4.5446e-017
4.5446e-016
2.0451e-015
5.4535e-015
9.5436e-015
1.1452e-014
9.5436e-015
5.4535e-015
2.0451e-015
4.5446e-016
4.5446e-017

a 1.0000
-9.69876
42.33414
-109.51313
185.93260
-216.48723
175.06136
-97.08115
35.33393
-7.62163
0.73988

for this case after
Y=filter(b,a,x) I obtain a curve that resembles a sin curve to some degree
however for

b) second case

[b a]=butter(10, 0.01)

b
8.2784e-019
8.2784e-018
3.7253e-017
9.9340e-017
1.7385e-016
2.0862e-016
1.7385e-016
9.9340e-017
3.7253e-017
8.2784e-018
8.2784e-019

a 1.0000
-9.79918
43.21271
-112.93005
193.68525
-227.79613
186.06003
-104.21312
38.30719
-8.34475
0.81805

for this case after
Y=filter(b,a,x) I obtain a curve that doesnt resemble a sin curve at all

I will appreciate some insight into why this happen.
Thank you

Kansai

Wayne wrote:
Hi kansai,
Could you attach you butterworth coefficients calculated out of
octave, someone may check your results on matlab.

B.R.
Wayne

On 8/7/09, a...@yahoo.co.jp wrote:
> Hello everybody.
>
> Thank you always for your help.
> I have a question regarding Butterworth filters with order >.
>
> I was out of the office, so couldn't use MATLAB. Instead I used Octave. I
> tried to do the following:
>
>>[b a]=butter(10,0.015);
>>y=filter(b,a,x);
>
> for a original signal x.(a sin signal)
>
> Now when ploting I can see this gives me a filtered signal (although a
> little strange in some values, still good
>
> But when I tried the following
>
>>[b a]=butter(10,0.01);
>>y=filter(b,a,x);
>
> the result is not a filtered sinusoid at all, but a signal that goes to
> infinite!
>
> Now I am at lost why I can not construct butterworth filters of order 10
> with a normalized cutoff of less than 0.015. Is it a theoretical constraint?
> is it a bug in octave? (havent tried it in Matlab)
>
> can anyone share some insight in this?
>
> Kansai