The following example shows how to normalize a vector to a new peak or RMS (root-mean-square) value. The rms function from the digital signal processing toolbox is used. For details about the calculations for RMS, see a previous article.
RMS = √(∑xi2/n)
Vector a:
>> a = [1 3 10 2 5 7 8 17 14]
a =
1 3 10 2 5 7 8 17 14
a =
1 3 10 2 5 7 8 17 14
Normalize to a new peak:
>> target_peak = 15
target_peak =
15
>> a_newpeak = a*target_peak/max(a)
a_newpeak =
0.8824 2.6471 8.8235 1.7647 4.4118 6.1765 7.0588 15.0000 12.3529
Normalize to a new RMS value:
>> target_rms = 10
target_rms =
10
>> a_newrms = a*target_rms/rms(a)
a_newrms =
1.1051 3.3152 11.0506 2.2101 5.5253 7.7354 8.8405 18.7861 15.4709
Check the RMS value:
>> rms(a_newrms)
ans =
10
References:
Root mean square (Wikipedia)/平方平均數(維基百科)
rms: Root-mean-square level (MathWorks)
Matlab: Min, Max, Mean, Square, Mean-Square, RMS (StudyEECC blog)
沒有留言:
張貼留言