0
$\begingroup$

I would like to see what type of noise I would get if I used just the frequencies in my voice. I created a matlab array using fft to get a [frequency,amplitude,phase] array of my voice. I then to reproduced my vocal signal using $A*\cos(ft+\phi)$

I would like to take this file/data and use it to create pink noise $1/f$. When I use $1/f$ for the frequency the numbers become very small. Does anyone have any ideas how to use my own vocal frequencies that I get from doing a fft in matlab to create $1/f$ pink noise?

$\endgroup$
3
  • 1
    $\begingroup$ cross posted: dsp.stackexchange.com/questions/10008/… $\endgroup$ Jul 22, 2013 at 20:36
  • 1
    $\begingroup$ like if you read 'pink floyd' instead of 'pink noise' $\endgroup$
    – lurscher
    Jul 22, 2013 at 21:52
  • $\begingroup$ General piece of advice: It's usually worth separating out concept/algorithm from implementation in your mind. This post discusses Fourier transforms (concept) of discrete data (DFT, a class of algorithms) that you want to be done fast (FFT, a specific algorithm) in the language of your personal choice (Matlab). The conceptual issues should not care what algorithm is in play, and certainly shouldn't care if you are coding Matlab vs. an abacus-based Turing machine - in fact, getting bogged down in implementation details often obscures the concept. $\endgroup$
    – user10851
    Jul 22, 2013 at 22:02

1 Answer 1

2
$\begingroup$

Pink noise is not going to sound like voices; it sounds a lot more like water splashing in a fountain. The high frequencies are small, and it will not just sound like a garbled version of your voice. The reason is that the amplitude distribution you find in your voice cannot be maintained--voice doesn't have a 1/f distribution.

You can maintain the phase relationships from your own voice, but you won't be able to tell the difference, most likely, due to the completely altered frequency amplitude profile. (Ears are sensitive to frequency and not very sensitive to relative phase.)

You can generate it like this (among other things): generate white noise, take the FFT, multiply the amplitude components by 1/f, replace the phase with the phases from your voice, and then invert the FFT. This will maintain approximately the right frequency-to-frequency variability for a clip of that length.

Now, you could also try to pinkify your voice. It wouldn't be pink noise, but rather 1/f voice. You'd need to have a broad envelope over your voice FFT that you could then multiply to get something that went like 1/f. You'd generally need to boost the low frequencies, damp the medium ones, and possibly boost the high ones again. It will sound like a growling mess with a faint voice in the middle of it, if you're lucky. (I'd generally use a spectrogram for this sort of thing; a FFT isn't good enough at maintaining temporal correlations.)

$\endgroup$

Not the answer you're looking for? Browse other questions tagged or ask your own question.