<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Este artigo apresenta uma abordagem didática e aprofundada sobre o uso de filtros estatísticos em sistemas embarcados - MCU &amp; FPGA</title>
	<atom:link href="https://mcu.tec.br/tags/este-artigo-apresenta-uma-abordagem-didatica-e-aprofundada-sobre-o-uso-de-filtros-estatisticos-em-sistemas-embarcados/feed/" rel="self" type="application/rss+xml" />
	<link>https://mcu.tec.br</link>
	<description>Microcontroladores &#38; FPGA</description>
	<lastBuildDate>Tue, 06 Jan 2026 22:05:12 +0000</lastBuildDate>
	<language>pt-BR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</generator>

<image>
	<url>https://mcu.tec.br/wp-content/uploads/2025/02/Robo-para-o-site-MCU.tec_.br-512x512-1-150x150.png</url>
	<title>Este artigo apresenta uma abordagem didática e aprofundada sobre o uso de filtros estatísticos em sistemas embarcados - MCU &amp; FPGA</title>
	<link>https://mcu.tec.br</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Filtros Estatísticos em Sistemas Embarcados: EMA, Wiener e Kalman Aplicados ao RP2040</title>
		<link>https://mcu.tec.br/algoritimos/dsp/filtros-estatisticos-em-sistemas-embarcados-ema-wiener-e-kalman-aplicados-ao-rp2040/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=filtros-estatisticos-em-sistemas-embarcados-ema-wiener-e-kalman-aplicados-ao-rp2040</link>
		
		<dc:creator><![CDATA[Carlos Delfino]]></dc:creator>
		<pubDate>Thu, 26 Feb 2026 09:24:35 +0000</pubDate>
				<category><![CDATA[DSP]]></category>
		<category><![CDATA[conectando os filtros a decisões confiáveis em sistemas de DSP embarcado]]></category>
		<category><![CDATA[destacando suas diferenças conceituais]]></category>
		<category><![CDATA[Este artigo apresenta uma abordagem didática e aprofundada sobre o uso de filtros estatísticos em sistemas embarcados]]></category>
		<category><![CDATA[explorando a média móvel exponencial (EMA)]]></category>
		<category><![CDATA[limitações e aplicações reais em microcontroladores como o RP2040. Com exemplos incrementais em linguagem C]]></category>
		<guid isPermaLink="false">https://mcu.tec.br/?p=1137</guid>

					<description><![CDATA[<p>Este artigo apresenta uma abordagem didática e aprofundada sobre o uso de filtros estatísticos em sistemas embarcados, explorando a média móvel exponencial (EMA), o filtro de Wiener e o filtro de Kalman sob a perspectiva prática de engenharia. O texto explica como cada filtro atua na suavização, separação sinal-ruído e estimação de estados, destacando suas diferenças conceituais, limitações e aplicações reais em microcontroladores como o RP2040. Com exemplos incrementais em linguagem C, o artigo demonstra implementações eficientes e viáveis para firmware bare-metal, conectando os filtros a decisões confiáveis em sistemas de DSP embarcado, sensores e controle. Ideal para engenheiros e estudantes que desejam compreender quando e como aplicar cada filtro em projetos reais.</p>
<p>The post <a href="https://mcu.tec.br/algoritimos/dsp/filtros-estatisticos-em-sistemas-embarcados-ema-wiener-e-kalman-aplicados-ao-rp2040/">Filtros Estatísticos em Sistemas Embarcados: EMA, Wiener e Kalman Aplicados ao RP2040</a> first appeared on <a href="https://mcu.tec.br">MCU & FPGA</a>.</p>]]></description>
										<content:encoded><![CDATA[<div class="root-eb-toc-mhzll wp-block-essential-blocks-table-of-contents"><div class="eb-parent-wrapper eb-parent-eb-toc-mhzll "><div class="eb-toc-container eb-toc-mhzll  eb-toc-is-not-sticky eb-toc-not-collapsible eb-toc-initially-not-collapsed eb-toc-scrollToTop style-1 list-style-none" data-scroll-top="false" data-scroll-top-icon="fas fa-angle-up" data-collapsible="false" data-sticky-hide-mobile="false" data-sticky="false" data-scroll-target="scroll_to_toc" data-copy-link="false" data-editor-type="" data-hide-desktop="false" data-hide-tab="false" data-hide-mobile="false" data-itemcollapsed="false" data-highlight-scroll="false"><div class="eb-toc-header"><h2 class="eb-toc-title">Table of Contents</h2></div><div class="eb-toc-wrapper " data-headers="[{&quot;level&quot;:3,&quot;content&quot;:&quot;M\u00e9dia M\u00f3vel Exponencial, Wiener e Kalman aplicados ao RP2040&quot;,&quot;text&quot;:&quot;M\u00e9dia M\u00f3vel Exponencial, Wiener e Kalman aplicados ao RP2040&quot;,&quot;link&quot;:&quot;eb-table-content-0&quot;},{&quot;level&quot;:2,&quot;content&quot;:&quot;1. Introdu\u00e7\u00e3o \u2014 Por que filtros s\u00e3o decisores disfar\u00e7ados&quot;,&quot;text&quot;:&quot;1. Introdu\u00e7\u00e3o \u2014 Por que filtros s\u00e3o decisores disfar\u00e7ados&quot;,&quot;link&quot;:&quot;eb-table-content-1&quot;},{&quot;level&quot;:2,&quot;content&quot;:&quot;1.1 O papel dos filtros na arquitetura embarcada moderna&quot;,&quot;text&quot;:&quot;1.1 O papel dos filtros na arquitetura embarcada moderna&quot;,&quot;link&quot;:&quot;11-o-papel-dos-filtros-na-arquitetura-embarcada-moderna&quot;},{&quot;level&quot;:2,&quot;content&quot;:&quot;1.2 Ordem crescente de complexidade (e poder)&quot;,&quot;text&quot;:&quot;1.2 Ordem crescente de complexidade (e poder)&quot;,&quot;link&quot;:&quot;12-ordem-crescente-de-complexidade-e-poder&quot;},{&quot;level&quot;:2,&quot;content&quot;:&quot;1.3 Come\u00e7ando pelo mais importante: M\u00e9dia M\u00f3vel Exponencial (EMA)&quot;,&quot;text&quot;:&quot;1.3 Come\u00e7ando pelo mais importante: M\u00e9dia M\u00f3vel Exponencial (EMA)&quot;,&quot;link&quot;:&quot;eb-table-content-4&quot;},{&quot;level&quot;:2,&quot;content&quot;:&quot;1.4 Conceito intuitivo da EMA&quot;,&quot;text&quot;:&quot;1.4 Conceito intuitivo da EMA&quot;,&quot;link&quot;:&quot;14-conceito-intuitivo-da-ema&quot;},{&quot;level&quot;:2,&quot;content&quot;:&quot;1.5 EMA como filtro passa-baixa de primeira ordem&quot;,&quot;text&quot;:&quot;1.5 EMA como filtro passa-baixa de primeira ordem&quot;,&quot;link&quot;:&quot;15-ema-como-filtro-passa-baixa-de-primeira-ordem&quot;},{&quot;level&quot;:2,&quot;content&quot;:&quot;1.6 Implementa\u00e7\u00e3o incremental em C (base do artigo)&quot;,&quot;text&quot;:&quot;1.6 Implementa\u00e7\u00e3o incremental em C (base do artigo)&quot;,&quot;link&quot;:&quot;eb-table-content-7&quot;},{&quot;level&quot;:2,&quot;content&quot;:&quot;1.7 Escolhendo o valor de \u03b1 (engenharia, n\u00e3o tentativa)&quot;,&quot;text&quot;:&quot;1.7 Escolhendo o valor de \u03b1 (engenharia, n\u00e3o tentativa)&quot;,&quot;link&quot;:&quot;eb-table-content-8&quot;},{&quot;level&quot;:2,&quot;content&quot;:&quot;1.8 Onde a EMA falha (e por qu\u00ea)&quot;,&quot;text&quot;:&quot;1.8 Onde a EMA falha (e por qu\u00ea)&quot;,&quot;link&quot;:&quot;eb-table-content-9&quot;},{&quot;level&quot;:2,&quot;content&quot;:&quot;2 \u2014 Filtro de Wiener: minimiza\u00e7\u00e3o do erro m\u00e9dio e separa\u00e7\u00e3o sinal-ru\u00eddo&quot;,&quot;text&quot;:&quot;2 \u2014 Filtro de Wiener: minimiza\u00e7\u00e3o do erro m\u00e9dio e separa\u00e7\u00e3o sinal-ru\u00eddo&quot;,&quot;link&quot;:&quot;eb-table-content-10&quot;},{&quot;level&quot;:3,&quot;content&quot;:&quot;2.1 A ideia central do Wiener (sem f\u00f3rmulas intimidadoras)&quot;,&quot;text&quot;:&quot;2.1 A ideia central do Wiener (sem f\u00f3rmulas intimidadoras)&quot;,&quot;link&quot;:&quot;eb-table-content-11&quot;},{&quot;level&quot;:3,&quot;content&quot;:&quot;2.2 Modelo estat\u00edstico assumido&quot;,&quot;text&quot;:&quot;2.2 Modelo estat\u00edstico assumido&quot;,&quot;link&quot;:&quot;eb-table-content-12&quot;},{&quot;level&quot;:3,&quot;content&quot;:&quot;2.3 Wiener no dom\u00ednio da frequ\u00eancia (vis\u00e3o conceitual)&quot;,&quot;text&quot;:&quot;2.3 Wiener no dom\u00ednio da frequ\u00eancia (vis\u00e3o conceitual)&quot;,&quot;link&quot;:&quot;eb-table-content-13&quot;},{&quot;level&quot;:3,&quot;content&quot;:&quot;2.4 Por que isso \u00e9 poderoso em sistemas embarcados?&quot;,&quot;text&quot;:&quot;2.4 Por que isso \u00e9 poderoso em sistemas embarcados?&quot;,&quot;link&quot;:&quot;eb-table-content-14&quot;},{&quot;level&quot;:3,&quot;content&quot;:&quot;2.5 Wiener simplificado para MCU (forma escalar)&quot;,&quot;text&quot;:&quot;2.5 Wiener simplificado para MCU (forma escalar)&quot;,&quot;link&quot;:&quot;25-wiener-simplificado-para-mcu-forma-escalar&quot;},{&quot;level&quot;:3,&quot;content&quot;:&quot;2.6 Implementa\u00e7\u00e3o incremental em C (forma pr\u00e1tica)&quot;,&quot;text&quot;:&quot;2.6 Implementa\u00e7\u00e3o incremental em C (forma pr\u00e1tica)&quot;,&quot;link&quot;:&quot;eb-table-content-16&quot;},{&quot;level&quot;:3,&quot;content&quot;:&quot;2.7 Estimando vari\u00e2ncias em tempo real&quot;,&quot;text&quot;:&quot;2.7 Estimando vari\u00e2ncias em tempo real&quot;,&quot;link&quot;:&quot;eb-table-content-17&quot;},{&quot;level&quot;:3,&quot;content&quot;:&quot;2.8 Onde o Wiener falha (e quando n\u00e3o usar)&quot;,&quot;text&quot;:&quot;2.8 Onde o Wiener falha (e quando n\u00e3o usar)&quot;,&quot;link&quot;:&quot;eb-table-content-18&quot;},{&quot;level&quot;:3,&quot;content&quot;:&quot;2.9 EMA vs. Wiener (compara\u00e7\u00e3o direta)&quot;,&quot;text&quot;:&quot;2.9 EMA vs. Wiener (compara\u00e7\u00e3o direta)&quot;,&quot;link&quot;:&quot;eb-table-content-19&quot;},{&quot;level&quot;:2,&quot;content&quot;:&quot;3 \u2014 Filtro de Kalman: estima\u00e7\u00e3o de estados, incerteza e predi\u00e7\u00e3o&quot;,&quot;text&quot;:&quot;3 \u2014 Filtro de Kalman: estima\u00e7\u00e3o de estados, incerteza e predi\u00e7\u00e3o&quot;,&quot;link&quot;:&quot;eb-table-content-20&quot;},{&quot;level&quot;:3,&quot;content&quot;:&quot;3.1 Intui\u00e7\u00e3o antes da matem\u00e1tica&quot;,&quot;text&quot;:&quot;3.1 Intui\u00e7\u00e3o antes da matem\u00e1tica&quot;,&quot;link&quot;:&quot;eb-table-content-21&quot;},{&quot;level&quot;:3,&quot;content&quot;:&quot;3.2 Modelo de estado (caso 1D)&quot;,&quot;text&quot;:&quot;3.2 Modelo de estado (caso 1D)&quot;,&quot;link&quot;:&quot;32-modelo-de-estado-caso-1d&quot;},{&quot;level&quot;:3,&quot;content&quot;:&quot;3.3 Ciclo do Kalman: previs\u00e3o e corre\u00e7\u00e3o&quot;,&quot;text&quot;:&quot;3.3 Ciclo do Kalman: previs\u00e3o e corre\u00e7\u00e3o&quot;,&quot;link&quot;:&quot;eb-table-content-23&quot;},{&quot;level&quot;:4,&quot;content&quot;:&quot;1\ufe0f\u20e3 Previs\u00e3o&quot;,&quot;text&quot;:&quot;1\ufe0f\u20e3 Previs\u00e3o&quot;,&quot;link&quot;:&quot;eb-table-content-24&quot;},{&quot;level&quot;:4,&quot;content&quot;:&quot;2\ufe0f\u20e3 Corre\u00e7\u00e3o&quot;,&quot;text&quot;:&quot;2\ufe0f\u20e3 Corre\u00e7\u00e3o&quot;,&quot;link&quot;:&quot;eb-table-content-25&quot;},{&quot;level&quot;:3,&quot;content&quot;:&quot;3.4 Compara\u00e7\u00e3o conceitual com EMA e Wiener&quot;,&quot;text&quot;:&quot;3.4 Compara\u00e7\u00e3o conceitual com EMA e Wiener&quot;,&quot;link&quot;:&quot;eb-table-content-26&quot;},{&quot;level&quot;:3,&quot;content&quot;:&quot;3.5 Implementa\u00e7\u00e3o Kalman 1D em C (vi\u00e1vel em MCU)&quot;,&quot;text&quot;:&quot;3.5 Implementa\u00e7\u00e3o Kalman 1D em C (vi\u00e1vel em MCU)&quot;,&quot;link&quot;:&quot;eb-table-content-27&quot;},{&quot;level&quot;:3,&quot;content&quot;:&quot;3.6 Escolhendo Q e R (engenharia pr\u00e1tica)&quot;,&quot;text&quot;:&quot;3.6 Escolhendo Q e R (engenharia pr\u00e1tica)&quot;,&quot;link&quot;:&quot;eb-table-content-28&quot;},{&quot;level&quot;:3,&quot;content&quot;:&quot;3.7 Quando Kalman \u00e9 a escolha certa&quot;,&quot;text&quot;:&quot;3.7 Quando Kalman \u00e9 a escolha certa&quot;,&quot;link&quot;:&quot;eb-table-content-29&quot;},{&quot;level&quot;:3,&quot;content&quot;:&quot;3.8 Onde Kalman n\u00e3o compensa&quot;,&quot;text&quot;:&quot;3.8 Onde Kalman n\u00e3o compensa&quot;,&quot;link&quot;:&quot;eb-table-content-30&quot;},{&quot;level&quot;:2,&quot;content&quot;:&quot; 4 \u2014 Compara\u00e7\u00e3o pr\u00e1tica entre EMA, Wiener e Kalman, diretrizes de escolha, encerramento e SEO&quot;,&quot;text&quot;:&quot; 4 \u2014 Compara\u00e7\u00e3o pr\u00e1tica entre EMA, Wiener e Kalman, diretrizes de escolha, encerramento e SEO&quot;,&quot;link&quot;:&quot;eb-table-content-31&quot;},{&quot;level&quot;:3,&quot;content&quot;:&quot;4.1 O que realmente diferencia esses filtros (al\u00e9m da matem\u00e1tica)&quot;,&quot;text&quot;:&quot;4.1 O que realmente diferencia esses filtros (al\u00e9m da matem\u00e1tica)&quot;,&quot;link&quot;:&quot;eb-table-content-32&quot;},{&quot;level&quot;:3,&quot;content&quot;:&quot;4.2 Compara\u00e7\u00e3o direta: quando cada filtro vence&quot;,&quot;text&quot;:&quot;4.2 Compara\u00e7\u00e3o direta: quando cada filtro vence&quot;,&quot;link&quot;:&quot;eb-table-content-33&quot;},{&quot;level&quot;:3,&quot;content&quot;:&quot;4.3 Diretrizes pr\u00e1ticas de escolha (engenharia de campo)&quot;,&quot;text&quot;:&quot;4.3 Diretrizes pr\u00e1ticas de escolha (engenharia de campo)&quot;,&quot;link&quot;:&quot;eb-table-content-34&quot;},{&quot;level&quot;:3,&quot;content&quot;:&quot;4.4 Conex\u00e3o direta com os artigos anteriores da s\u00e9rie&quot;,&quot;text&quot;:&quot;4.4 Conex\u00e3o direta com os artigos anteriores da s\u00e9rie&quot;,&quot;link&quot;:&quot;eb-table-content-35&quot;},{&quot;level&quot;:3,&quot;content&quot;:&quot;4.5 Um erro comum: tratar filtros como \u201cp\u00f3s-processamento\u201d&quot;,&quot;text&quot;:&quot;4.5 Um erro comum: tratar filtros como \u201cp\u00f3s-processamento\u201d&quot;,&quot;link&quot;:&quot;eb-table-content-36&quot;},{&quot;level&quot;:3,&quot;content&quot;:&quot;4.6 Encerramento conceitual&quot;,&quot;text&quot;:&quot;4.6 Encerramento conceitual&quot;,&quot;link&quot;:&quot;46-encerramento-conceitual&quot;}]" data-visible="[true,true,true,true,true,true]" data-delete-headers="[{&quot;label&quot;:&quot;M\u00e9dia M\u00f3vel Exponencial, Wiener e Kalman aplicados ao RP2040&quot;,&quot;value&quot;:&quot;m\u00e9dia-m\u00f3vel-exponencial-wiener-e-kalman-aplicados-ao-rp2040&quot;,&quot;isDelete&quot;:false},{&quot;label&quot;:&quot;1. Introdu\u00e7\u00e3o \u2014 Por que filtros s\u00e3o decisores disfar\u00e7ados&quot;,&quot;value&quot;:&quot;1-introdu\u00e7\u00e3o-por-que-filtros-s\u00e3o-decisores-disfar\u00e7ados&quot;,&quot;isDelete&quot;:false},{&quot;label&quot;:&quot;1.1 O papel dos filtros na arquitetura embarcada moderna&quot;,&quot;value&quot;:&quot;11-o-papel-dos-filtros-na-arquitetura-embarcada-moderna&quot;,&quot;isDelete&quot;:false},{&quot;label&quot;:&quot;1.2 Ordem crescente de complexidade (e poder)&quot;,&quot;value&quot;:&quot;12-ordem-crescente-de-complexidade-e-poder&quot;,&quot;isDelete&quot;:false},{&quot;label&quot;:&quot;1.3 Come\u00e7ando pelo mais importante: M\u00e9dia M\u00f3vel Exponencial (EMA)&quot;,&quot;value&quot;:&quot;13-come\u00e7ando-pelo-mais-importante-m\u00e9dia-m\u00f3vel-exponencial-ema&quot;,&quot;isDelete&quot;:false},{&quot;label&quot;:&quot;1.4 Conceito intuitivo da EMA&quot;,&quot;value&quot;:&quot;14-conceito-intuitivo-da-ema&quot;,&quot;isDelete&quot;:false},{&quot;label&quot;:&quot;1.5 EMA como filtro passa-baixa de primeira ordem&quot;,&quot;value&quot;:&quot;15-ema-como-filtro-passa-baixa-de-primeira-ordem&quot;,&quot;isDelete&quot;:false},{&quot;label&quot;:&quot;1.6 Implementa\u00e7\u00e3o incremental em C (base do artigo)&quot;,&quot;value&quot;:&quot;16-implementa\u00e7\u00e3o-incremental-em-c-base-do-artigo&quot;,&quot;isDelete&quot;:false},{&quot;label&quot;:&quot;1.7 Escolhendo o valor de \u03b1 (engenharia, n\u00e3o tentativa)&quot;,&quot;value&quot;:&quot;17-escolhendo-o-valor-de-\u03b1-engenharia-n\u00e3o-tentativa&quot;,&quot;isDelete&quot;:false},{&quot;label&quot;:&quot;1.8 Onde a EMA falha (e por qu\u00ea)&quot;,&quot;value&quot;:&quot;18-onde-a-ema-falha-e-por-qu\u00ea&quot;,&quot;isDelete&quot;:false},{&quot;label&quot;:&quot;2 \u2014 Filtro de Wiener: minimiza\u00e7\u00e3o do erro m\u00e9dio e separa\u00e7\u00e3o sinal-ru\u00eddo&quot;,&quot;value&quot;:&quot;2-filtro-de-wiener-minimiza\u00e7\u00e3o-do-erro-m\u00e9dio-e-separa\u00e7\u00e3o-sinal-ru\u00eddo&quot;,&quot;isDelete&quot;:false},{&quot;label&quot;:&quot;2.1 A ideia central do Wiener (sem f\u00f3rmulas intimidadoras)&quot;,&quot;value&quot;:&quot;21-a-ideia-central-do-wiener-sem-f\u00f3rmulas-intimidadoras&quot;,&quot;isDelete&quot;:false},{&quot;label&quot;:&quot;2.2 Modelo estat\u00edstico assumido&quot;,&quot;value&quot;:&quot;22-modelo-estat\u00edstico-assumido&quot;,&quot;isDelete&quot;:false},{&quot;label&quot;:&quot;2.3 Wiener no dom\u00ednio da frequ\u00eancia (vis\u00e3o conceitual)&quot;,&quot;value&quot;:&quot;23-wiener-no-dom\u00ednio-da-frequ\u00eancia-vis\u00e3o-conceitual&quot;,&quot;isDelete&quot;:false},{&quot;label&quot;:&quot;2.4 Por que isso \u00e9 poderoso em sistemas embarcados?&quot;,&quot;value&quot;:&quot;24-por-que-isso-\u00e9-poderoso-em-sistemas-embarcados&quot;,&quot;isDelete&quot;:false},{&quot;label&quot;:&quot;2.5 Wiener simplificado para MCU (forma escalar)&quot;,&quot;value&quot;:&quot;25-wiener-simplificado-para-mcu-forma-escalar&quot;,&quot;isDelete&quot;:false},{&quot;label&quot;:&quot;2.6 Implementa\u00e7\u00e3o incremental em C (forma pr\u00e1tica)&quot;,&quot;value&quot;:&quot;26-implementa\u00e7\u00e3o-incremental-em-c-forma-pr\u00e1tica&quot;,&quot;isDelete&quot;:false},{&quot;label&quot;:&quot;2.7 Estimando vari\u00e2ncias em tempo real&quot;,&quot;value&quot;:&quot;27-estimando-vari\u00e2ncias-em-tempo-real&quot;,&quot;isDelete&quot;:false},{&quot;label&quot;:&quot;2.8 Onde o Wiener falha (e quando n\u00e3o usar)&quot;,&quot;value&quot;:&quot;28-onde-o-wiener-falha-e-quando-n\u00e3o-usar&quot;,&quot;isDelete&quot;:false},{&quot;label&quot;:&quot;2.9 EMA vs. Wiener (compara\u00e7\u00e3o direta)&quot;,&quot;value&quot;:&quot;29-ema-vs-wiener-compara\u00e7\u00e3o-direta&quot;,&quot;isDelete&quot;:false},{&quot;label&quot;:&quot;3 \u2014 Filtro de Kalman: estima\u00e7\u00e3o de estados, incerteza e predi\u00e7\u00e3o&quot;,&quot;value&quot;:&quot;3-filtro-de-kalman-estima\u00e7\u00e3o-de-estados-incerteza-e-predi\u00e7\u00e3o&quot;,&quot;isDelete&quot;:false},{&quot;label&quot;:&quot;3.1 Intui\u00e7\u00e3o antes da matem\u00e1tica&quot;,&quot;value&quot;:&quot;31-intui\u00e7\u00e3o-antes-da-matem\u00e1tica&quot;,&quot;isDelete&quot;:false},{&quot;label&quot;:&quot;3.2 Modelo de estado (caso 1D)&quot;,&quot;value&quot;:&quot;32-modelo-de-estado-caso-1d&quot;,&quot;isDelete&quot;:false},{&quot;label&quot;:&quot;3.3 Ciclo do Kalman: previs\u00e3o e corre\u00e7\u00e3o&quot;,&quot;value&quot;:&quot;33-ciclo-do-kalman-previs\u00e3o-e-corre\u00e7\u00e3o&quot;,&quot;isDelete&quot;:false},{&quot;label&quot;:&quot;1\ufe0f\u20e3 Previs\u00e3o&quot;,&quot;value&quot;:&quot;1\ufe0f\u20e3-previs\u00e3o&quot;,&quot;isDelete&quot;:false},{&quot;label&quot;:&quot;2\ufe0f\u20e3 Corre\u00e7\u00e3o&quot;,&quot;value&quot;:&quot;2\ufe0f\u20e3-corre\u00e7\u00e3o&quot;,&quot;isDelete&quot;:false},{&quot;label&quot;:&quot;3.4 Compara\u00e7\u00e3o conceitual com EMA e Wiener&quot;,&quot;value&quot;:&quot;34-compara\u00e7\u00e3o-conceitual-com-ema-e-wiener&quot;,&quot;isDelete&quot;:false},{&quot;label&quot;:&quot;3.5 Implementa\u00e7\u00e3o Kalman 1D em C (vi\u00e1vel em MCU)&quot;,&quot;value&quot;:&quot;35-implementa\u00e7\u00e3o-kalman-1d-em-c-vi\u00e1vel-em-mcu&quot;,&quot;isDelete&quot;:false},{&quot;label&quot;:&quot;3.6 Escolhendo Q e R (engenharia pr\u00e1tica)&quot;,&quot;value&quot;:&quot;36-escolhendo-q-e-r-engenharia-pr\u00e1tica&quot;,&quot;isDelete&quot;:false},{&quot;label&quot;:&quot;3.7 Quando Kalman \u00e9 a escolha certa&quot;,&quot;value&quot;:&quot;37-quando-kalman-\u00e9-a-escolha-certa&quot;,&quot;isDelete&quot;:false},{&quot;label&quot;:&quot;3.8 Onde Kalman n\u00e3o compensa&quot;,&quot;value&quot;:&quot;38-onde-kalman-n\u00e3o-compensa&quot;,&quot;isDelete&quot;:false},{&quot;label&quot;:&quot; 4 \u2014 Compara\u00e7\u00e3o pr\u00e1tica entre EMA, Wiener e Kalman, diretrizes de escolha, encerramento e SEO&quot;,&quot;value&quot;:&quot;4-compara\u00e7\u00e3o-pr\u00e1tica-entre-ema-wiener-e-kalman-diretrizes-de-escolha-encerramento-e-seo&quot;,&quot;isDelete&quot;:false},{&quot;label&quot;:&quot;4.1 O que realmente diferencia esses filtros (al\u00e9m da matem\u00e1tica)&quot;,&quot;value&quot;:&quot;41-o-que-realmente-diferencia-esses-filtros-al\u00e9m-da-matem\u00e1tica&quot;,&quot;isDelete&quot;:false},{&quot;label&quot;:&quot;4.2 Compara\u00e7\u00e3o direta: quando cada filtro vence&quot;,&quot;value&quot;:&quot;42-compara\u00e7\u00e3o-direta-quando-cada-filtro-vence&quot;,&quot;isDelete&quot;:false},{&quot;label&quot;:&quot;4.3 Diretrizes pr\u00e1ticas de escolha (engenharia de campo)&quot;,&quot;value&quot;:&quot;43-diretrizes-pr\u00e1ticas-de-escolha-engenharia-de-campo&quot;,&quot;isDelete&quot;:false},{&quot;label&quot;:&quot;4.4 Conex\u00e3o direta com os artigos anteriores da s\u00e9rie&quot;,&quot;value&quot;:&quot;44-conex\u00e3o-direta-com-os-artigos-anteriores-da-s\u00e9rie&quot;,&quot;isDelete&quot;:false},{&quot;label&quot;:&quot;4.5 Um erro comum: tratar filtros como \u201cp\u00f3s-processamento\u201d&quot;,&quot;value&quot;:&quot;45-um-erro-comum-tratar-filtros-como-p\u00f3s-processamento&quot;,&quot;isDelete&quot;:false},{&quot;label&quot;:&quot;4.6 Encerramento conceitual&quot;,&quot;value&quot;:&quot;46-encerramento-conceitual&quot;,&quot;isDelete&quot;:false}]" data-smooth="true" data-top-offset=""><div class="eb-toc__list-wrap"><ul class="eb-toc__list"><li><a href="#eb-table-content-0">Média Móvel Exponencial, Wiener e Kalman aplicados ao RP2040</a><li><a href="#eb-table-content-1">1. Introdução — Por que filtros são decisores disfarçados</a><li><a href="#11-o-papel-dos-filtros-na-arquitetura-embarcada-moderna">1.1 O papel dos filtros na arquitetura embarcada moderna</a><li><a href="#12-ordem-crescente-de-complexidade-e-poder">1.2 Ordem crescente de complexidade (e poder)</a><li><a href="#eb-table-content-4">1.3 Começando pelo mais importante: Média Móvel Exponencial (EMA)</a><li><a href="#14-conceito-intuitivo-da-ema">1.4 Conceito intuitivo da EMA</a><li><a href="#15-ema-como-filtro-passa-baixa-de-primeira-ordem">1.5 EMA como filtro passa-baixa de primeira ordem</a><li><a href="#eb-table-content-7">1.6 Implementação incremental em C (base do artigo)</a><li><a href="#eb-table-content-8">1.7 Escolhendo o valor de α (engenharia, não tentativa)</a><li><a href="#eb-table-content-9">1.8 Onde a EMA falha (e por quê)</a><li><a href="#eb-table-content-10">2 — Filtro de Wiener: minimização do erro médio e separação sinal-ruído</a><ul class="eb-toc__list"><li><a href="#eb-table-content-11">2.1 A ideia central do Wiener (sem fórmulas intimidadoras)</a><li><a href="#eb-table-content-12">2.2 Modelo estatístico assumido</a><li><a href="#eb-table-content-13">2.3 Wiener no domínio da frequência (visão conceitual)</a><li><a href="#eb-table-content-14">2.4 Por que isso é poderoso em sistemas embarcados?</a><li><a href="#25-wiener-simplificado-para-mcu-forma-escalar">2.5 Wiener simplificado para MCU (forma escalar)</a><li><a href="#eb-table-content-16">2.6 Implementação incremental em C (forma prática)</a><li><a href="#eb-table-content-17">2.7 Estimando variâncias em tempo real</a><li><a href="#eb-table-content-18">2.8 Onde o Wiener falha (e quando não usar)</a><li><a href="#eb-table-content-19">2.9 EMA vs. Wiener (comparação direta)</a></li></ul><li><a href="#eb-table-content-20">3 — Filtro de Kalman: estimação de estados, incerteza e predição</a><ul class="eb-toc__list"><li><a href="#eb-table-content-21">3.1 Intuição antes da matemática</a><li><a href="#32-modelo-de-estado-caso-1d">3.2 Modelo de estado (caso 1D)</a><li><a href="#eb-table-content-23">3.3 Ciclo do Kalman: previsão e correção</a><ul class="eb-toc__list"><li><a href="#eb-table-content-24">1&#x20e3; Previsão</a><li><a href="#eb-table-content-25">2&#x20e3; Correção</a></li></ul><li><a href="#eb-table-content-26">3.4 Comparação conceitual com EMA e Wiener</a><li><a href="#eb-table-content-27">3.5 Implementação Kalman 1D em C (viável em MCU)</a><li><a href="#eb-table-content-28">3.6 Escolhendo Q e R (engenharia prática)</a><li><a href="#eb-table-content-29">3.7 Quando Kalman é a escolha certa</a><li><a href="#eb-table-content-30">3.8 Onde Kalman não compensa</a></li></ul><li><a href="#eb-table-content-31"> 4 — Comparação prática entre EMA, Wiener e Kalman, diretrizes de escolha, encerramento e SEO</a><ul class="eb-toc__list"><li><a href="#eb-table-content-32">4.1 O que realmente diferencia esses filtros (além da matemática)</a><li><a href="#eb-table-content-33">4.2 Comparação direta: quando cada filtro vence</a><li><a href="#eb-table-content-34">4.3 Diretrizes práticas de escolha (engenharia de campo)</a><li><a href="#eb-table-content-35">4.4 Conexão direta com os artigos anteriores da série</a><li><a href="#eb-table-content-36">4.5 Um erro comum: tratar filtros como “pós-processamento”</a><li><a href="#46-encerramento-conceitual">4.6 Encerramento conceitual</a></li></ul></ul></div></div></div></div></div>


<h3 class="wp-block-heading">Média Móvel Exponencial, Wiener e Kalman aplicados ao RP2040</h3>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">1. Introdução — Por que filtros são decisores disfarçados</h2>



<p class="wp-block-paragraph">Ao longo desta série, trabalhamos com <strong>DSP embarcado aplicado</strong>, partindo do sinal bruto até decisões confiáveis em microcontroladores de recursos limitados. Em todos os artigos anteriores, um ponto ficou claro:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><strong>Nenhum sinal real é limpo.<br>Nenhuma decisão deve confiar em uma única amostra.</strong></p>
</blockquote>



<p class="wp-block-paragraph">É exatamente nesse ponto que entram os <strong>filtros estatísticos</strong>.</p>



<figure class="wp-block-image size-full"><img fetchpriority="high" decoding="async" width="1024" height="768" src="https://mcu.tec.br/wp-content/uploads/2026/01/image.jpeg" alt="" class="wp-image-1138" srcset="https://mcu.tec.br/wp-content/uploads/2026/01/image.jpeg 1024w, https://mcu.tec.br/wp-content/uploads/2026/01/image-300x225.jpeg 300w, https://mcu.tec.br/wp-content/uploads/2026/01/image-768x576.jpeg 768w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">Embora muitas vezes apresentados apenas como técnicas matemáticas, filtros como <strong>média móvel exponencial</strong>, <strong>Wiener</strong> e <strong>Kalman</strong> são, na prática, <strong>mecanismos de tomada de decisão temporal</strong>, capazes de separar:</p>



<ul class="wp-block-list">
<li>sinal de ruído,</li>



<li>tendência de flutuação,</li>



<li>informação de incerteza.</li>
</ul>



<p class="wp-block-paragraph">Neste artigo, vamos tratar esses filtros <strong>não como abstrações matemáticas</strong>, mas como <strong>ferramentas práticas de engenharia</strong>, aplicáveis diretamente a microcontroladores como o RP2040.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">1.1 O papel dos filtros na arquitetura embarcada moderna</h2>



<p class="wp-block-paragraph">Em um sistema embarcado real, filtros aparecem em três papéis fundamentais:</p>



<ol class="wp-block-list">
<li><strong>Suavização</strong>
<ul class="wp-block-list">
<li>Reduz ruído de sensores</li>



<li>Evita decisões instáveis</li>
</ul>
</li>



<li><strong>Estimativa</strong>
<ul class="wp-block-list">
<li>Inferir estados não diretamente observáveis</li>



<li>Combinar modelo e medição</li>
</ul>
</li>



<li><strong>Tomada de decisão</strong>
<ul class="wp-block-list">
<li>Controlar histerese</li>



<li>Definir quando um evento realmente ocorreu</li>
</ul>
</li>
</ol>



<p class="wp-block-paragraph">Nos artigos anteriores, usamos:</p>



<ul class="wp-block-list">
<li>EMA implicitamente (suavização de score)</li>



<li>Estatística para decisão adaptativa</li>
</ul>



<p class="wp-block-paragraph">Agora, vamos <strong>formalizar isso conscientemente</strong>.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">1.2 Ordem crescente de complexidade (e poder)</h2>



<p class="wp-block-paragraph">Os filtros que abordaremos seguem uma progressão natural:</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Filtro</th><th>Ideia central</th><th>Custo</th><th>Uso típico</th></tr></thead><tbody><tr><td>Média móvel exponencial</td><td>Suavizar passado</td><td>Muito baixo</td><td>Ruído rápido</td></tr><tr><td>Wiener</td><td>Minimizar erro médio</td><td>Médio</td><td>SNR conhecido</td></tr><tr><td>Kalman</td><td>Estimar estado oculto</td><td>Maior</td><td>Sistemas dinâmicos</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">Importante:<br><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f449.png" alt="👉" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>mais complexo não significa melhor</strong>.<br>Cada filtro resolve um tipo específico de problema.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">1.3 Começando pelo mais importante: Média Móvel Exponencial (EMA)</h2>



<p class="wp-block-paragraph">A <strong>média móvel exponencial</strong> é, sem exagero, <strong>o filtro mais importante do firmware moderno</strong>.</p>



<p class="wp-block-paragraph">Ela aparece em:</p>



<ul class="wp-block-list">
<li>sensores IoT,</li>



<li>controle de ganhos,</li>



<li>suavização de scores,</li>



<li>debouncing avançado,</li>



<li>aprendizado estatístico.</li>
</ul>



<p class="wp-block-paragraph">E, ainda assim, é frequentemente subestimada.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">1.4 Conceito intuitivo da EMA</h2>



<p class="wp-block-paragraph">A EMA responde a uma pergunta simples:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><em>Quanto do passado eu quero lembrar?</em></p>
</blockquote>



<p class="wp-block-paragraph">Ela combina:</p>



<ul class="wp-block-list">
<li>valor anterior filtrado</li>



<li>nova amostra</li>
</ul>



<p class="wp-block-paragraph">Equação discreta:</p>



<p class="wp-block-paragraph">\[<br>y[n] = y[n-1] + \alpha \big(x[n] &#8211; y[n-1]\big)<br>\]



<p class="wp-block-paragraph">Onde:</p>



<ul class="wp-block-list">
<li>\(x[n]\): amostra atual</li>



<li>\(y[n]\): saída filtrada</li>



<li>\(\alpha \in (0,1)\): taxa de resposta</li>
</ul>



<p class="wp-block-paragraph">Interpretação física:</p>



<ul class="wp-block-list">
<li>\(\alpha\) pequeno → memória longa</li>



<li>\(\alpha\) grande → resposta rápida</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">1.5 EMA como filtro passa-baixa de primeira ordem</h2>



<p class="wp-block-paragraph">Embora simples, a EMA é um <strong>filtro IIR passa-baixa</strong>, com:</p>



<ul class="wp-block-list">
<li>1 polo real</li>



<li>estabilidade garantida</li>



<li>custo O(1) por amostra</li>
</ul>



<p class="wp-block-paragraph">Ela elimina:</p>



<ul class="wp-block-list">
<li>ruído de alta frequência</li>



<li>flutuações instantâneas</li>
</ul>



<p class="wp-block-paragraph">Sem introduzir:</p>



<ul class="wp-block-list">
<li>buffers grandes</li>



<li>atrasos excessivos</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">1.6 Implementação incremental em C (base do artigo)</h2>



<p class="wp-block-paragraph">Começamos com a versão mais simples possível:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff"><svg xmlns="http://www.w3.org/2000/svg" width="54" height="14" viewBox="0 0 54 14"><g fill="none" fill-rule="evenodd" transform="translate(1 1)"><circle cx="6" cy="6" r="6" fill="#FF5F56" stroke="#E0443E" stroke-width=".5"></circle><circle cx="26" cy="6" r="6" fill="#FFBD2E" stroke="#DEA123" stroke-width=".5"></circle><circle cx="46" cy="6" r="6" fill="#27C93F" stroke="#1AAB29" stroke-width=".5"></circle></g></svg></span><span role="button" tabindex="0" style="color:#d8dee9ff;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>typedef struct {
    float y;
} ema_filter_t;

static inline void ema_init(ema_filter_t *f, float y0)
{
    f->y = y0;
}

static inline float ema_step(ema_filter_t *f, float x, float alpha)
{
    f->y += alpha * (x - f->y);
    return f->y;
}
</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki nord" style="background-color: #2e3440ff" tabindex="0"><code><span class="line"><span style="color: #D8DEE9">typedef</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">struct</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">{</span></span>
<span class="line"><span style="color: #D8DEE9FF">    </span><span style="color: #D8DEE9">float</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">y</span><span style="color: #81A1C1">;</span></span>
<span class="line"><span style="color: #ECEFF4">}</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">ema_filter_t</span><span style="color: #81A1C1">;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D8DEE9">static</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">inline</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">void</span><span style="color: #D8DEE9FF"> </span><span style="color: #88C0D0">ema_init</span><span style="color: #D8DEE9FF">(</span><span style="color: #D8DEE9">ema_filter_t</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">*</span><span style="color: #D8DEE9">f</span><span style="color: #ECEFF4">,</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">float</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">y0</span><span style="color: #D8DEE9FF">)</span></span>
<span class="line"><span style="color: #ECEFF4">{</span></span>
<span class="line"><span style="color: #D8DEE9FF">    </span><span style="color: #D8DEE9">f</span><span style="color: #81A1C1">-&gt;</span><span style="color: #D8DEE9">y</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">=</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">y0</span><span style="color: #81A1C1">;</span></span>
<span class="line"><span style="color: #ECEFF4">}</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D8DEE9">static</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">inline</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">float</span><span style="color: #D8DEE9FF"> </span><span style="color: #88C0D0">ema_step</span><span style="color: #D8DEE9FF">(</span><span style="color: #D8DEE9">ema_filter_t</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">*</span><span style="color: #D8DEE9">f</span><span style="color: #ECEFF4">,</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">float</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">x</span><span style="color: #ECEFF4">,</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">float</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">alpha</span><span style="color: #D8DEE9FF">)</span></span>
<span class="line"><span style="color: #ECEFF4">{</span></span>
<span class="line"><span style="color: #D8DEE9FF">    </span><span style="color: #D8DEE9">f</span><span style="color: #81A1C1">-&gt;</span><span style="color: #D8DEE9">y</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">+=</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">alpha</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">*</span><span style="color: #D8DEE9FF"> (</span><span style="color: #D8DEE9">x</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">-</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">f</span><span style="color: #81A1C1">-&gt;</span><span style="color: #D8DEE9">y</span><span style="color: #D8DEE9FF">)</span><span style="color: #81A1C1">;</span></span>
<span class="line"><span style="color: #D8DEE9FF">    </span><span style="color: #81A1C1">return</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">f</span><span style="color: #81A1C1">-&gt;</span><span style="color: #D8DEE9">y</span><span style="color: #81A1C1">;</span></span>
<span class="line"><span style="color: #ECEFF4">}</span></span>
<span class="line"></span></code></pre></div>



<p class="wp-block-paragraph">Características:</p>



<ul class="wp-block-list">
<li>Nenhuma alocação dinâmica</li>



<li>Uma multiplicação por amostra</li>



<li>Ideal para ISR ou loop rápido</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">1.7 Escolhendo o valor de α (engenharia, não tentativa)</h2>



<p class="wp-block-paragraph">Uma regra prática muito usada em firmware:</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>α</th><th>Comportamento</th></tr></thead><tbody><tr><td>0.01</td><td>Muito suave, lento</td></tr><tr><td>0.05</td><td>Estável, robusto</td></tr><tr><td>0.1</td><td>Boa resposta</td></tr><tr><td>0.3+</td><td>Pouca filtragem</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">Outra forma de pensar:</p>



<ul class="wp-block-list">
<li>EMA ≈ média móvel de \(N \approx \frac{2}{\alpha}\) amostras</li>
</ul>



<p class="wp-block-paragraph">Exemplo:</p>



<ul class="wp-block-list">
<li>α = 0.05 → ~40 amostras efetivas</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">1.8 Onde a EMA falha (e por quê)</h2>



<p class="wp-block-paragraph">Apesar de poderosa, a EMA tem limitações claras:</p>



<ul class="wp-block-list">
<li>Não modela dinâmica do sistema</li>



<li>Não separa ruído de sinal estatisticamente</li>



<li>Não incorpora incerteza</li>



<li>Não prevê o futuro</li>
</ul>



<p class="wp-block-paragraph">Essas limitações nos levam naturalmente aos próximos filtros.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/><p>The post <a href="https://mcu.tec.br/algoritimos/dsp/filtros-estatisticos-em-sistemas-embarcados-ema-wiener-e-kalman-aplicados-ao-rp2040/">Filtros Estatísticos em Sistemas Embarcados: EMA, Wiener e Kalman Aplicados ao RP2040</a> first appeared on <a href="https://mcu.tec.br">MCU & FPGA</a>.</p>]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1137</post-id>	</item>
	</channel>
</rss>
