D程控滤波器的设计.docx

上传人:b****7 文档编号:9729309 上传时间:2023-02-06 格式:DOCX 页数:26 大小:237.11KB
下载 相关 举报
D程控滤波器的设计.docx_第1页
第1页 / 共26页
D程控滤波器的设计.docx_第2页
第2页 / 共26页
D程控滤波器的设计.docx_第3页
第3页 / 共26页
D程控滤波器的设计.docx_第4页
第4页 / 共26页
D程控滤波器的设计.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

D程控滤波器的设计.docx

《D程控滤波器的设计.docx》由会员分享,可在线阅读,更多相关《D程控滤波器的设计.docx(26页珍藏版)》请在冰豆网上搜索。

D程控滤波器的设计.docx

D程控滤波器的设计

程控滤波器的设计(D题)

摘要:

随着电子科学技术的迅速发展,滤波器系统也要求有新的设计思想和观点,使系统能在可行的条件下得以实现,而且其功能也达到更高的指标。

本系统以51单片机为控制核心,由信号放大模块、有源滤波模块以及测试信号发生等四个模块组成。

在前级放大器中采用NE5532放大芯片构成的两极放大电路;有源滤波采用模拟开关CD4051/CD4052选择匹配的电阻和电容网络;信号发生采用数字频率合成(DDS)AD9850芯片产生;单片机键盘显示处理模块除可以对AD9850进行实时控制外,还可以对模拟开关CD4051/CD4052的控制。

 关键词:

AD9850AT89S52CD4051/CD4052LCD显示屏直接数字频率合成(DDS)

1总体设计方案

1.1系统总体设计思路

根据题目的要求,我们认真取舍,充分利用了模拟和数字的优点,发挥其优势,采用单片机控制模拟开关的导通与否以实现电容及电阻参数的匹配,从而实现改变放大器增益的方法,并且以增益10dB步进可调,大大提高了系统的精度;放大器的输出电压要求无明显失真。

本系统的总体框图如图1所示。

图1总体框图

1.2方案论证与比较

(1)测量放大部分方案

方案一:

直接采用高精度OP放大器接成的悬置电桥差动放大器。

如图2,此方案的特点是电路简单,实现起来对结构工艺的要求不高,但是其输入阻抗低、共模抑制比、失调电压和失调电流等参数受到放大器本身性能限制不易进一步提高,且无法抑制放大器本身的温漂。

图2悬置电桥差动放大器图3结型场效应管输入型测量放大电路

方案二:

在方案一的基础上,在输入级加设结型场效应管。

如图3,该方案和方案一相比提高了输入阻抗和降低噪声,但存在的共模抑制比、失调电压和失调电流等参数受限的问题未能有效解决,且分立元件将导致调试工作复杂,可靠性下降。

方案三:

选用高输入阻抗低噪声集成运放NE5534。

如图4,选用NE5534,接成两极同相运算放大电路,可大大提高了差模输入阻抗和共模抑制比。

NE5534加上

的电压,放大倍数的计算公式为

本设计选择方案三。

图4集成运放NE5534接成两极同相运算放大电路

(2)信号滤波方法

方案一数字滤波法。

数字滤波是信号滤波所常的方法,将模拟信号转变为数字信号,进行数字滤波后再恢复原信号。

这种方法理论上可以设计任意的滤波特性,可达到很高的精度,但要涉及较高的技术水平,实现难度较大。

方案二:

采用单级模拟低通滤波。

由运放、电阻、电容组成单级低通滤波器。

此方法原理简单,有现成的公式可套,但单级滤波的截止频率较难控制,频率选择性差,滤波效果不好好差,输出波形有较大失真。

方案三:

采用多级巴特沃兹滤波器模拟低通滤波。

巴特沃兹滤波器具有平坦的通带,把多个低通滤波器级联起来,滤波效果显著提高,输出波形失真小。

因此选择方案三。

(3)显示器的选择

方案一:

采用8位段数码管,将单片机得到的数据通过数码管显示出来。

该方案简单易行,但所需的元件较多,且不容易进行操作,可读性差,一旦设定后,很难再加入其他的功能。

方案二:

采用液晶显示系统,将得到的数据通过液晶系统显示。

该方案所需液晶器件可由厂家提供,并且可用软件进行调制,对后续的功能兼容性高,只需将软件作修改即可,可操作性强,也易于读数。

但成本相对一来说较高。

方案三:

将结果通串口接入电脑,在电脑中编制程序,通过软件将数据转化成图形数字界面。

该方案在数据的处理上比方案二直观,可增加较多的扩展功能。

但不便于携带,可移动性不如方案二。

综上所述,我们采用了第二个方案,即采用液晶显示系统。

2硬件电路设计

2.1电源电路设计

本方案的直流稳压电源采用通常的桥式全波整流、单电容滤波、三端固定输出的集成稳压器件。

输出电路由+15V稳压供给,从而大大提高了电压调整率和负载调整率等指标。

所有的集成稳压器件根据功耗均安装有充分裕量的散热片。

如图5所示。

图5电源电路

2.2单片机最小系统电路

由MCS—51系列的单片机和一些键盘及LCD显示构成了单片机最小系统,以完成单片机控制、显示和人机接口功能。

如图6所示。

图6单片机最小系统电路

2.3巴特沃兹滤波电路

用通过单片机控制模拟开关CD4051/4052的电阻匹配,设置滤波的截止频率,题目要求能够实现高通和低通的转换,即低通滤波器(高通滤波器)的-3dB截止频率在1kHz—20kHz范围内可调,调节的频率步进为1kHz,2

处放大器与滤波器的总电压增益不大于30dB。

低通滤波器的模块电路如图7所示,高通滤波器的模块电路如图8所示。

 

图7低通滤波器

图8高通滤波器

3.主要电路的参数计算

3.1程控放大部分

本设计以NE5532为中心,对输入信号进行前端放大。

当输入信号≤50mV,输出功率可以达到6W以上,带宽可以达到40KHz至几百KHz。

电源部分为整个系统提供稳定的15V电压。

整个设计简单,元器件均为市场上容易购的产品。

放大倍数要求可调,第一级放大20倍,第二级放大100倍。

(1)低通滤波器参数的计算。

参数如表1所示。

表1低通滤波器参数

K

10

5

3.3

2.5

10

8.33

7.14

6.25

10

9

R1(k)

11.26

5.63

3.72

2.185

11.26

9.38

8.04

7.04

11.26

10.13

R2(k)

22.50

11.25

7.43

5.63

22.50

18.74

16.07

14.06

22.5

20.25

C1=0.01uF

C2=0.002uF

C3=1111pF

K

8.18

7.5

10

9.28

8.67

8.12

10

9.45

8.95

8.5

R1(k)

9.21

8.45

11.26

10.45

9.76

9.14

11.26

10.64

10.08

9.57

R2(k)

17.41

16.88

22.5

20.88

19.51

18.27

22.5

21.26

20.14

19.13

C3=1111pF

C4=769.2pF

C5=588.2pF

(2)高通滤波器的参数计算。

参数如表2所示。

表2高通滤波器的参数

K

10

5

3.3

2.5

10

8.33

7.14

6.25

10

9

R1(k)

18.21

9.11

6.01

4.55

18.21

15.17

13.00

11.38

18.21

16.39

R2(k)

13.91

6.955

4.5903

3.48

13.91

11.59

9.93

8.69

13.91

12.52

C1=0.01uF

C2=0.002uF

C3=1111pF

K

8.18

7.5

10

9.28

8.67

8.12

10

9.45

8.89

8.5

R1(k)

14.89

13.65

18.21

16.90

15.79

14.79

18.21

17.21

16.30

15.48

R2(k)

11.38

10.43

13.91

12.91

12.06

11.29

13.91

13.4

12.45

11.82

C3=1111pF

C4=769.2pF

C5=588.2pF

3.2电源参数的计算

直流稳压电源,设计要求当单相220V交流供电时,交流电压变化范围为+10%~

-15%仍正常工作,计算滤波电容值时,应考虑整流二极管,LM317,LM337,7805,7905的最小压降。

(1)输出+15V、-15V时,输出电流至少达到500mA。

在0.01S内电压变化为:

其中,U=18.75V(变压器输出交流电压),0.7V为二极管的压降,

为稳压集成器件的最小压降。

设计取C=2200

,足以满足要求。

(2)输出+5V、-5V,设计输出电流可达1A。

同理可得:

其中,

=9.7V(变压器输出交流电压),1.4V为二极管压降。

设计取

=4400

,实际所需要的电流为几百毫安,足以满足要求。

(3)同理可证,在电源电压比正常值小15%或大10%时,电路仍满足三端稳压器的最小压降,也没有超出三端稳压器的耐压范围。

4.软件程序部分

4.1主程序流程图如图9所示

图9主程序流程图

4.2各个子程序流程图如图10所示

高通子流图增益设置子流图低通子流图增益控制子流图

5.系统测试

5.1 测试仪器

表3

序号

仪器名称

型号

数量

1

20MHz普通示波器

DF4328

1台

2

低频信号发生器

EE1641B

1台

3

低频毫伏表

DF2220

1台

4

四位半数字万用表

UT70B

1台

5

直流稳压电源

WYK-303B

2台

6

单片机开发系统

ME500

1台

5.2测试结果及分析

程控放大测试结果如表4

表4

输入

输出0dB

输出10dB

输出20dB

输出30dB

输出40dB

输出50dB

输出60dB

峰峰值10mV

11.1mV

32.8mV

102.0mV

324.5mV

1.08V

3.21V

10.86V

峰峰值20mV

22.5mV

65.6mV

209.4mV

653.8mV

2.18V

6.50V

22.32V

有效值6mV

7.2mV

18.4mV

61.3mV

184.6mV

604.2mV

1.85V

6.12V

有效值10mV

10.9mV

32.0mV

99.5mV

314.3mV

995.8mV

3.18V

9.97V

参考文献

(1)MSC-51/96单片及原理及应用 孙涵芳 徐爱卿 北京航天航空大学出版社

(2)跟我学用单片机肖洪兵胡辉郭速学北京航天航空大学出版社

(3)MCS-51系列单片机实用接口技术李华北京航天航空大学出版社

(4)第五届全国大学生电子设计竞赛获奖作品选编.北京:

北京理工大学出版社,2001

附录1:

整机原理图

低通电路原理图:

高通电路原理图:

 

附录2:

主要的原程序

/*P1.0,P1.1,P1.2控制放大器部分的放大倍数。

*/

/*P0口控制低通滤波器的增益调节*/

/*P2口控制高通滤波器的增益调节*/

#include

#include

#include

#include

#defineucharunsignedchar

#defineuintunsignedint

#defineulongunsignedlongint

 

sbitk1=P1^4;//低通档位控制按纽

sbitk2=P1^5;//高通档位控制按钮

sbitk3=P1^6;//高通、低通切换按钮

sbitk4=P3^3;//放大倍数控制按钮

sbittimea=P3^0;//增益控制A口

sbittimeb=P3^1;//增益控制B口

sbittimec=P3^2;//增益控制C口

sbitHL_GO=P3^4;

sbitLCD_RS=P3^5;//

sbitLCD_RW=P3^6;

sbitLCD_EN=P3^7;

 

ucharflage=0,tong=0,sd_freq=0,sd_volt=0,

low_pass=0,high_pass=0,receive,i,

HL_ZH=0;

ucharcodetable[]={"ZY:

DB"};

ucharcodetable1[]={"high:

K"};

ucharcodetable2[]={"low:

K"};

 

/*********延时m毫秒子程序*********/

voiddelay(uintm)

{

uchari;

while(m--)

{for(i=0;i<100;i++)

{_nop_();

_nop_();

}

}

}

/**********************************************************

*5us延时子程序

**********************************************************/

voiddelayNOP()

{

_nop_();

_nop_();

_nop_();

_nop_();

_nop_();

}

 

/**********************************************************

*检查LCD忙状态

*lcd_busy为1时,忙,等待。

*lcd-busy为0时,闲,可写指令与数据

**********************************************************/

bitlcd_busy()

{

bitresult;

LCD_RS=0;

LCD_RW=1;

LCD_EN=1;

delayNOP();

result=(bit)(P1&0x08);

LCD_EN=0;

return(result);

}

/*********************************************************

*写指令或数据

*start=0,写入命令;start=1,写入数据

*********************************************************/

voidlcd_write(bitstart,ucharin_data)

{

ucharHdata,Ldata,funct;

while(lcd_busy());

Hdata=(in_data&0xf0)>>4;//取高四位

Ldata=in_data&0x0f;//取低四位

if(start==0)

LCD_RS=0;//写入命令

else

LCD_RS=1;//写入数据

LCD_RW=0;

LCD_EN=0;

delayNOP();

funct=P0;

funct=funct&0xf0;

P0=Hdata|funct;//发送高四位

LCD_EN=1;

delayNOP();

LCD_EN=0;

delayNOP();

funct=P0;

funct=funct&0xf0;

P0=Ldata|funct;//发送低四位

LCD_EN=1;

delayNOP();

LCD_EN=0;

delayNOP();

}

/*************************************************************

*LCD初始化设定

*************************************************************/

voidlcd_init()

{

delay(15);

lcd_write(0,0x28);//16*2显示,5*7点阵,4位数据

delay(5);

lcd_write(0,0x28);

delay(5);

lcd_write(0,0x28);

delay(5);

lcd_write(0,0x0c);//显示开,关光标

delay(5);

lcd_write(0,0x06);//移动光标

delay(5);

lcd_write(0,0x01);//清除LCD的显示内容

delay(25);//延时

}

/**********************************************************

*设定显示位置

**********************************************************/

voidlcd_pos(ucharpos)

{

lcd_write(0,pos|0x80);//数据指针=80+地址变量

}

/*****lcd显示子程序*****/

voidlcd_dis_time(uchartimers)//放大倍数显示子程序

{

lcd_pos(0x04);//显示地址

lcd_write(1,timers+0x30);//送显示的增益的高位

lcd_write(1,0x30);//送显示增益的低位0

}

voidlcd_dis_gt(ucharh_pass)//高通频率显示子程序

{

ucharhhpass,lhpass;

lcd_pos(0x0d);//显示地址

hhpass=h_pass/10;//计算频率的十位

lhpass=h_pass%10;//计算频率的个位

lcd_write(1,hhpass+0x30);

lcd_write(1,lhpass+0x30);//显示频率值

}

voidlcd_dis_dt(ucharl_pass)//低通频率显示子程序

{

ucharhlpass,llpass;

lcd_pos(0x0d);//显示地址

hlpass=l_pass/10;//计算频率的十位

llpass=l_pass%10;//计算频率的个位

lcd_write(1,hlpass+0x30);

lcd_write(1,llpass+0x30);//显示当前频率值

}

voidfangda()//控制放大倍数子程序

{

switch(tong)

{

case0:

timea=0;timeb=0;timec=0;break;//放大倍数为1倍,即增益为0DB

case1:

timea=1;timeb=0;timec=0;break;//放大倍数为3.16倍,即增益为10DB

case2:

timea=0;timeb=1;timec=0;break;//放大倍数为10倍,即增益为20DB

case3:

timea=1;timeb=1;timec=0;break;//放大倍数为31.6倍,即增益为30DB

case4:

timea=0;timeb=0;timec=1;break;//放大倍数为100倍,即增益为40DB

case5:

timea=1;timeb=0;timec=1;break;//放大倍数为316倍,即增益为50DB

case6:

timea=0;timeb=1;timec=1;break;//放大倍数为1000倍,即增益为60DB

default:

break;

}

lcd_dis_time(tong);//调显示程序

flage=0;//清增益设定标志位

}

voidfuntion_high_pass()//高通频率设置子程序

{

switch(high_pass)

{

case0:

P2=0x00;break;//设置频率为1KHZ

case1:

P2=0x40;break;//设置频率为2KHZ

case2:

P2=0x80;break;//设置频率为3KHZ

case3:

P2=0xc0;break;//设置频率为4KHZ

case4:

P2=0x09;break;//设置频率为5KHZ

case5:

P2=0x49;break;//设置频率为6KHZ

case6:

P2=0x89;break;//设置频率为7KHZ

case7:

P2=0xc9;break;//设置频率为8KHZ

case8:

P2=0x12;break;//设置频率为9KHZ

case9:

P2=0x52;break;//设置频率为10KHZ

case10:

P2=0x92;break;//设置频率为11KHZ

case11:

P2=0xd2;break;//设置频率为12KHZ

case12:

P2=0x1b;break;//设置频率为13KHZ

case13:

P2=0x5b;break;//设置频率为14KHZ

case14:

P2=0x9b;break;//设置频率为15KHZ

case15:

P2=0xdb;break;//设置频率为16KHZ

case16:

P2=0x24;break;//设置频率为17KHZ

case17:

P2=0x64;break;//设置频率为18KHZ

case18:

P2=0xa4;break;//设置频率为19KHZ

case19:

P2=0xe4;break;//设置频率为20KHZ

default:

break;

}

lcd_dis_gt(high_pass);

}

voidfuntion_low_pass()

{

switch(low_pass)

{

case0:

P0=0x00;break;//设置频率为1KHZ

case1:

P0=0x40;break;//设置频率为2KHZ

case2:

P0=0x80;break;//设置频率为3KHZ

case3:

P0=0xc0;break;//设置频率为4KHZ

case4:

P0=0x09;break;//设置频率为5KHZ

case5:

P0=0x49;break;//设置频率为6KHZ

case6:

P0=0x89;break;//设置频率为7KHZ

case7:

P0=0xc9;break;//设置频率为8KHZ

case8:

P0=0x12;break;//设置频率为9KHZ

case9:

P0=0x52;break;//设置频率为10KHZ

case10:

P0=0x92;break;//设置频率为11KHZ

case11:

P0=0xd2;break;//设置频率为12KHZ

case12:

P0=0x1b;break;//设置频率为13KHZ

case13:

P0=0x5b;break;//设置频率为14KHZ

cas

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 建筑土木

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1