MATLAB Answers

0

How to plot the mean of a sinusoidal function

Asked by João Oliveira on 22 Apr 2014
Latest activity Commented on by 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.

3 Answers

Answer by 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.


Answer by 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.


Answer by 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

That should work, just use
1/N*ones(1,N)
in the Coefficient parameter, where N is the window length
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.