How to plot the mean of a sinusoidal function

14 ビュー (過去 30 日間)
João Oliveira
João Oliveira 2014 年 4 月 22 日
コメント済み: João Oliveira 2014 年 5 月 14 日
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,

回答 (3 件)

Graham Fletcher
Graham Fletcher 2014 年 4 月 22 日
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.

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

João Oliveira
João Oliveira 2014 年 5 月 12 日
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 件のコメント
Honglei Chen
Honglei Chen 2014 年 5 月 12 日
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 2014 年 5 月 14 日
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).

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeSignal Attributes and Indexing についてさらに検索

製品

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by