MATLAB: Normalization of a signal to a particular value

normalizationrandomsignal processing

I have a signal, say
a= randn(1,1e4) + irandn(1,1e4);
I normalize this signal a to power 1 by simply multiplying it by sqrt(0.5),i.e a= sqrt(0.5)*(randn(1,1e4) + irandn(1,1e4));
But now I want this signal a to have power 3.9811e-06. Does anyone have any idea of how to do it? I would highly appreciate suggestions.

Best Answer

a = a / sqrt( sum( a.^2 ) );
is what I would have thought would give the normalised signal for power 1 (L2-norm).
So
a = a * sqrt( 3.9811e-6 ) / sqrt( sum( a.^2 ) );
should normalise to 3.9811e-06 power.