There is a mysterious factor when compute coeffiencts everyone
i m trying write higher order butterworth algorithm in c++.I can compute nominator and denominator second order. So i tell myself , i can cascade struct for higher order. But there is between factor two cascade and fourth order.

For example;

second order nominator a = [0,0976307608403291 0,195261521680658   0,0976307608403291] , 

denominator b = [1 -0,942806027702107   0,333329071063423]


when i do conv(a,a) in matlab result is 

new_a  = [0,00953176546226155   0,0381270618490462  0,0571905927735693  0,0381270618490462  0,00953176546226155]


but i get this coeffs when i do butter func in matlab

butter_a = [0,0102094807912031    0,0408379231648125  0,0612568847472187  0,0408379231648125  0,0102094807912031]

maybe you see that between constant factor butter_a and new_a and it is 1.071 like that. I wonder what is that and how can i compute this variable for more than one cascading struct ? 

sorry for my bad language
It sounds like you're comparing the coefficients for two different filters:


A fourth-order Butterworth filter designed for cutoff frequency $f_c$
A cascade of two second-order Butterworth filters, each designed for cutoff frequency $f_c$.


The two are not equivalent to one another, although in the passband and stopband you will see similar magnitude responses. Specifically, at the cutoff frequency $f_c$, you'll see 6 dB of attenuation from filter #1, while filter #2 would give you 12 dB. Therefore, it's not unexpected that you would get slightly different coefficients for the two implementations.