I shall try to elaborate my question as much as possible because I tried multiple things but I am not available to find a possible solution.

Problem Statement :
I have an impulse response, say a vector of length 1024 with range [-1.0 to 1.0]. I used the "rnorm_pre" function of R language (Make a normal vector correlated to an existing vector). It generates the expected vector with the correlation coefficient specified by me. Now, I want say 15 vectors named A to O such that each combination of vectors produces the specified correlation coefficeint.

Solutions I tried :

  • Generated 15 vectors with reference to one response i.e from A, I generated remaining vectors B to O. These vectors give the desire correlation coefficient with respect to A but any other combination doesn't give the specific correlation coefficients.
  • From Vector A, I generated B then I added A+B and from that vector, I generated vector C and then added A+B+C to produce D and so on. Still, didn't get the expected correlation combinations.

So is there any way to generate different vectors that fulfill the requirements of specific correlation among any combination of vectors?

Things to keep in mind:

  • These vectors are actually impulse responses i.e related to audio signal processing with a range of [-1.0 to 1.0] exceeding this range will cause spectral leakage which is not accetable.

  • Solutions I tried were inspired by decorrelation algorithm research papers. So if there are any research papers to solve this issue. Feel free to post links here.



Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.