--- Quote Start ---
Hello guys..
I'm trying to implement a block that evaluates the signal rms value along n samples.
So, using the std definition one must do (x_k is a complex number so I have to take in account |x_k|):
http://upload.wikimedia.org/math/0/1/4/014a453df92ed77eca97b228f0624d9f.png The simplier way I have in mind is to use an accumulator. By the way it will indroduce some overflow issues. There is a good way in doing this ??
Thank you !
--- Quote End ---
since your input is complex then square Re(Re*Re) + square Im(Im*Im) then accumulate this result over say 2^20 samples.
The accumulator will need 20 bits extra(over that of adder result) to avoid overflow. For 1/n Discard 20 LSBs when you read final result before clearing it to restart.
for square root, avoid it if you don't need it else use LUT or ip