MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn moreOpportunities for recent engineering grads.

Apply Today**New to MATLAB?**

Asked by harish bharadwaj
on 24 May 2011

hi,

how to calculate summation of absolute value of incoming digital data over a cycle period for example 64 samples in a cycle using matlab or simulink

∑abs|d1(k)| for k=0 to 64

*No products are associated with this question.*

Answer by Mark Biesiada
on 24 May 2011

There are a couple options available:

- You could chain a series of 64 unit delays together and run a branched signal off of each one into a summation block.

- You could use MATLAB function block ("Embedded MATLAB" in older releases) and have something in the body like:

function y = avg64( u ) persistent x; if( isemtpy( x ) == true ) x = zeros( 64, 1 ); end

x = [ abs(u), x( 2 : end ) ]; y = x;

return; end

- I believe that the communication blockset has some buffer blocks that will accumulate a rolling set of samples, which you could then feed to a sum block.
- There is probably a way to write this as a transfer function too.

## 0 Comments