《程控滤波报告》word版.doc_第1页
《程控滤波报告》word版.doc_第2页
《程控滤波报告》word版.doc_第3页
《程控滤波报告》word版.doc_第4页
《程控滤波报告》word版.doc_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

程控滤波器设计报告摘要 本系统以51单片机和FPGA为核心,完成程控放大电路和程控滤波电路,同时设计完成了简易幅频特性测试仪。单片机通过控制反馈网络的继电器来调节放大电路的增益,最大能放大60db,倍数可调,采用高精度的电阻匹配,使其具有更好的精度。程控滤波电路采用单片机控制CMOS 双二阶通用开关电容有源滤波器MAX262改变参数,使截止频率从1kHZ到10khz可调,具有很高的精度,可达到1%。本系统还完成了简易的幅频检测装置,能对目标系统进行一定精度下的幅频检测,并输出波形。从数据显示来看,本系统能执行可控放大、滤波及幅频检测等任务,表现出极高的稳定性和可靠性,本系统完成了所有基本功能和绝大部分发挥部分。关键字 开关电容滤波 max262 程控放大一 方案的论证和设计1 程控放大器的设计(1)利用数字电位器,通过单片机改变负反馈的阻值,进而改变放大倍数,优点电路结构简单,灵活;缺点是精度不够高。(2)利用选择电路,选通某条支路,由于使用的是分立元件,匹配度高,可以使放大倍数的精度大大提高,却也有电路复杂的缺点,由于本设计任务的精度要求,因而选择此种方案。2 程控滤波器的设计滤波器设计有很多种,但主要分为数字滤波电路和模拟滤波电路。(1)采用FIR数字滤波器。数字滤波器解决了模拟滤波器所无法克服的电压漂移,温度漂移和噪声等问题,但由于计算量过大,且由于未系统学习过FIR,故不选用。(2) 采用有源RC滤波电路,使用数字电位器控制电阻值,从而可以改变电路的滤波特性。特点电路简单灵活,缺点是精度不够,(3)采用专门的开关电容滤波集成芯片。MAX262 是CMOS 双二阶通用开关电容有源滤波器由微处理器精确控制滤波函数可构成各种带通低通高通陷波和全通配置且不需外部器件,功能强大,易于掌控。故选用此种方案。3 幅频特性电路的设计 幅频特性是指幅度随频率的变化的关系;主要原理是控制扫描信号的频率变化,检测出幅度的变化;对于幅度的检测,传统方案是使用AD,将检测的数据传入控制器,由控制器对数据进行处理,然后DA输出。此种方案复杂,繁琐,精确度不高。现采用检测真有效值芯片LTC1966,LTC1966可以检测交流信号的真有效值具有高精确度,总误差小于0.25%。二 系统结构框图: 下图为本系统的主框图:单片机FPGA滤波电路前级放大电路有效值检测电路输出示波器时钟DDS输出输入图1 系统电路框图待测电路三 单元模块设计1 可控放大电路的设计放大电路可对输入信号进行不同倍数的放大,使信号以适当的幅值通过滤波电路。放大电路的组成框图如 图1 所示。通过电压跟随部分提高电路的输入电阻,控制部分通过对反馈部分的控制来实现对电路放大倍数的控制。 信号输入电压跟随通路选择信号输出图2 放大电路组成框图控制电路通路选择采用继电器控制电路的导通,从而选取不同的放大倍数。放大部分输入端电阻R选则100,则反馈电阻Rf的选择根据Vo = - Ui ( Rf / R24 )图3 反馈电路从而可以选取0db60db放大倍数下的反馈电阻。为了使信号频率为40khz时,增益能够达到60db,集成运放的带宽增益积必须大于40M。我们选择集成运放ths4052(带宽 增益积典型值为70MHZ)以满足带宽增益积的要求。实际电路模块见附录二。2 可控滤波器电路输入通道MAX262时钟单片机输出通道图4 滤波器电路滤波电路采用MAX262 是CMOS 双二阶通用开关电容有源滤波器由微处理器精确控制滤波函数可构成各种带通、低通、高通、陷波和全通配置且不需外部器件。由于内部参数的选择,采用由FPGA分频产生四时钟输入,单片机电路负责向MAX262输入控制信号和数据。实际电路模块见附录二。3 四阶椭圆型低通滤波器我们采用椭圆形归一化LPF的设计方法,电路图5所示。我们选择带内起伏量为1.0db阻带频率为通带频率的4.0倍。带内起伏量为1db时,阻带内有一个限波点的椭圆型归一化LPF的设计数据如 表1(见附录) 所示。图5 椭圆滤波电路待设滤波器截止频率与基准滤波器截止频率的比值M为:M = 50k / ( 1 / 2 ) = 314159对基准滤波器的所有元件值除以M,得到截止频率已变换成待设计滤波器的截止频率160khz时的元件参数。 C1(new)= C1(old)/ M =6.31355FC2(new)= C2(old)/ M =156.258nF L3(new)= L3(old)/ M =3.06374H待设滤波器的特征阻抗与基准频率器特征阻抗的比值K为:K = 51 / 1 =51将所有的电感元件值乘以 K ,将所有的电容值除以 K 。这样,便得到了待设计的特征阻抗为51,且截止频率为50K的四阶椭圆滤波器。 C1(new)= C1(old)/ K =123.79 nFC2(new)= C2(old)/ K =3.0639nF L3(new)= L3(old) K =156.25H实际电路模块见附录二。4 幅频特性电路幅频检测电路基本原理是通过扫描不同频率,通过目标电路,然后检测幅值,显示输出幅值的过程。扫描频率电路使用FPGA产生的DDS电路,基本输出为10HZ到200KHZ,利用单片机控制DDS的控制字产生步进为10KHZ的扫描频率。 幅值检测电路利用专用芯片LTC1966,LTC1966可以检测交流信号的真有效值具有高精确度,总误差小于0.25%幅度检测电路见附录二。三系统软件流程图1单片机流程图:具体程序见附录;低通滤波器截止频率设定初始化等待键值Key放大增益减小高通滤波器截止频率设定扫频模式控制输出合理键值?放大增益增大2FPGA设计框图 :具体程序见框图;频率控制字寄存器存储器DDS输出数据时钟分频时钟输入控制信号所需时钟输出四 系统测试:1测试使用仪器:pc机,数字示波器TDS1002,F10A型函数信号发生器,直流稳压源LPS-305,DF2172A交流毫伏表。2系统整机调试:(1)程控放大器测试:测试方案:输入电压振幅为10mv,调节放大倍数,分别测量输出电压。表一 前级放大倍数测量 输入电压:6.9mv (有效值) 预测放大倍数输出电压(100hz)输出电压(1khz)输出电压(10khz)输出电压(40khz)实际放大倍数误差 0db 7.19mv7.19mv7.19mv7.19mv 1.042 1.03% 10db 22.2mv22.2mv22.2mv22.2mv 3.217 1.80%20db 69mv6 9mv 69mv 69mv 100 0.00% 30db 220mv 220mv 220mv 220mv 31.88 0.88% 40db 662mv 650mv640mv 624mv 91.3 8.70% 50db 2.09 2.09 2.05 1.92mv 290.5 8.12%60db 6.70 6.60 6.40 4.40 8043 20%经测得,在50db以下时,通带包含100 Hz40khz,60db通带在100-37.5khz。增益10dB步进可调,放大器输出电压无明显失真。 (2)程控滤波器设计测试方法:跟据截至频率的定义,我们取通带电平下降到-3db的频率点,并分别测出信号频率为高通截止频率一半,低通截止频率二倍,放大电路增益为40dB时,总体电路的增益,电路数据使用交流毫伏表测量。表二 低通特性 程控放大增益为40db 预测频率 实际频率(2fc处系统总增益)误差1khz996hz29.970.40% 5khz 4.96khz29.830.80% 10khz 10.02khz29.830.20% 15khz 15.00khz29.230.00% 20khz 20.01khz29.230.05%表三 高通特性 程控放大增益40db预测频率实际频率(0.5fc处系统总增益)误差1khz1.16K29.9916.00%5khz5.00K29.230.00%10khz10.02K29.230.20%15khz15.04K29.230.27%20khz19.90K29.23 0.50%(3)用交流毫伏表测量四阶低通椭圆滤波器的通频带。在输入端接入函数信号发生器,保持输入信号的有效值为0.5v,改变信号的频率,测量输出信号的有效值。表四 椭圆滤波测量数据 Vi = 0.5v频率Vo(v)100Hz05001KHz050010HHz052430KHz070850KHz036251KHz0355椭圆滤波器的截止频率为51KHz,带内起伏1dB。前级放大电路的输出端接入椭圆滤波器,放大电路的输入端接信号发生器,放大电路的增益设为40dB,信号频率设为200KHz,分别用交流毫伏表测量输入输出电压的有效值,测得输入电压为0.695v,输出电压为0.795v。总电压增益小于5dB。(4)简易幅频特性仪测试方案:将简易幅频特性仪通过一目标电路,将输出接示波器; 本设计任务中,我们完成了简易幅频特性仪的设计,性能达到了目标要求;五 总结:我们很好完成了可控放大电路,可控滤波电路等基本要求,可控放大电路能在0db 到60 db可调,精度达到了我们的要求,可控滤波电路能选择高低通设置,并且在1khz到10khz可调,精度达到1%,此外,我们很好的发挥了四阶椭圆滤波器的设计和简易幅频特性仪,并和好达到设计要求。六 参考文献1 蒋瑜, 陈循, 杨雪, 阮启明. 基于MAX262的程控滤波器的实现J. 电测与仪表 , 2000,(12)2 邓重一. 基于可编程芯片MAX262的有源滤波器J. 单片机与嵌入式系统应用 , 2005,(05)3 倪向东. 单片机控制的双路有源滤波器设计J. 电子技术应用 , 2002,(01)4 张飞岭, 张永瑞, 谢延廷. 基于MAX262的可程控多频点带通滤波器的设计J. 电子科技 , 2007,(01)5 马玲. 程控放大与程控滤波电路设计J. 电子工程师 , 1999,(08) . 6 菅维乐 ,姜威 ,李文明 ,孔勇. 可编程开关电容通用滤波器MAX260/261/262J. 国外电子元器件 , 2003,(03)附录一:阻带频率C1(F)C2(F)L3(H)2.03.04.05.06.01.851991.884081.951071.983461.998090.225900.180190.090230.049090.030960.859030.884280.937000.962500.97403表1 带内起伏量为1.0db时的元件值 附录三:单片机c程序清单#include #include #define uchar unsigned char#define uint unsigned intuchar code LF20=40,7,28,14,7,27,20,14,10,6,31,27,23,19,16,13,11,9,7,6;uchar code HF20=63,27,60,40,27,60,48,39,32,26,62,59,53,47,42,38,34,30,27,25;sbit con1 = P17;sbit con0 = P14;sbit WR0=P13;sbit a0=P30;sbit a1=P31;sbit a2=P33;sbit a3=P34;sbit a4=P35;sbit a5=P36;sbit a6=P37;uchar mod;/模式 : 高通,低通,扫频uchar key; / 键值 : uchar Ldat; / uchar Gdat; /uchar a;/*函数: Delay(uint t)功能: 延时 0.01-655.36 s参数: t 类型 uint*/void Delay(uint t)doTH0 = 0xDC;TL0 = 0x00;TR0 = 1; while ( !TF0 );TF0 = 0;TR0 = 0; while (-t);void Init();uchar Set_value();void Load_date(uchar modd ,uchar datt);void saoping();void read_key() interrupt 0key = ZLG7289_Key();Delay(2);TR0=1;void main()Init();ZLG7289_Init(4);while(1) if(key = 14) key =17; a+; if(a=7) a=0; ZLG7289_Hide(0x0f); ZLG7289_Download(1, 0, 0, 11); ZLG7289_Download(1, 1, 0, 13); ZLG7289_Download(1, 2, 0, 0); ZLG7289_Download(1, 3, 0, a); Delay(10); if(a=0) a6=0;a5=0;a4=0;a3=0;a2=0;a1=0;a0=1; if(a=1) a6=0;a5=0;a4=0;a3=0;a2=0;a1=1;a0=0; if(a=2) a6=0;a5=0;a4=0;a3=0;a2=1;a1=0;a0=0; if(a=3) a6=0;a5=0;a4=0;a3=1;a2=0;a1=0;a0=0; if(a=4) a6=0;a5=0;a4=1;a3=0;a2=0;a1=0;a0=0; if(a=5) a6=0;a5=1;a4=0;a3=0;a2=0;a1=0;a0=0; if(a=6) a6=1;a5=0;a4=0;a3=0;a2=0;a1=0;a0=0; Delay(100); if(key = 15) key =17; a-; if(a=0xff) a=6; ZLG7289_Hide(0x0f); ZLG7289_Download(1, 0, 0, 11); ZLG7289_Download(1, 1, 0, 13); ZLG7289_Download(1, 2, 0, 0); ZLG7289_Download(1, 3, 0, a); Delay(10); if(a=6) a6=1;a5=0;a4=0;a3=0;a2=0;a1=0;a0=0; if(a=5) a6=0;a5=1;a4=0;a3=0;a2=0;a1=0;a0=0; if(a=4) a6=0;a5=0;a4=1;a3=0;a2=0;a1=0;a0=0; if(a=3) a6=0;a5=0;a4=0;a3=1;a2=0;a1=0;a0=0; if(a=2) a6=0;a5=0;a4=0;a3=0;a2=1;a1=0;a0=0; if(a=1) a6=0;a5=0;a4=0;a3=0;a2=0;a1=1;a0=0; if(a=0) a6=0;a5=0;a4=0;a3=0;a2=0;a1=0;a0=1; Delay(100); if(key = 11)/设置低通频率 key=17; ZLG7289_Hide(0x73); ZLG7289_Download(0, 6, 0, 13); ZLG7289_Download(0, 5, 0, 14); ZLG7289_Download(1, 4, 0, 15); Ldat = Set_value(); Load_date(0,Ldat); if(key = 12)/设置高通频率 key=17; ZLG7289_Hide(0x73); ZLG7289_Download(0, 6, 0, 12); ZLG7289_Download(0, 5, 0, 14); ZLG7289_Download(1, 4, 0, 15); Gdat = Set_value(); Load_date(2,Gdat); if(key = 13) /扫频开关 ZLG7289_Hide(0x00); saoping(); void Init()IE = 0x81;IP = 0x01; TMOD = 0x01; key = 17; ZLG7289_Flash(0x00); Delay(100); ZLG7289_Flash(0xff); a=0; a0=0; a1=1; a2=0; a3=0; a4=0; a5=0; a6=0; uchar Set_value() uchar a=0; ZLG7289_Download(1, 0, 0, 0); ZLG7289_Download(1, 1, 0, 0); ZLG7289_Flash(0xfc); Delay(200); while(key9) a = key; ZLG7289_Download(1, 0, 0, key); ZLG7289_Flash(0xfd); key = 17; while(key2)|(key=2)&(a0)|(key=0)&(a=0) a=key*10+a; if(a10) con1=0; con0=0; else if(a=3)|(a=4)|(a=5) con0=1; con1=1; else con1=1; con0=0; ZLG7289_Download(1, 1, 0, key); key = 17; ZLG7289_Flash(0xff); return(a); void Load_date(uchar modd ,uchar datt) uchar a8=0,0,0,0,0,0,0,0,k=0; uchar i=2; if(modd=0) a0=0; a1=0; k=LFdatt-1; for(;i(i-2)&0x01; if(modd=2) a0=1; a1=0; k=HFdatt-1; for(;i(i-2)&0x01; for(i=0,k=0;k4;k+,i+) P0 = ai*32+ai+*16+k; WR0=0; WR0=1; P0 = 0xf4;WR0 = 0;WR0 = 1;P0 = 0xe5;WR0 = 0;WR0 = 1;P0 = 0xe6;WR0 = 0;WR0 = 1;P0 = 0xe7;WR0 = 0;WR0= 1; void saoping() uint i,j; P2=0; for(i=0;i20;i+) P2+; for(j=0;j10000;j+) _nop_(); 附录四:VHDL程序清单library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity functin is port(clk: in std_logic;m:in std_logic_vector(7 downto 0);clk1: out std_logic;sin:out std_logic_vector(7 downto 0);co: out std_logic_vector(1 downto 0);con_in : in std_logic_vector(1 downto 0);clk_out: out std_logic );end entity;architecture arc_functin of functin iscomponent romPORT(address: IN STD_LOGIC_VECTOR (7 DOWNTO 0);clock: IN STD_LOGIC ;q: OUT STD_LOGIC_VECTOR (7 DOWNTO 0);end component;signal temp:std_logic_vector(7 downto 0);signal zl :std_logic_vector(10 downto 0);signal nn :std_logic;signal temp1:std_logic_vector(8 downto 0);signal c

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论