import pyfar as pf
signal = pf.signals.impulse(2**13)
signal = pf.dsp.filter.bell(signal, 2e2, 20, 4)
signal = pf.dsp.filter.bell(signal, 2e3, 20, 4)
limit = pf.dsp.filter.low_shelf(
    pf.signals.impulse(2**13), 500, -10, 2) * 10
limit = pf.dsp.decibel(limit).flatten()
limited = pf.dsp.soft_limit_spectrum(signal, limit, 10)
ax = pf.plot.freq(signal, label='original')
pf.plot.freq(limited, label='limited')
ax.plot(signal.frequencies, limit, label='limit', c='k', ls='--')
ax.set_ylim(-5, 25)
ax.legend(loc='upper left')
