No mundo em rápida evolução dos dispositivos Internet das Coisas (IoT), o processamento eficiente de sinal é vital. Os filtros de resposta de impulso infinito de baixa ordem (IIR) são escolhas populares devido à sua simplicidade e eficiência computacional. Este artigo fornece um guia abrangente para projetar esses filtros, abrangendo teoria, implementação prática e melhores práticas para melhorar o desempenho do dispositivo IoT.

Compreender os Filtros de Baixo Pedido IIR

Os filtros IIR são filtros digitais caracterizados por feedback, o que significa que a sua saída depende tanto das entradas actuais como passadas, bem como das saídas passadas. O termo "baixa ordem" refere- se tipicamente a filtros com um ou dois pólos e um ou dois zeros — filtros de primeira ordem ou de segunda ordem. Estes filtros são especialmente adequados para dispositivos IoT com restrições de recursos porque requerem menos operações multi- acumuladas e menos memória do que equivalentes de alta ordem ou filtros Finite Impulse Response (FIR) de desempenho semelhante.

Um filtro IIR de primeira ordem tem uma função de transferência do formulário:

Um filtro IIR de segunda ordem (muitas vezes chamado de biquad) tem a forma:

Os coeficientes b0, b1, b2 (para segunda ordem) determinam os zeros (feedforward), enquanto a1, a2] determinam os pólos (feedback). A estabilidade requer que todos os pólos estejam dentro do círculo unitário no plano z, o que é uma consideração crítica em implementações de ponto fixo.

Os filtros de IIR de baixa ordem se sobressaem em tarefas como redução de ruído, suavização de sinal e seleção de frequência. Por exemplo, um filtro passa-baixo pode remover ruído de alta frequência de um sensor de temperatura, enquanto um filtro passa-alto pode remover a deriva de DC em um sinal acelerômetro. Sua natureza recursiva permite o rolagem afiado com muito poucos coeficientes, tornando-os ideais para dispositivos movidos a bateria, onde cada microampola de corrente e cada byte de memória conta.

Princípios de desenho

Selecionar o Tipo de Filtro

A escolha do protótipo de filtro (analógico ou digital) define os trade-offs entre flatness da faixa de passagem, atenuação da faixa de parada e linearidade da fase. Os tipos comuns incluem:

  • Butterworth: Fornece uma faixa de passagem máxima plana sem ondulação. Oferece um roll-off monotônico, mas requer uma ordem mais alta para alcançar uma atenuação dada da banda de parada em comparação com os filtros Chebyshev. Frequentemente preferido para o condicionamento de sinal do sensor onde a precisão de amplitude é crítica.
  • [[FLT: 0]]Chebyshev: Permite ondular na faixa de passagem (Tipo I) ou na faixa de parada (Tipo II). Em troca de uma pequena quantidade de ondulação da faixa de passo, os filtros Chebyshev fornecem uma faixa de transição mais nítida para uma dada ordem de filtro. Útil quando o requisito de atenuação da banda de parada domina.
  • Bessel: Otimizado para resposta linear de fase (atraso constante do grupo), preservando a forma do sinal no domínio do tempo. No entanto, os filtros de Bessel têm um roll-off mais lento. Ideal para aplicações onde o som e o toque devem ser minimizados, como em loops de controle ou crossovers de áudio.
  • Elíptica (Cauer): Fornece o mais íngreme roll-off para uma determinada ordem, permitindo ondulação tanto na faixa de passagem como na faixa de parada. Raramente usado para projetos de baixa ordem de IoT, pois o desempenho melhorado muitas vezes requer precisão de ponto flutuante e quantização cuidadosa do coeficiente.

Para a maioria das aplicações de IoT de baixa ordem, os filtros de Butterworth e Chebyshev de primeira ordem fornecem um bom equilíbrio. O design do filtro é frequentemente executado no domínio s de tempo contínuo usando tabelas de protótipos normalizadas, depois transformadas para o domínio z de tempo discreto através da transformada bilinear (com pré-warping) ou método de invariância por impulso.

Parâmetros de Desenho de Chaves

  • Frequência de corte (fc): A frequência na qual a resposta de magnitude do filtro cai 3 dB (para passa-baixa/passa-alta). Deve ser escolhida em relação à frequência de amostragem (fs). Para os filtros digitais, a frequência normalizada varia de 0 a 0,5 vezes a taxa de amostragem (limite de Nyquist).
  • Filter Order (N): Para filtros de baixa ordem, N é 1 ou 2. Ordens mais altas podem ser realizadas por várias seções biquad em cascata, mas o artigo foca em projetos de uma única seção.
  • Atenuação da banda de passos Ripple e Stopband: Crítica para os filtros Chebyshev e Elíptica. Uma ondulação comum da faixa de passos de 0,5 dB é aceitável em muitas aplicações de sensores de IoT. A atenuação da banda de paradas de 20-40 dB é frequentemente suficiente para remover fontes típicas de ruído.
  • Margens de estabilidade: Com aritmética de ponto fixo, o arredondamento de coeficiente pode empurrar pólos fora do círculo unitário. Escolha representações de coeficiente com bits suficientes (por exemplo, Q15 ou Q31) e verifique as localizações de pólo após a quantização.

Trade-offs em design de baixa ordem

A principal limitação dos filtros de baixa ordem IIR é a banda de transição gradual (deslizante) e maior em comparação com filtros de alta ordem. Um filtro de primeira ordem passa baixo atenua apenas 20 dB por década, enquanto um filtro de segunda ordem fornece 40 dB por década. Para muitas aplicações de IoT — como filtrar o zumbido de rede de 50/60 Hz de um sinal de sensor de baixa frequência — um filtro de segunda ordem atende frequentemente aos requisitos sem sobrecarregar a CPU. Se forem necessários pontos de corte mais nítidos, os designers devem aceitar uma ordem de filtro mais elevada (e o seu custo computacional) ou a transição para filtros FIR, que pode fornecer uma fase linear em detrimento da memória.

O processo de projeto

Desenhar um filtro IIR de baixa ordem para um dispositivo IoT envolve várias etapas sistemáticas. Nós ilustramos um fluxo de trabalho típico usando um filtro passa-baixa de segunda ordem como exemplo.

Passo 1: Defina especificações

Determinar a frequência da borda da banda de passagem (fp), frequência da borda da banda de parada (fs), ondulação da banda de passagem (Ap) e atenuação da banda de parada (As). Por exemplo, podemos querer um filtro passa-baixa com um corte 3-dB a 10 Hz, uma borda da banda de parada a 30 Hz com pelo menos 20 dB de atenuação e uma taxa de amostragem de 100 Hz. As frequências digitais normalizadas são: ωp = 2π * (10/100) = 0,628 rad/amostra, ωs = 2π * (30/100) = 1,885 rad/amostra.

Passo 2: Selecione Protótipo e Ordem

Escolha um tipo de filtro e encontre a ordem necessária usando gráficos ou fórmulas. Para um filtro Butterworth, a ordem N satisfaz:

Em nosso exemplo, com As=20 dB, Ap=3 dB (na verdade a referência é frequentemente o ponto 3-dB), uma Butterworth de primeira ordem produz apenas cerca de 7 dB a 30 Hz (20 dB/deslocamento de década, razão 3:1 dá ~11 dB atenuação, não é suficiente). Butterworth de segunda ordem dá 40 dB/década, então em 30 Hz (3× corte) temos cerca de 40*log10(3) . 19 dB - quase encontrando 20 dB. Assim, um filtro de segunda ordem é apropriado.

Etapa 3: Determinar os polos e os zeros de protótipos analógicos

Para uma passagem baixa de Butterworth de segunda ordem, os pólos analógicos normalizados estão em s = -0,7071 ± j0,7071 (para um ponto de corte de 1 rad/s). Use pré-warping se desenhar através de transformada bilinear: frequência crítica pré-warped ωa = (2/T) * tan(ωd*T/2), onde T = 1/fs. Para fs = 100 Hz, T = 0,01 s. Pré-warped ωa = (2/0,01)*tan(1,885*0,01/2) □ 200*tan(0,009425) □ 200* 0,009425 □ 1.885 rad/s (na verdade para frequências baixas, o pré-warping é negligenciável). Muitos designers ignoram o pré-warping para filtros de passagem baixa abaixo de 0,2 fs, mas é uma boa prática.

Passo 4: Transformação Bilinear para Digital

Aplicar a substituição s = (2/T) * (z- 1)/ (z+1). Para uma função de transferência analógica de segunda ordem, a manipulação algébrica produz os coeficientes digitais. Alternativamente, use fórmulas bem conhecidas ou tabelas de desenho. Para um biquad passa-baixo Butterworth com frequência de corte ωc (digital), os coeficientes podem ser calculados da seguinte forma (forma padrão):









]
]

]

Para o nosso corte de 10 Hz em 100 Hz de amostragem, theta = 0,628, sin(theta) = 0,588. Os números de ligação produzem coeficientes que garantem estabilidade. Ferramentas como Assistente de Filtro de Dispositivos Analógicos] ou TI FilterPro automatizam esta etapa.

Etapa 5: Quantizar os coeficientes para ponto fixo

Os microcontroladores de IoT não possuem muitas vezes unidades de ponto flutuante de hardware. Converta coeficientes de ponto flutuante para representação de ponto fixo, como o formato Q15 (16 bits assinados com 15 bits fracionários). A quantificação introduz erro de arredondamento; verifique se os coeficientes quantizados não causam instabilidade. Para um filtro de segunda ordem, mesmo a quantização de 16 bits é geralmente suficiente se as localizações do pólo não estiverem extremamente próximas ao círculo unitário (ou seja, fatores Q baixos).

Etapa 6: Implementar a Equação de Diferenças

A estrutura transposta em forma direta I ou II é comum para a IIR de baixa ordem. A forma direta II transposta é recomendada para redução do ruído de quantização e prevenção de transbordamento. A equação de diferença para um filtro de segunda ordem é:

Todas as variáveis devem ser dimensionadas adequadamente para evitar o excesso. Para o ponto fixo, use a aritmética de saturação ou acumuladores de dupla largura, se disponíveis (por exemplo, acumulador de 32 bits para coeficientes de 16 bits e dados). Muitos fornecedores de microcontroladores fornecem bibliotecas DSP otimizadas, como o ARM CMSIS-DSP, que incluem funções de filtro biquad com coeficientes adequadamente escalados.

Implementação em dispositivos de IoT

A implementação de filtros IIR de baixa ordem em microcontroladores requer atenção ao layout da memória, interrupção da latência e consumo de energia. Aqui estão considerações práticas:

Estratégias Aritméticas de Ponto Fixa

A maioria dos microcontroladores ARM Cortex- M0/ M4 suportam operações de 32 bits. Uma abordagem comum é armazenar coeficientes e dados como inteiros assinados de 16 bits no formato Q15 (intervalo - 1. 0 a 0.9999). As aplicações produzem resultados de 32 bits; para um biquad, use um acumulador duplo e depois mude e sature para 16 bits. Isto evita a sobrecarga de ponto flutuante e reduz o consumo de energia. As bibliotecas como [[ FLT: 0]]CMSIS- DSP Funções biquad[[ FLT: 1]] lidam com estes detalhes de forma eficiente.

Minimizar memória e tamanho do código

Um único biquad requer armazenar 5 coeficientes e 2 variáveis de estado (para transpostas de forma direta II). Isso é cerca de 7-10 palavras de 16 bits — negligenciáveis em qualquer UCM moderna. O loop do filtro pode ser escrito em três ou quatro linhas de código C. Para vários canais (por exemplo, áudio estéreo ou multi-sensor), compartilhe os mesmos coeficientes, mas mantenha estados por canal. Esta abordagem escalas linearmente sem soprar memória.

Operação em Tempo Real

Os dispositivos de IoT frequentemente recolhem sensores a baixas taxas (1 Hz a 1 kHz). Um único filtro biquad consome apenas alguns microssegundos de tempo de CPU por amostra, deixando tempo suficiente para outras tarefas. Para fluxos de dados contínuos, implemente o filtro numa rotina de serviço de interrupção (ISR) ou através de um buffer circular DMA dedicado. Os coeficientes de filtro podem ser alterados em tempo real se o dispositivo precisar de se adaptar a diferentes condições de ruído, mas assegure- se que o interruptor é feito enquanto o estado de filtro é reiniciado para evitar transientes.

Otimização de Energia

O consumo de energia é uma preocupação primária para os nós de IoT alimentados por bateria. O filtro contribui muito pouco para o total de energia — muitas vezes menos de 0,1% da energia da UCM quando roda em baixa velocidade de clock. No entanto, o filtro pode permitir que a UCM use menores taxas de amostragem ou durma mais tempo entre as amostras. Ao remover o ruído antes da detecção do limiar, o dispositivo pode disparar menos frequentemente. Além disso, considere usar um filtro analógico anti- aliasing antes de amostrar para relaxar os requisitos de filtro digital, reduzindo a carga computacional.

Vantagens e Trade-offs de filtros IIR de baixa ordem

Vantagens

  • Baixa complexidade computacional: Normalmente 5 multiplicam-se por amostra para segunda ordem, em comparação com dezenas ou centenas para um filtro FIR.
  • Processamento rápido : Adequado para aplicações em tempo real com elevadas taxas de amostragem (por exemplo, áudio até 48 kHz).
  • Requisitos mínimos de memória: Apenas algumas variáveis e coeficientes de estado, sem necessidade de buffer de toque.
  • Fácil de implementação: Disponível em bibliotecas DSP MCU; o código é curto e fácil de verificar.
  • Boa atenuação da banda de paragem por ordem: Uma IIR de segunda ordem pode superar uma FIR de alta ordem quando a fase linear não é necessária.

Comércio e Limitações

  • Resposta de fase não linear: Os filtros de IIR têm atraso de grupo dependente da frequência, o que pode distorcer as formas do sinal.Isso é problemático em aplicações como ECG ou radar onde a correlação de fase importa.
  • Instabilidade potencial: A quantificação do coeficiente, especialmente em ponto fixo, pode empurrar pólos fora do círculo unitário. Deve verificar a estabilidade no tempo de projeto.
  • Niscarização limitada : Para uma dada ordem, a banda de transição é mais larga do que uma FIR equivalente com muitas torneiras.Se você precisar de um corte muito afiado, você deve cascatar múltiplos biquads, aumentando a complexidade.
  • Nenhuma fase linear : Os filtros FIR podem atingir exatamente a fase linear, tornando-os preferível para certas comunicações de dados e processamento de imagens.
  • Sensibilidade ao arredondamento do coeficiente: Os filtros elípticos e os desenhos de alto Q sofrem grandes alterações de coeficiente devido à quantização, exigindo maior precisão (por exemplo, ponto fixo de 32 bits ou ponto flutuante).

Apesar desses trade-offs, a maioria das tarefas de filtragem de sensores IoT (temperatura, umidade, pressão, vibração, áudio simples) pode ser adequadamente ser servido por filtros IIR de baixa ordem bem projetados.

Aplicações Práticas e Exemplos

Redução de ruído nos sensores de temperatura

Um resultado do sensor de temperatura frequentemente contém ruído de alta frequência da quantização ADC e interferência eletromagnética. Um filtro de IIR de primeira ordem com um ponto de corte de 0,1 Hz (se a amostragem for de 1 Hz) suaviza a leitura sem adicionar uma defasagem significativa. Os coeficientes para tal filtro são extremamente simples - muitas vezes um alfa constante único onde y[n] = alfa * x[n] + (1-alfa) * y[n- 1]. Esta é a média exponencial clássica, que é uma IIR de primeira ordem. Pode ser implementado numa linha de código C sem multiplicar se o alfa for uma potência de dois (por exemplo, 1/4 = 0,25). Isto torna- o favorito para microcontroladores de 8 bits de baixa extremidade.

Remoção de Offset DC em Accelerômetros

Os acelerômetros usados no monitoramento de atividade ou vibração geralmente têm um componente DC devido à gravidade. Um filtro passa-alta com um ponto de corte muito baixo (por exemplo, 0,5 Hz) pode remover este deslocamento ao passar sinais dinâmicos. Um biquad passa-alta Butterworth de segunda ordem fornece um roll-off afiado para se estabelecer rapidamente após a inicialização. Os coeficientes são derivados do protótipo passa-baixa substituindo s por 1/s no domínio analógico.

Pré- Processamento de Áudio para Comandos de Voz

Os dispositivos IoT com microfones usam filtros de baixa ordem IIR como parte de uma cadeia de detecção de atividade de voz (VAD). Um filtro passa- faixa (caça de passa- baixa e passa- alta) centrado na faixa de frequência de voz (300–3400 Hz) reduz o ruído de fundo antes de se alimentar com um detector de wake-word. Os filtros devem ser cuidadosamente desenhados para evitar distorções de fase que possam afetar a consistência das funcionalidades de áudio. Aqui, os filtros de Bessel são por vezes preferidos em relação a Butterworth.

Rejeição de Ruído da Linha de Energia

Para sensores que medim sinais de baixo nível perto da rede AC, é essencial um filtro de entalhe (banda- ponto) a 50/ 60 Hz. Um filtro de entalhe IIR de segunda ordem pode ser desenhado com uma entalhe muito estreita. A função de transferência coloca zeros no círculo unitário na frequência da entalhe. O filtro requer coeficientes de alta precisão, porque os zeros estão exatamente no círculo unitário; a implementação de pontos fixos deve lidar com isso cuidadosamente, muitas vezes exigindo aritmética de 32 bits.

Conclusão

A concepção de filtros de baixa ordem para dispositivos IOT é um equilíbrio prático entre a qualidade do sinal e a conservação dos recursos. Ao selecionar o tipo de filtro apropriado e quantificar coeficientes cuidadosamente, os desenvolvedores podem obter uma remoção de ruído e seleção de frequência eficazes com a mínima CPU e a pegada de memória. A simplicidade dos filtros de primeira e segunda ordem os torna ideais para sensores alimentados por bateria, monitores de saúde wearable e dispositivos domésticos inteligentes. Verifique sempre a estabilidade após a quantificação de coeficientes e considere o impacto da fase não linear na sua aplicação específica. Com o fluxo de trabalho de design certo — desde a especificação até a implementação de ponto fixo — os filtros IIR de baixa ordem continuam a ser uma ferramenta poderosa na caixa de ferramentas de processamento de sinais IoT.