MATLAB: I have a sound signal x(n). i want to make a random signal r(n) of the same length but half the magnitude of x(n). How do i make r(n) have half the magnitude of x(n)

digital signal processing

I have a sound signal x(n). i want to make a random signal r(n) of the same length but half the magnitude of x(n). How do i make r(n) have half the magnitude of x(n)?

Best Answer

Random signals are of course random, so its being exactly half the amplitude is probably not going to be the situation everywhere. You can scale the randn output by multiplying it by the standard deviation you want, so:
signal = ...; % Signal Vector
noise = std(signal)*0.5*randn(size(signal)); % Noise Vector
This scales the noise vector to be 0.5 times the standard deviation of your signal vector. That is probably as close as you can get to what you want to do.