How do I design filters with unconventional parameters?
1 回表示 (過去 30 日間)
古いコメントを表示
Hello,
I am looking for a way to design filters with parameters that are different from what MatLABs filter design functions expect.
For example:
ellip(N,Rp,Rs,Wp)
expects filter order, passband ripple, stopband ripple and passband edge frequency as parameters, and calculates zeroes, poles and gain that correspond to the parameters.
My filter requirements, however, are often given as "must have zeroes at normalized frequencies a and b" and "must have attenuation of X dB and normalized frequency c". This usually leads to manually changing the parameters expected by the filter design function until the requirements are fulfilled, or possibly using one of MatLABs optimization functions to automatically adjust the parameters. Another way would be to manually place the requires zeroes and poles, but then the rest of the filter coefficient to be set manually.
Are there better ways of designing a filter with requirements like fixed zero or pole locations, or a given gain (not necessarily -3 dB) at a certain frequency?
0 件のコメント
回答 (1 件)
Star Strider
2016 年 11 月 25 日
Have you experimented with the designfilt and other functions? Other ways to design filter polynomials with specific poles and zeros would be to use the poly function to create the transfer function numerator and denominator polynomials. Beyond that, you might have to go to a textbook to design a specific attenuation, or simply increase the filter order until you get the result you want.
I’m not certain if you already considered these options.
2 件のコメント
Star Strider
2016 年 11 月 25 日
The advantage of designfilt is that it optimises the filter design using its own algorithms, making the specification of multiple design constraints much more straightforward. (I’ve also been using MATLAB since early 1994, and in one signal processing course in 1998, had to code the filters and the discrete conversions ourselves, without the filter design functions.)
I’ve never encountered a problem such as the one you describe. My impression is that since Chebyshev filters are defined by the Chebyshev polynomials, designing specific pole-zero placement with them may not be an option. Your best option may be cascading specific simpler (for example Butterworth or FIR) filters to get the result you want. That’s not ideal, but the only way I can think of to do what you want. In both hardware and software, I’ve found that cascading simple filters is easier and more efficient that designing more complicated filters to do the same thing.
参考
カテゴリ
Help Center および File Exchange で Digital Filter Design についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!