ΣSigmaStudio Ask AI Русский Log in

Highpass with variable frequency...

SigmaDSP & SigmaStudio DonPedro Mar 15, 2011 00:00 9 replies Original on forum ↗
Subscribe
DonPedro Question
Mar 15, 2011 00:00

Is there a way to create a high-pass with a variable low-cut frequency?

The idea is to create a subwoofer whose low cut-off frequency is raised with the increase of input signal value....

So when listening to music at moderate levels the subwoofer should reproduce frequencies down to e.g. 20 Hz. When the level is increased the cut-off frequency should be continuously raised to .. let's say .. 60 Hz when really loud!

Would that be possible?

Thanks in advance!!

MagicRuB Reply
Mar 16, 2011 00:00

Does the frequency need to be continuous? If not you can use a mux to use select between,say, 20, 25,30,35,40,45,50,55,60?

DonPedro Reply
Mar 16, 2011 00:00

That would be sufficient...

Is it too bold to ask how this would be done?

Especially to make it work automatic... so let's say: a signal imput of -60dB to -20dB equals 20Hz low-cut-frequ., -19dB to -15 equals 30Hz, -14 to 10 = 40Hz and so on...

I hope you know what I mean

ADIApproved Reply
Mar 17, 2011 00:00

Hi Don,

You could do this with an RMS Table block feeding the index of a General (2nd-Order / Lookup) block.

The RMS Table detects the input RMS level and outputs a value specified by the user in the index table. You would use these index values to control which filter curve is selected by the General (2nd-Order / Lookup) block. You probably want to use the version of the General (2nd - Order / Lookup) block with slew so that you do not have any clicks or pops.

-Adam

DonPedro Reply
Mar 17, 2011 00:00

Thank you, I will try that also!

At the moment I'm additionally experimenting with a simple highpass at 60 Hertz and a equalisation below 60 Hertz that linearises bass-response down to 30 Hertz. This second equalisation is combined with a compressor that flattens the curve.

So beneath let's say -30dB the bass-response is linear and above -30dB with every 3dB increase of the signal the increase below 60 Hertz is only 1dB...

Maybe that will work too... I'll run first tests and measurement this weekend...

Thanks for the support and please keep the ideas coming!

ADIApproved Reply
Mar 17, 2011 00:00

Thanks for helping support this, Adam. My suggestion would be exactly what you proposed.

cbrew Reply
Oct 28, 2013 00:00

I'm attempting to accomplish this same task but have encountered a problem. The output of the RMS Lookup Table appears to consider my table value to be a voltage level and will convert it to a 5.23 number before output. But the general (2nd order / lookup) block is looking for an integer 0-(N-1) where N is the number of filters.

How can I convert the output of the RMS LUT to the proper digital format to be an acceptable filter selector?

Thanks,

Carl

ADIApproved Reply
Oct 29, 2013 00:00

Hi Carl,

Please read this application note.

http://www.analog.com/static/imported-files/application_notes/AN-951.pdf

Page 11 has an example of inputting 28.0 values into the LUT directly, using a simple conversion formula.

Figure 31 on page 14 shows another option: multiplying the output 5.23 number by a 28.0 number to scale it properly.

The approach on page 11 is probably the easiest!

Thanks,

Brett

cbrew Reply
Oct 29, 2013 00:00

Brett,

Thank you for your reply. Both solutions look great, the one on page 11 worked perfectly.

Perhaps a nice future addition to the various LUT's would be a toggle button to select the output format of 5.23 or 28.0. It is certainly more convenient and intuitive to write 1 rather than 1.19209289550781E-07.

Thanks,

Carl

EZAdministrator Reply
Aug 2, 2018 00:00

This question has been assumed as answered either offline via email or with a multi-part answer. This question has now been closed out. If you have an inquiry related to this topic please post a new question in the applicable product forum.

Thank you,
EZ Admin