MATLAB Answers

How to plot the mean of a sinusoidal function

33 views (last 30 days)
João Oliveira
João Oliveira on 22 Apr 2014
Commented: João Oliveira on 14 May 2014
Hi,
Like the image below I want to use a block from simulink which allow me to plot the mean value (green line) of a sinusoidal function (blue line). I've tried the block "mean value (linear)" but it just gave me another sinusoidal function with less amplitude compared to the original. Can someone tell me which block should I use?
Regards,

  0 Comments

Sign in to comment.

Answers (3)

Graham Fletcher
Graham Fletcher on 22 Apr 2014
Hi João,
My solution would probably be to create an integrator (ie. sinusoid value into a sum together with previous value of the sum output) and a counter which increments by 1 each sample, and divide the integrator by the counter. This would give you a mean according to the definition mean = sum(samples) / num samples. Its not too efficient so I'd probably rethink if that was a concern but I think it'd work for what you describe.
HTH, G.

  0 Comments

Sign in to comment.


João Oliveira
João Oliveira on 23 Apr 2014
Thanks Graham but isn't there any built in block on simulink that provide this type of output?

  0 Comments

Sign in to comment.


João Oliveira
João Oliveira on 12 May 2014
It is possible to use the block Discrete FIR Filter to get the moving average result? It seems this block is the replace of "Weighted Moving Average (Obsolete)" block but I cant get the desired output...

  2 Comments

Honglei Chen
Honglei Chen on 12 May 2014
That should work, just use
1/N*ones(1,N)
in the Coefficient parameter, where N is the window length
João Oliveira
João Oliveira on 14 May 2014
Hi Honglei, it didn't work.
Hi get the result in the image bellow. Can you tell me what the meaning of the expression 1/N*ones(1,N) ? I put that on the "Numerator coefficients:" parameters with N =120 (my simulation time).

Sign in to comment.

Sign in to answer this question.


Translated by