• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: low-pass and high-pass filter.
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: low-pass and high-pass filter.


  • Subject: Re: low-pass and high-pass filter.
  • From: Brian Willoughby <email@hidden>
  • Date: Fri, 23 Dec 2016 23:16:29 -0800

In response to the first complaint, the vDSP_biquadD() function is double precision. If vDSP_biquad() is inadequate due to its single precision, then substituting vDSP_biquadD() is rather trivial.

In response to the second complaint; the OP has already identified as a novice, so writing and debugging inline code will be much more challenging than using Apple's tested version. I'm sure there are a few programmers who can produce a better implementation than Apple, but why worry about optimization when it's not yet proven to be an issue? At the very least, start with Apple's vDSP_biquadD() and then benchmark it against inline code.

Brian Willoughby


On Dec 23, 2016, at 8:49 PM, Nigel Redmon <email@hidden> wrote:
> I'd skip using that vDSP function, personally. First, it's single precision. If it's a direct form II transposed implementation, it's probably adequate for most cases (but you're cascading four...possibly noise issues at low frequency settings, I guess still ok). Second, I don't think you're going to see a big performance improvement in a vectored IIR, in typical use cases. So I'd be running a plain-ol' inline IIR with doubles.
>
> The IIR implementation itself is trivial, and very fast as an inline (otherwise the function call overhead is disproportionate, if performance is an issue). Calculating the coefficients takes a little more knowledge, but you can either use my coefficient calculator (for fixed filters), or the C++ code on my site or elsewhere to calc at runtime.
>
> Nigel
>
> On Dec 24, 2016, at 5:29 AM, Waverly Edwards <email@hidden> wrote:
>> Nigel Redmon wrote:
>> >>Maybe this will help? Use four biquads, each set to the same frequency, but with Q set as indicated by the calculator:
>> >>http://www.earlevel.com/main/2016/09/29/cascading-filters/
>>
>> Evan Balster wrote:
>> >>It took me a while to get my head around digital filter design algorithms.
>> >>You'll need to do the following steps, which I recommend you research individually:
>>
>> Both of these are EXCELLENT resources.  I’ve been looking into the cascading filters options that was suggested and I’ll work on implementing that, if I understand it correctly.
>> I will also look into the C++ library that was recommended as well.
>>
>> In the process of researching what both of you said, I also found references to vDSP_biquad.  https://developer.apple.com/reference/accelerate/1450838-vdsp_biquad
>> It sounds like a great way to go but I just have a very surface level understanding so implementation will be challenging.
>

 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Coreaudio-api mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription:

This email sent to email@hidden


  • Follow-Ups:
    • Re: low-pass and high-pass filter.
      • From: Nigel Redmon <email@hidden>
References: 
 >low-pass and high-pass filter. (From: Waverly Edwards <email@hidden>)
 >Re: low-pass and high-pass filter. (From: Nigel Redmon <email@hidden>)
 >RE: low-pass and high-pass filter. (From: Waverly Edwards <email@hidden>)
 >Re: low-pass and high-pass filter. (From: Nigel Redmon <email@hidden>)

  • Prev by Date: Re: low-pass and high-pass filter.
  • Next by Date: Re: low-pass and high-pass filter.
  • Previous by thread: Re: low-pass and high-pass filter.
  • Next by thread: Re: low-pass and high-pass filter.
  • Index(es):
    • Date
    • Thread