# sosfit in filter function

4 messages
Open this post in threaded view
|

## sosfit in filter function

 Hi, There is a numerical instability on butter function, as described in https://www.mathworks.com/help/signal/ref/butter.html (topic "Limitations"). Is recommend use [z, p, k] syntax and sosfilt function to apply a second-order section filter, as described in https://savannah.gnu.org/bugs/?53855But, the documentation of SOSFILT is not clear: https://octave.sourceforge.io/signal/function/sosfilt.htmlSomeone have an idea about how to use ZPK Design instead a TF Design in this code below? +++++++++++++ n = 5; hpf = 50; lpf = 10*hpf; sampling_rate = 44100; typenoise = noise(60*sampling_rate, 1, 'pink'); [b,a] = butter(n, [hpf/(sampling_rate/2), lpf/(sampling_rate/2)]); filtered = filter(b, a, typenoise); audiowrite (filename.wav, filtered, sampling_rate); freqz (b, a, 4096, sampling_rate) ax = findall (gcf, 'type', 'axes'); set (ax, 'xlim', [hpf/4 lpf*4]); set (ax, 'xscale', 'log'); subplot (2, 1, 1); set (gca, 'ylim', [-35 3]); ----------------------------- Best regards, Renato -- Sent from: http://octave.1599824.n4.nabble.com/Octave-General-f1599825.html
Open this post in threaded view
|

## Re: sosfit in filter function

 On Tue, May 08, 2018 at 23:21:33 -0700, yamane wrote: > There is a numerical instability on butter function, as described in > https://www.mathworks.com/help/signal/ref/butter.html (topic "Limitations"). > > Is recommend use [z, p, k] syntax and sosfilt function to apply a > second-order section filter, as described in > https://savannah.gnu.org/bugs/?53855> > But, the documentation of SOSFILT is not clear: > https://octave.sourceforge.io/signal/function/sosfilt.html> > Someone have an idea about how to use ZPK Design instead a TF Design in this > code below? Instead of this     [b, a] = butter (...     output = filter (b, a, input); you would use this     [z, p, k] = butter (...     sos = zp2sos (z, p, k);     output = sosfilt (sos, input); -- mike signature.asc (849 bytes) Download Attachment