Projeto de filtros ativos: Passa baixo primeira ordem


Dando sequência ao nosso estudo de filtros ativos, vamos analisar o filtro passa baixo de primeira ordem. Para aqueles que vieram direto para esta página vale a pena ler os artigos 1 e 2. Passamos agora ao projeto de filtros ativos de primeira ordem.No projeto de um filtro passa baixo de primeira ordem podemos configurar dois aspectos. A frequência de corte fc e o ganho G. Adicionalmente, podemos ter filtros sendo alimentados por fontes simétricas ou por fonte única. No caso de uso da fonte simétrica o circuito é o seguinte:

Filtro PB  ordem 1 não inversor

As fórmulas utilizadas para o cálculo dos componentes são:

R_1= 1 / (2 * pi * f_c * C_1)

R_2= R_3*(G -1)

Ex: Cálculo dos valores para fc= 5Khz , G= 2, R3= 10000 ohms

  • 1- Fazemos C = 10 nF
  • 2- Calculamos R1 = 3183 ohms . Valor adotado: 3000 ohms
  • 3- Calculamos R2 = 10.000

Simulando com estes valores no Qucs-S temos o seguinte resultado:

Filtro PB  não inversor

Para facilitar o cálculo de componentes de um filtro passa baixo de primeira ordem não inversor podemos utilizar o script Python apresentado a seguir. Para a chamada do script digite:

python ordem1ni.py –fc 5000 –ganho 2 –r3 10000 –c1 .00000001

.Calculo valores filtro  primeira ordem, não inversor.

#!/usr/bin/env python
# -*- coding: utf-8 -*-
#
#  ordem1ni.py
#  
#  Copyright 2017 tavares <tavares@tavares-Inspiron-5558>
#  
#  This program is free software; you can redistribute it and/or modify
#  it under the terms of the GNU General Public License as published by
#  the Free Software Foundation; either version 2 of the License, or
#  (at your option) any later version.
#  
#  
#   
import numpy as np 
import sys
import argparse 
import math 



def main(args):
    """
    Entrada:  Fc (frequencia de corte, Hz),   G= (Ganho),  R3 (ohms)
       C1 (Farads)
    """
    
    
    parser = argparse.ArgumentParser(description='Identifica parametros')
    parser.add_argument('--fc')
    parser.add_argument('--ganho')
    parser.add_argument('--r3') 
    parser.add_argument('--c1') 
    
    args = parser.parse_args()
    fc =  float(args.fc)
    ganho = float(args.ganho)
    r3= float(args.r3)
    c1= float(args.c1)
    
    fc= 5000.0
    ganho= 2.0
    r3= 10000.0
    c1= 0.00000001
    
    r1= 1.0 / (2 * np.pi * fc * c1)
    
    r2= r3 * (ganho - 1.0)
    
    print ("R1= ", r1)
    print ("R2= ", r2)
    print ("R3= ", r3)
    print ("C1= ", c1)
    
    
    
    
    return 0

if __name__ == '__main__':
    import sys
    sys.exit(main(sys.argv))

Caso desejarmos alimentar o operacional com uma fonte única, ao invés da fonte simétrica, temos que fornecer a polarização correta do operacional. Uma forma de se fazer isto é a seguinte:

Filtro PB não inversor fonte única

É preciso compreendermos a diferença entre a alimentação simétrica e a alimentação dupla. Quando alimentamos com fonte simétrica a saída fica em zero DC e varia de acordo com o sinal alternado resultante da filtragem da entrada, geralmente da ordem de dezenas de milivolts. Esta variação se dá entre picos negativos e picos positivos em torno do zero.

Quando alimentamos com fonte única, algumas dificuldades aparecem. Precisamos de polarizar o operacional para que a saída na ausência de sinal de entrada fique com um valor igual a metade da tensão de alimentação. Isto permitirá que a excursão do sinal alternado de saída não seja clipado nos limiares próximos a zero e a Vcc.

Esta polarização é conseguida adicionando-se um nível CC na entrada não inversora. Isto é realizado pelo divisor resistivo formado por R2 e R3. Observe que um capacitor de 1 uF foi inserido em série com a fonte de sinal. O motivo é para que a polarização CC não altere as condições da fonte de sinal. O valor é suficemente grande para passar todas as frequências baixas de interesse. Quanto ao valor de R2 3 R3, quanto maior, menos influenciam o sinal, seja pela carga da fonte, seja através da constante RC do capacitor de entrada. Porém valores muito grandes introduzem ruido de erros de offset no operacional. O valor 10 Mohms é um compromisso adequado.

Outra diferença é o ganho. Como o ganho também multiplica o valor DC, e a referencia agora é 1/2 de Vcc, ao invés do terra do circuito com fonte simétrica, é mais adequado operar com ganho 0dB (1 x).

Os cálculos de R1 e C1, que são os elementos que definem a frequência de corte, continuam exatamente os mesmos.

Projeto de filtro passa baixo de primeira ordem (inversor)

Vamos analisar em primeiro lugar a situação do inversor alimentado com fontes simétricas, conforme mostrado na figura a seguir:

Filtro PB inversor fonte simétrica

As equações que nos permitem calcular os valores dos componentes, dados a frequência de corte e o ganho, são:

R_2= 1 / (2 * pi * f_c * C_1)

R_1= - R_2 / G

Realizando estes cálculos para uma frequência de corte de 5Khz e ganho de 0dB (1 x), temos os seguintes valores:

C1= 10 nF
R1= 3K
R2= 3K

Simulando com estes valores chegamos ao seguinte resultado:

Filtro PB  5Khz fonte simétrica

O script python apresentado anteriormente pode ser facilmente modificado para calcular esta nova configuração.

Com as mesmas considerações do filtro não inversor em relação a alimentação por fonte única, ficamos com a seguinte topologia para a alimentação uma única fonte:

Filtro PB  5Khz fonte única

Como resposta é exatamente mesma, a escolha pela configuração não inversora ou inversora vai ser função do tipo de aplicação. Quando estamos inserindo um filtro numa série de amplificadores, é interessante que a função de transferência global seja inversora, pois isto irá diminuir os riscos de realimentação positiva e o seu amplificador pode se transformar num belo oscilador. Este risco é tanto maior quanto maior for o ganho global.

Em próximo artigo, vamos conhecer as fórmulas que nos permitem calcular os valores dos componentes de filtros passa baixos de segunda ordem.

Deixe um comentário