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,

         Likely you know that the best way to analyze the signal for frequency peaks is via FFT, which unfortunately the ADAU1701 cannot perform.  On the other hand, the ADAU1452 can do FFT.  Once out of curiosity I removed the cover of a stereo feedback-sensing EQ and found two Sharcs and a Blackfin.  Thus you have quite an ambitious project to run on a -1701, but even this basic SigmaDSP  still amazes me.  So, might as well give it a go.

         Below shows one way to find the loudest channel and output its number for your index filter.  The multiplexer continuously steps through all the channel levels.  When its output equals the max block's output, that must be the strongest channel -- which triggers comparator ABCD 2 to pulse the Value Hold block, locking its output to that channel's index.  The result is an integer from 0 to N-1, where N is the number of filters.  This can drive your index filter.

         Best regards,

         Bob

Reply
  •      Hello JCB,

         Likely you know that the best way to analyze the signal for frequency peaks is via FFT, which unfortunately the ADAU1701 cannot perform.  On the other hand, the ADAU1452 can do FFT.  Once out of curiosity I removed the cover of a stereo feedback-sensing EQ and found two Sharcs and a Blackfin.  Thus you have quite an ambitious project to run on a -1701, but even this basic SigmaDSP  still amazes me.  So, might as well give it a go.

         Below shows one way to find the loudest channel and output its number for your index filter.  The multiplexer continuously steps through all the channel levels.  When its output equals the max block's output, that must be the strongest channel -- which triggers comparator ABCD 2 to pulse the Value Hold block, locking its output to that channel's index.  The result is an integer from 0 to N-1, where N is the number of filters.  This can drive your index filter.

         Best regards,

         Bob

Children
No Data