element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Embedded and Microcontrollers
  • Technologies
  • More
Embedded and Microcontrollers
DSP Forum Algo for rms computation?
  • Blog
  • Forum
  • Documents
  • Quiz
  • Polls
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Embedded and Microcontrollers requires membership for participation - click to join
Actions
  • Share
  • More
  • Cancel
Forum Thread Details
  • Replies 12 replies
  • Subscribers 119 subscribers
  • Views 1635 views
  • Users 0 members are here
Related

Algo for rms computation?

ggabe
ggabe over 1 year ago

I’m entertaining a true rms computation on MSPM0G3507 for the 10Hz…100KHz range. 

The MCU is limited to 32K RAM, so I’d change the sampling frequency if I can determine the signal is periodic and in the lower frequency range.

Is there any algorithm that aims capture N periods of a periodic signal? 

Should I be better of by going into frequency domain with a proper window function, and possibly trying multiple sampling rates to choose the proper range?

  • Sign in to reply
  • Cancel

Top Replies

  • michaelkellett
    michaelkellett over 1 year ago +2
    What's wrong with: sample (at 500kHz) s square (at 500kHz) sq = s * s mean (at 500kHz) m = m + ( (sq - m) / Ki) square root (at read out rate) rms = m ^ 0.5 Division by a constant can be done…
  • ggabe
    ggabe over 1 year ago in reply to scottiebabe +2
    Yes, it is interesting. TI is selling the EVB for $16 direct. The part is very much a new item, TI is not sampling it yet. The accelerator is cool, but not as advanced as the MSP430's LEA. The benefit…
  • ggabe
    ggabe over 1 year ago in reply to michaelkellett +2
    I think the algorithm with Ki used to be referred as exponential decay averaging. The alternative, the moving averaging has a sensitivity when the weight of the partial periods start to influence the average…
Parents
  • michaelkellett
    michaelkellett over 1 year ago

    What's wrong with:

    sample (at 500kHz)       s

    square (at 500kHz)       sq = s * s

    mean (at 500kHz)         m = m + ( (sq - m) /  Ki)

    square root (at read out rate)  rms = m ^ 0.5

    Division by a constant can be done by multiplication by a constant and a shift operation.

    So you need 3 multiplies, 1 add, 1 subtract and 1 shift at sample speed, and the square root at read out speed.

    MK

    • Cancel
    • Vote Up +2 Vote Down
    • Sign in to reply
    • Cancel
Reply
  • michaelkellett
    michaelkellett over 1 year ago

    What's wrong with:

    sample (at 500kHz)       s

    square (at 500kHz)       sq = s * s

    mean (at 500kHz)         m = m + ( (sq - m) /  Ki)

    square root (at read out rate)  rms = m ^ 0.5

    Division by a constant can be done by multiplication by a constant and a shift operation.

    So you need 3 multiplies, 1 add, 1 subtract and 1 shift at sample speed, and the square root at read out speed.

    MK

    • Cancel
    • Vote Up +2 Vote Down
    • Sign in to reply
    • Cancel
Children
  • ggabe
    ggabe over 1 year ago in reply to michaelkellett

    I think the algorithm with Ki used to be referred as exponential decay averaging. The alternative, the moving averaging has a sensitivity when the weight of the partial periods start to influence the average. It happens on the lowest end of the spectrum.

    My gut feeling is the exponential decay has the same problem, probably tunable by Ki for the expense of return to zero time, when the signal is removed.

    To address the low frequency accuracy concerns, I would experiment with reducing the sampling rate, if the signal is periodic and not much spectral power over let's say fsample/200. This is where autocorrelation and/or FFT comes in. Luckily, it's not much trouble to simulate in a Jupyter notebook.

    • Cancel
    • Vote Up +2 Vote Down
    • Sign in to reply
    • Cancel
  • michaelkellett
    michaelkellett over 1 year ago in reply to ggabe

    I'll be very interested to see how you get on with this. My own (limited) experiments in this direction have suggested that the ex. dec. has the advantage of stability and predictability but that more tuned methods which make assumptions or self modifications based on the signal may give very good results with some signals but can be caught out by others. My work was done on ST32H7 series processors which have the advantage of 16bit ADCs (not the best 16 bits I've ever seen) and the 400MHz 64 bit FP possibly makes up for the lack of the accelerator.

    I'm still working on the indirectly heated thermistor concept (which is an almost perfect physical analogue of the process I described above) but in reality it trades one kind of complexity (ADC, memory and maths) for a probably more expensive complexity in terms of insulation , heaters and thermal control Relaxed. But I have other reasons for being interested in the thermal control aspects so it remains a useful project to me.

    MK

    • Cancel
    • Vote Up +2 Vote Down
    • Sign in to reply
    • Cancel
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2025 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube