[英]function for calculate the rms average in matlab
如果你只對計算 RMS 值感興趣,你不需要自己實現 RMS function,你可以使用內置的 function:
help rms
rms Root mean squared value.
For vectors, rms(X) is the root mean squared value in X. ...
如果您的輸入是向量x
,您可能會做類似的事情
x = [1, 2, 3, 5, 6, 12, 5, 6]
y = rms(x)
相反,如果您嘗試自己實施 function,請通過在命令 window 中鍵入以下內容來查看rms
源代碼
open rms
在源文件中應該有兩種情況,具體取決於輸入的數量(可能取決於您使用的 Matlab 的版本)。
可以使用sum()
function 或使用 for 循環並迭代添加來完成求和。 假設您在數學上理解計算過程,下面是一些將其轉換為 MATLAB 代碼的方法。
這里向量x
是按元素平方的(提高到指數 2)。 這意味着向量x
中的每個元素都取 2 的冪。執行平方的代碼部分是abs(x).^2
。 逐元素操作可以用 表示.
在操作之前。 在這種情況下,操作是乘法, *
配置為逐元素乘法變為.*
。
%Random vector of integers%
x = round(100*rand(1,100));
N = length(x);
x_RMS = sqrt((1/N)*sum(abs(x).^2));
x_RMS
使用 for 循環將等式分解為模擬求和過程的迭代步驟。 這里向量x
中的每個值都被平方並添加到一個稱為Accumulator
的變量中,該變量在迭代計算時保持總和的運行總和。
%Random vector of integers%
x = round(100*rand(1,100));
N = length(x);
Accumulator = 0;
for n = 1: N
Accumulator = Accumulator + abs(x(n))^2;
end
x_RMS = sqrt((1/N)*Accumulator);
x_RMS
使用 MATLAB R2019b 運行
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.