1
$\begingroup$

Is it possible to reverse engineer a short white noise audio file and imitate it with a function instead? The file doesn't contain pure white noise, there has been EQ applied to it, also some compression. I would most like to model this in something like MATLAB, the function needs to be simple and should NOT be neural network-based (e.g. samplerRNN).

$\endgroup$
6
  • 1
    $\begingroup$ Do I understand this right: you want an analytical function, simple at that, which can recreate the exact noise values that happened at one point in time, and have been filtered out by an EQ (no other details about levels) and it has been compressed (no other compression details)? $\endgroup$ Commented Jul 3, 2022 at 6:57
  • 1
    $\begingroup$ I am not sure about an analytical function but you could possibly approximate it with an LMS filter where you get to choose the number of taps. In general, there is a bunch of methods with which you could create an FIR filter approximating the frequency magnitude response of the noise. The hard part would be to approximate the phase response to get as close as possible to the time-domain representation of your audio file. $\endgroup$
    – ZaellixA
    Commented Jul 3, 2022 at 8:27
  • $\begingroup$ @aconcernedcitizen not an exact replica, but definitely similar in distributions of both PCM values and frequencies. I know that the original input was a white noise, but also know that it was affected by both compression and eq. Just an idea, but is there a way for me to deconvolve these effects out of the values in the frequency domain? $\endgroup$ Commented Jul 3, 2022 at 14:03
  • $\begingroup$ @ZaellixA As I know that the basis of the audio in the time domain was white noise, I am most concerned with recreating the distribution in the frequency domain $\endgroup$ Commented Jul 3, 2022 at 14:05
  • 1
    $\begingroup$ @pepperdreamteam you could definitely try the Least-Squares approach if you care mostly about the magnitude response of the signal in the frequency domain. But for the compression, I am not sure there's much to be done... If I am not mistaken compression is an irreversible process and I am not familiar with any method to achieve it. $\endgroup$
    – ZaellixA
    Commented Jul 3, 2022 at 15:20

1 Answer 1

0
$\begingroup$

I don't know whether I understood it right, you need a sort of "function" which can generate an arbitrary audio signal that has similar characteristics to the

short white noise audio file

you were talking about. Am I right?

If so, the information you gave is not enough, what kind of compression has been applied to the white noise? Talking about the EQ, what is the frequency response of the Parametric EQ? Is it just a lowpass filter, a high pass one, a cascade of parametric EQs?...etc?

If you know all the parameters of the compression and Eq that have been applied to your white noise audio file, you can "imitate" the signal by using some Matlab tools and functions.

  • Gaussian White Noise

In order to generate Gaussian White Noise, Matlab provides the following function:

noise = wgn(m,n,power)

link: https://it.mathworks.com/help/comm/ref/wgn.html

  • Parametric EQ

check here:

https://it.mathworks.com/help/audio/ug/equalization.html?s_tid=mwa_osa_a

  • Audio Compression

check out this repo:

https://github.com/Math-Man/Audio-Compression

Now once you figure out all the parameters and methods to generate your signal, you can create a Matlab function which can generate a random signal which has similar characteristics based on the chosen parameters and methods you implemented in the function.

My suggestion is to further investigate your white noise file and analyze it in the both time and frequency domain to try to guess how it has been compressed and equalized.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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