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,

         It looks like I had forgotten an important detail -- the envelope peaks are always changing, and thus a peak capture would no longer be there by the time the mux cycled around to catch it.  Thus no matches, and the latched output stays put (I had tested the concept with manually changed DC sources).  Sorry about that.

         The attached project uses slowly changing oscillators to simulate the varying levels at each channel.  Now I strobe them all with the clock reset pulse, thus the roving comparison is static for each measurement cycle and the output does change as expected.  The remaining problem is during silence (switch off all the oscillators) -- then the output switches around some, even to an occasional out-of-bounds number (like "6").  To fix this likely you could make one of your channels a low-value DC source to act as a threshold, below which feedback zapping would never be needed.  Make the corresponding filter flat, of course.

         I'll test and comment on the projects you attached soon.

         Bob

    Max-finder.dspproj.zip
Reply
  •      Hello JCB,

         It looks like I had forgotten an important detail -- the envelope peaks are always changing, and thus a peak capture would no longer be there by the time the mux cycled around to catch it.  Thus no matches, and the latched output stays put (I had tested the concept with manually changed DC sources).  Sorry about that.

         The attached project uses slowly changing oscillators to simulate the varying levels at each channel.  Now I strobe them all with the clock reset pulse, thus the roving comparison is static for each measurement cycle and the output does change as expected.  The remaining problem is during silence (switch off all the oscillators) -- then the output switches around some, even to an occasional out-of-bounds number (like "6").  To fix this likely you could make one of your channels a low-value DC source to act as a threshold, below which feedback zapping would never be needed.  Make the corresponding filter flat, of course.

         I'll test and comment on the projects you attached soon.

         Bob

    Max-finder.dspproj.zip
Children
No Data