新闻  |   论坛  |   博客  |   在线研讨会
程控滤波器的设计
文星 | 2011-08-12 16:39:01    阅读:10312   发布文章

程控滤波器
摘 要:本系统有四个模块组成:程控放大器,程控滤波器,四阶椭圆低通滤波器,以及简易幅频特性测试仪。程控放大器放大电压增益为60dB,增益10db步进可调,电压增益误差不大于5%。通频带100HZ~200KHz,放大器输出无明显失真。由MAX262为核心的程控滤波器可设置为低通,高通滤波器,-3dB截至频率在1KHz~20KHz范围内可调,调节的频率步进为1KHz。四阶椭圆型低通有源滤波器,带内起伏≤1dB,-3dB通带为50kHz,要求放大器与低通滤波器在200kHz处的总电压增益小于5dB,-3dB通带误差不大于5%。简易幅频特性测试仪输出扫频信号频率设置范围100Hz~200KHz,频率100Hz步进可调。系统以AT89S52为控制核心,经测试验证,系统运行稳定,操作方便。
关键词:程控放大器,程控滤波器,椭圆滤波器,幅频特性测量
1 系统方案
1.1 设计需求
1.1.1 基本要求
(1)放大器输入正弦信号电压振幅为10mV,电压增益为40dB,增益10dB步进可调,通频带为100Hz~40kHz,放大器输出电压无明显失真。
(2)滤波器可设置为低通滤波器,其-3dB截止频率fc在1kHz~20kHz范围内可调,调节的频率步进为1kHz,2fc处放大器与滤波器的总电压增益不大于30dB, RL=1kW。
(3)滤波器可设置为高通滤波器,其-3dB截止频率fc在1kHz~20kHz范围内可调,调节的频率步进为1kHz,0.5fc处放大器与滤波器的总电压增益不大于30dB, RL=1kW。
(4)电压增益与截止频率的误差均不大于10%。
(5)有设置参数显示功能。
1.1.2 发挥部分
(1)放大器电压增益为60dB,输入信号电压振幅为10mV;增益10dB步进可调,电压增益误差不大于5%。
(2)制作一个四阶椭圆型低通滤波器,带内起伏≤1dB,-3dB通带为50kHz,要求放大器与低通滤波器在200kHz处的总电压增益小于5dB,-3dB通带误差不大于5%。
(3)制作一个简易幅频特性测试仪,其扫频输出信号的频率变化范围是100Hz~200kHz,频率步进10kHz。
1.2 整体方案
基本部分使用集成开关电容滤波芯片MAX262完成四阶低通、高通滤波器设计。程控放大器电路由小信号放大电路与DA衰减电路构成,可实现小信号放大增益60dB,增益10dB步进可调。幅频特性测试仪由DDS AD9854产生扫频信号,有效值采集电路测量被测网络的输出信号的有效值。四阶椭圆低滤波器通过滤波器设计软件根据题目设置参数生成,电路是由六运放组成的有源低通滤波器。可以实现题目发挥部分要求。由于单片AT89S52 I/O口有限,系统采用多机控制,3 I/O口4×4键盘输入,中文液晶显示,友好人机交互界面,系统控制简单,工作稳定。
 
1.3 系统框图
1.3.1 程控滤波系统框图
单片机主机为系统控制核心控制键盘输入放大倍数与截至频率,并由液晶显示出来。从机1控制程控放大电路的放大倍数,从机2设置时钟源频率,为滤波电路提供稳定的工作时钟,以设置滤波器的截止频率,框图如下:
图1系统框图
1.3.2 简易幅频特性系统框图
简易幅频特性测试仪系统框图如图2所示,其中扫频信号源由DDS实现,可输出频率范围的正弦信号,通过有效值检测芯片AD637和AD转换器测出有效值,由单片机转换为峰值,从而实现峰值检测,通过液晶显示模块显示幅频特性曲线。
图2幅频特性测试仪构成
2 理论分析与计算
2.1 程控放大电路
程控放大有小信号放大与DA衰减两部分组成。由于DA衰减电路对输入信号的衰减倍数由DA的位数D决定,即可实现输出Vo为输入Vi的D/衰减,要题目要求最大增益60dB,因此选择10位DA可实现对输入信号的0~1023倍步进可调。结合10位的DA对信号的衰减,小信号放大电路设置为固定1000放大。
2.2 程控滤波器设计
程控滤波器以MAX262为核心,MAX262集是双二阶开关电容有源滤波器。由微处理器精确控制滤波函数可构成低通、高通、带通等滤波器。,且不需外部器件。他含有两个二阶滤波器,在程序控制下设置中心频率f0,品质因数Q和滤波器工作方式。输入时钟与6位f0编程输入代码一起决定滤波器的中心或截至频率,不影响其他滤波参数。Q值也可独立编程,具体公式见(2)。滤波器的截至频率通过改变MAX262的时钟信号fclk的频率与MAX262的频率控制字N调节, fclk与N的函数关系见公式(1)。N设为固定值,即通过改变时钟信号fclk 就可以控制滤波器的截至频率。因此采用AD9854集成DDS芯片为其产生稳定的可控的时钟信号源。通过改变AD9854的输出信号可以设定滤波器的截至频率。
                (1)
                             Q=64/(128-N)                   (2)
f0,Q值的设定如表1所示。
 
 
表1 f0,Q值的设定参考表
参考频率源fclk范围
截止频率f0:fclk/(26+N)×1.57(模式1,3,4)范围
Q=1
40Hz~4.0MHz
1.0Hz~140KHz
Q=8
40Hz~2.5MHz
1.0Hz~60KHz
Q=64
40Hz~1.5MHz
1.0Hz~37KHz
Q=90
40Hz~0.9MHz
1.4Hz~32KHz
2.3 椭圆滤波电路
   
通过Filter Solutions 2006滤波器设计软件,输入题目要求设置参数,软件经过理论计算以及仿真测试,然后生成四阶椭圆有源低滤波电路。软件同时生成该滤波器的传输函数如下:
(3)
2.4 简易幅频特性系统
幅频特性测试仪,由扫频信号源与有效值采集电路组成。扫频信号源需要频率与幅度可调的正弦信号源,选用DDS AD9854可产生稳定性很高的频率幅度可调的信号,输入信号由AD637采集有效值,有效值电压芯片测试范围0~7VRMS,AD选用12位AD 芯片A7898-10可提高测量范围与精度。
3 单元电路设计与程序设计
单元电路主要由四个模块组成,分别是程控放大电路,程控滤波电路,四阶椭圆低通滤波器电路,幅频特性测试仪电路组成。
3.1 程控放大模块
3.1.1 小信号放大部分的设计
小信号放大电路采用仪用放大电路。主要由单双转换电路与仪用放大电路组成。如图3。输入信号经过单双转换电路后由单端信号转换为双端信号送往仪用放大电路进行放大处理。这样可以大大的降低共模信号对系统的影响,防止放大电路产生自激现象。为了提高电路的共模抑制比在仪用放大电路的第一级输出取出共模信号,通过运放反馈到电源地,使得运放的电源地跟随共模信号浮动,这样前置放大器的共模抑制比提高了CMRR1倍。

具体电路图见附录2:图1.
图3 DA衰减电路示意图
3.1.2 DA衰减部分的设计
使用了D/A元件作为衰减控制,我们选用的10位D/A转换器AD7533,其内部有CMOS电流开关和R-2R电阻网络组成,如图4。只需要改变AD7533的输入数D即可实现输出Vo为输入Vi的D/1024.前级经过固定放大1000倍的小信号放大电路作为AD7533参考电压,只需通过单片机往AD7533送控制数字D即可实现信号的D/1024衰减。通过DA衰减电路可实现对输入信号最大的阿1024倍放大,1倍~1023倍步进可调的程控放大电路,指标可以实现题目增益40dB,10dB步进的要求。                                         
具体电路图见附录2:图2. 
图4 DA衰减电路示意图                                    
3.2 程控滤波模块的设计
程控滤波模块设计采用MAX262集成开关电容滤波器。程控滤波器以MAX262为核心,由两个二阶的滤波器级联组成一个四阶的程控滤波器。由于可通过改变fclk来设定滤波器的中心频率,所以fclk由DDS AD9854产生的正弦信号再经过74HC14整形的TTL电平的0~4MHz以内的可变时钟信号。前后两阶滤波器的输出信号与输入信号,滤波器的输出信号类型都可通过继电器。程控滤波核心电路图如图5:
图5 MAX262程控滤波示意图
3.3 四阶椭圆滤波模块的设计
四阶椭圆低通滤波器的设计由EDA滤波器设计及仿真工具完成电路设计,通过参数设置由该软件生成四阶椭圆滤波器。生成的四阶椭圆低通滤波器由六个运算放大器与无缘RC网络组成。滤波器的参数设定根据题目要求,该四阶椭圆滤波器由两个二阶的椭圆滤波器构成。具体电路图见附录2:图4。
3.4 幅频特性测试仪模块的设计
幅频特性测试仪,由DDS AD9854与有效值检测电路组成。以DDS AD9854作为扫频信号源,扫频信号经过被测网络后的输出信号送入有效值采集电路。有效值采集电路由有效值转换芯片AD637与10位的AD 转换芯片AD7898构成,输出信号经过AD637后转换为与被测信号的有效值有关的直流电压信号,通过AD7898采集的正弦信号的电压信息回送微控制器,由微控制器换算出电压信号的峰值并将被测网络在测量频段内对应点的电压值由液晶显示。具体电路图见附录2:图5.
 
3.5 软件设计
软件部分主要由程控滤波程序设计与幅频特性测试程序设计构成。
系统测试
4.1 测试使用的仪器
Agilent 33250A 函数信号发生器 Tektronix TDS 2012 数字示波器SS7200 通用智能计数器
4.2 指标测试与测试结果
4.2.1 程控放大器的测试
测试方法: 放大倍数有键盘设定好增益,输入端加正弦信号,在输出端用示波器测量输出电压幅度,计算电压增益,观察与设定的增益关系.调节增益然后重复测量.改变输入信号幅值与频率重复测量。并记录数据。
表2:程控放大器增益测试 测试条件:输入信号20mv-pp
      增益
频率(KHz
10dB
20dB
30dB
40dB
50dB
0.1
0.040V
0.224v
0.632v
2.06V
6.24V
1
0.038V
0.218V
0.652V
2.06V
6.48V
40
0.050V
0.218V
0.624V
1.96V
6.12
4.2.2 程控滤波的测试
测试工具:函数信号发生器,数字示波器.
测试方法:设定截止频率,输入端加上该频率的信号,用数字示波器观察其输出电压,调节输入信号频率,使电压增益为-3db,记录此时信号频率即为截止频率,对截止频率进行步进,然后重复测量.将信号频率设定为2fc(低通)或0.5fc(高通),测量总电压增益,与30dB相比较。
 
 
 
 
表3:低通滤波器测试   测试条件:输入信号20mv-pp程控放大40dB
截至频率(KHz)
输入信号幅度(V)
输出信号幅度(V)
2fc处信号幅度(V)
1
2.08
1.40
0.600
10
2.08
1.40
0.560
20
2.08
1.36
0.540
-3dB误差(%)
 
3.9
 
表4:高通滤波器测试    测试条件:输入信号20mv-pp程控放大40dB
截至频率(KHz)
输入信号幅度(V)
输出信号幅度(V)
0.5fc处信号幅度(V)
1
2.08
1.52
0.360
10
2.08
1.42
0.288
20
2.08
1.44
0.260
4.2.3 椭圆滤波器测试
测试方法: 测试信号由函数信号发生器产生,改变信号频率测量椭圆滤波器-3dB通带。改变输入信号频率由示波器观察带内电压变化并计算带内起伏。将信号调到200KHz观察其总电压增益。测量数据绘出幅频特性曲线图如图8。
图8椭圆滤波器幅频特性曲线      
4.2.4 扫频信号源测试
扫频信号由DDS输出5V-pp,频率10Hz~200Khz,10KHz步进。具体表格见附录表五。
结束语
本系统有AT89S52单片与MAX262,基本实现了题目基本部分与发挥部分的要求,部分指标甚至超过了题目的要求。电路控制简便另外采用节省IO资源的三口键盘作为输入,中文液晶显示,友好的人机交互界面。
参考文献
[1]    康华光.电子技术基础[[M].第五版.武汉:高等教育出版社,2005.
[2]    陈尚松,雷加,郭庆.电子测量与仪器[M].北京:电子工业出版社,2005.
[3]    吴金戌,沈庆阳,郭庭吉.8051单片机实践与应用[M].北京:清华大学出版社.2002.
 
 
 
  附录1 部分参考程序
#include<reg52.h>
#include"ST7920GraphDisplayAdvanced.h"
#include"ThreeIOKeyboard.h"
#include"MultiMCUCommut.h"
void main(void)
{
    uchar temp = 0;
    Parallel_Init_LCD();        //液晶初始化
Parallel_Clear_Ram();
Parallel_ClearDisplay();
        InitUART();                 //串口初始化
    UART_ok = 1;                //UART一开始空闲,这句很重要!!!!!
EA = 1;
    UpdataDisplayTop();
while(1)
{
           Delay10ms(35);
        GetKeyValue();          //键盘扫描
           Delay10ms(35);
            switch(KeyRslt)
            {
                ……  ……
                case 12:
                    if(DisplayTop)
                    {
                        if(DisplayTopSelect==1)
                        {
                              Parallel_ClearDisplay();
                            UpdataDisplayAmplify();
                            DisplayTop = 0;
                        }
                        else if(DisplayTopSelect==2)
                        {
                              Parallel_ClearDisplay();
                            UpdataDisplayFilter();
                            DisplayTop = 0;
                        }
                    }   
                    else if(DisplayAmplify)
                    {
                        //确认放大倍数,发送控制字 ,命令从机控制DA动作
                                TB8 = 1;
                                do
                                {
                                         PutUARTchar(SLAVER_1_ADDRESS);                  //呼叫从机1
                                         temp = GetUARTchar();                                    //接收从机1应答
                                }
                                while( temp!=SLAVER_1_ADDRESS );
                                TB8 = 0;
                                        PutUARTchar(SetAmp);
                                        while(GetUARTchar()!=SetAmp)            //握手信号
                                                 PutUARTchar(SetAmp);
                        PutUARTchar(AmplifyFactor/0x100);
                        PutUARTchar(AmplifyFactor%0x100);
                                TB8 = 1;                                                                      //通讯完毕
                        Parallel_DisplayStrings_WithAddress(0x98,"确认触发!!");
                    }
                    else if(DisplayFilter==2)
                    {
                        ReverseTypeFlag = 0;
                        //确认低通频率设置,主机控制AD9832发送时钟,同时从机控制继电器动作
                                TB8 = 1;
                                do
                                {
                                         PutUARTchar(SLAVER_1_ADDRESS);                  //呼叫从机1
                                         temp = GetUARTchar();                                    //接收从机1应答
                                }
                                while( temp!=SLAVER_1_ADDRESS );
                                TB8 = 0;                                                                      //握手完毕,开始通讯 
                                        PutUARTchar(SetLowPass);
                                        while(GetUARTchar()!=SetLowPass)        //握手信号
                                                 PutUARTchar(SetLowPass);
                                TB8 = 1;                                                                      //与从机1通讯完毕
                                do
                                {
                                         PutUARTchar(SLAVER_2_ADDRESS);                  //呼叫从机2
                                         temp = GetUARTchar();                                    //接收从机2应答
                                }
                                while( temp!=SLAVER_2_ADDRESS );
                                TB8 = 0;                                                //握手完毕,开始通讯
                                        PutUARTchar(SetFre);
                                        while(GetUARTchar()!=SetFre)            //握手信号
                                                 PutUARTchar(SetFre);
                        switch(LowPassF0)
                        {
                           ……
                        }
                                TB8 = 1;                              //与从机2通讯完毕
                        Parallel_DisplayStrings_WithAddress(0x98,"确认触发!!");
                    }
                    else if(DisplayFilter==3)
                    {
                        ReverseTypeFlag = 0;
                        //确认高通频率设置,主机控制AD9832发送时钟,同时从机控制继电器动作
                                TB8 = 1;
                                do
                                {
                                         PutUARTchar(SLAVER_1_ADDRESS);                  //呼叫从机1
                                         temp = GetUARTchar();                                    //接收从机1应答
                                }
                                while( temp!=SLAVER_1_ADDRESS );
                                TB8 = 0;                                                                      //握手完毕,开始通讯 
                                        PutUARTchar(SetHighPass);
                                        while(GetUARTchar()!=SetHighPass)       //握手信号
                                                 PutUARTchar(SetHighPass);
                                TB8 = 1;                                                                      //与从机1通讯完毕
                                do
                                {
                                         PutUARTchar(SLAVER_2_ADDRESS);                  //呼叫从机2
                                         temp = GetUARTchar();                                     //接收从机2应答
                                }
                                while( temp!=SLAVER_2_ADDRESS );
                                TB8 = 0;                                                                      //握手完毕,开始通讯
                                        PutUARTchar(SetFre);
                                        while(GetUARTchar()!=SetFre)            //握手信号
                                                 PutUARTchar(SetFre);
                        switch(HighPassF0)
                        {
                    }                  
                    else if(DisplayFilter==5)
                    {
                        ReverseTypeFlag = 0;
                        Parallel_DisplayStrings_WithAddress(0x98,"确认触发!!");
                        //确认设置,发送控制字 ,命令从机控制DA动作                   
                    }
                    SetValueTemp = 0;
                    SetValue = SetValueTemp;
                break;
              }
}
};
附录2 电路原理图
图1 小信号放大电路
图2  DA衰减电路
图4 四阶椭圆滤波电路
图5 有效值采集核心电路
附录3 电路数据测试表
表一:程控放大器增益测试       测试条件:输入信号20mv-pp
      增益
f(KHz)      
10dB
20dB
30dB
40dB
50dB
0.1
0.040V
0.224v
0.632v
2.06V
6.24V
1
0.038V
0.218V
0.652V
2.06V
6.48V
10
0.042V
0.212V
0.636V
2.04V
6.36V
20
0.045V
0.214V
0.634V
2.02V
6.28
40
0.050V
0.218V
0.624V
1.96V
6.12
表二:低通滤波器测试      测试条件:输入信号20mv-pp程控放大40dB
截至频率(KHz)
输出信号幅度(V)
2fc信号幅度(V)
2fc增益(dB)
1
1.40
0.540
28.6
2
1.40
0.540
28.6
5
1.42
0.580
29.2
10
1.40
0.560
28.9
12
1.38
0.540
28.6
15
1.32
0.540
28.6
19
1.32
0.540
28.6
20
1.36
0.540
28.6
表三:高通滤波器测试    测试条件:输入信号20mv-pp程控放大40dB
截至频率(KHz)
输出信号幅度(V)
0.5fc信号幅度(V)
0.5fc增益(dB)
1
1.50
0.350
24.9
2
1.50
0.350
24.9
5
1.48
0.340
24.6
10
1.44
0.340
24.6
12
1.44
0.340
24.6
15
1.44
0.340
24.6
19
1.40
0.320
24.1
20
1.44
0.260
22.3
表四:椭圆滤波器测试

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
电子发骚  2015-03-11 19:47:55 

同求,请发图,谢谢!1032819160@qq.com

天马行空HL  2013-08-24 11:04:20 

说好的图呢?能发一份给我吗?593840308@qq.com

sqqdb  2013-08-11 16:20:20 

为什么没图呢;

再见534  2013-07-05 07:20:43 

你好,能不能把电路图发给我,我在做大作业,时间紧。谢谢2511905771@qq.com

喜欢电子,这里是我心灵的栖息地!不要忘了那些还未做过的梦,那些不论成功与否仍敢坚持下去的信念,喧嚣里仍存留一丝寂静……
最近文章
程控滤波器的设计
2011-08-12 16:39:01
protel元件库
2011-07-28 00:40:42
推荐文章
最近访客
频率(KHz)
输入信号幅度(V)
输出信号幅度(V)
起伏(V)
带内起伏(dB)
1
1
1.01
0.010
0.09
5
1
1.02
0.020
0.16
10
1
1.05
0.050
0.42
15
1
1.08
0.080
0.67
20
1
1.05
0.050
0.42
25
1
1.02
0.020
0.16
30
1
0.930
0.070
-0.59
35
1
0.888
0.112
-0.92
40
1
0.912
0.088
-0.73
45
1
0.920
0.080
-0.67
48
1
0.888
0.112
-0.92
48.5
1