Filter to add 3dB per octave? If I want to add 3dB per octave to signal (e.g. to flatten out the power spectrum of an exponential sine sweep), is it really just as simple as...


Take the Fourier transform of the time-domain signal, let's call this A(f).
Multiply this by the square root of the frequency  (square root because power goes like amplitude squared)?
Maybe normalize by the lowest frequency, so that there's unity gain for that frequency.
Take the inverse Fourier transform to get back to the time domain.


Mathematically, the filter would be, simply,...

A'(f) := A(f) * sqrt ( f / f_low )

Is this right, and/or is there a better way?
(I've searched around and...it seems this is such a simple matter that people don't post how to do this.)
take any of the pinking filters you can find and swap the zeros with the poles.

e.g. here's my pinking filter with 3 real poles and 3 real zeros (all inside the unit circle):

$$ H(z) = A \frac{(z-q_1)(z-q_2)(z-q_3)}{(z-p_1)(z-p_2)(z-p_3)} $$

$p_1$ = 0.99572754,     $q_1$ = 0.98443604 

$p_2$ = 0.94790649,     $q_2$ = 0.83392334 

$p_3$ = 0.53567505,     $q_3$ = 0.07568359

just swap the poles with the zeros.