Post Go back to editing

How to determine which frequency band has highest magnitude

Hi all.

I'm using ADAU1701 and SigmaStudio 3.10 beta.

I want to design a Index Selectable Filter to cut off the audio feedback from  different sources, eg: microphone, hoots and howls,  Different sources of feedback might contains different frequency and cause terrible sound overall.

I need to know the exact feedback frequency at that time, then only i can give the correct index to ISF to select which filter to apply.

The problem is how can i know from the signal at a time, which frequency has the highest magnitude?

For your info, the ISF (Index Seletcable Filter) accept only logic integer (0,1,2,3,4......)

I tried to read a few frequencies using General (2nd order) Filter and output linked into Envelope Peak.  Then, I compare all frequencies output to a Baisc DSP> Max, but this component 'Max" only compare and output the highest peak analog audio signal; not a valid input for ISF. 

 

Thanks in advance.

JCB

Parents
  •      Hello JCB,

         No worries, we both need patience to get something as involved as this to work.  BTW -- have you seen this post:

    https://ez.analog.com/message/139844#139844

    which describes an alternative feedback prevention method.  If you try it -- a little pitch shift goes a long way in this application, and you need to increase the default Delay Reserved or else it will sound terrible.

         I attached a revised version of feedbackCancellation4 with several changes:

      • The detection filters were Parametric with zero boost -- essentially they were not filtering at all.  Peaking filters provide the needed band selectivity.  Filters are set at fourth-octave intervals.
      • Moving the out-of-bounds prevention to the source (the clock) makes both the index mux and the index filter operate properly.
      • I simplified the logic a bit by combining the thresholds with the frequency detections.  Likely you'll need to perfect the logic to mitigate any feedback as transparently as possible.

         When reducing the thresholds you'll definitely see the filters change, showing that the peak frequencies are being found.

         Best regards,

         Bob

    feedbackCancellation4b.dspproj.zip
Reply
  •      Hello JCB,

         No worries, we both need patience to get something as involved as this to work.  BTW -- have you seen this post:

    https://ez.analog.com/message/139844#139844

    which describes an alternative feedback prevention method.  If you try it -- a little pitch shift goes a long way in this application, and you need to increase the default Delay Reserved or else it will sound terrible.

         I attached a revised version of feedbackCancellation4 with several changes:

      • The detection filters were Parametric with zero boost -- essentially they were not filtering at all.  Peaking filters provide the needed band selectivity.  Filters are set at fourth-octave intervals.
      • Moving the out-of-bounds prevention to the source (the clock) makes both the index mux and the index filter operate properly.
      • I simplified the logic a bit by combining the thresholds with the frequency detections.  Likely you'll need to perfect the logic to mitigate any feedback as transparently as possible.

         When reducing the thresholds you'll definitely see the filters change, showing that the peak frequencies are being found.

         Best regards,

         Bob

    feedbackCancellation4b.dspproj.zip
Children
No Data