欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    基于FPGA的程控滤波器的设计(共44页).doc

    • 资源ID:15169992       资源大小:890KB        全文页数:44页
    • 资源格式: DOC        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于FPGA的程控滤波器的设计(共44页).doc

    精选优质文档-倾情为你奉上淮北煤炭师范学院 2010届学士学位论文 基于FPGA的程控滤波器的设计学院、专业 物理与电子信息学院 电子信息科学与技术 研 究 方 向 FPGA控制 学 生 姓 名 学 号 指导教师姓名 指导教师职称 2010年04月29日专心-专注-专业基于FPGA的程控滤波器的设计淮北煤炭师范学院物理与电子信息学院 摘要 本文研究的主要目的是设计一个由现场可编程门阵列(FPGA)控制的滤波器。首先设计一个利用模拟开关CD4051来实现增益可控的前置放大电路,然后用模拟开关CD4052设计截止频率可控的低通滤波电路和高通滤波电路,最后利用FPGA编程实现放大器的放大倍数和滤波器的截止频率的控制以及通过数码管实现放大倍数和截止频率等参数的显示。从而设计出基于FPGA的程控滤波器,基于FPGA技术,使得该系统具有参数可程控,抗干扰能力强,可靠性好等优点。关键词 FPGA;程控;滤波器;放大器The Design of Programmable Filter Based on FPGASchool of Physics and Electronic Information, Huaibei Coal Industuy Terachers College, Abstract The main purpose of this study is to design a filter controlled by Field -Programmable Gate Array(FPGA). First of all, use analog switches CD4051 to design a gain-controlled pre-amplifier circuit, and then use analog switches CD4052 to design low-pass filter circuit and high-pass filter circuit and their cut-off frequency is controllable, finally use FPGA by programming to realize the control of the amplifier magnification and cut-off frequency as well as through the digital tube to achieve the display of magnification and cut-off frequency and other parameters, so as to achieve the design of programmable filter based on FPGA. Base on FPGA technology, the strong anti-interference ability and reliability would be owned by the given-controlled programmer.Keywords FPGA; Program-controlled; Filter; Amplifier目 录1 引 言滤波器其实就是选频电路,可允许部分频率的信号顺利通过,而另一部分频率的信号受到较大抑制。在近代电信装备和各类控制系统中,滤波器应用极为广泛。模拟滤波器在测试系统或专用仪器仪表中是一种常用的变换装置。滤波器的优劣直接影响产品的性能,所以对滤波器的研究和生产历来为各国所重视。其中,RC有源滤波器的应用比较广泛,以它为原型的各类变种有源滤波器去掉了电感器,体积小,Q 值可达1000,克服了RLC无源滤波器体积大、Q 值小的缺点1。设计截止频率参数可设置的程控滤波器对提高滤波器的指标精度有着重要的意义和实用价值。在传统RC有源滤波器的基础上,利用FPGA编程实现对滤波器截止频率的控制,力求功能的多样和成本的低廉。 2 系统设计2.1 设计要求本文要设计的程控滤波器力求满足以下要求:1. 放大器输入正弦信号电压振幅为,电压增益为,增益步进可调,通频带为,放大器输出电压无明显失真。2. 滤波器可设置为低通滤波器,其截止频率在范围内可调,调节的频率步进为,处放大器与滤波器的总电压增益不大于,。3. 滤波器可设置为高通滤波器,其截止频率在范围内可调,调节的频率步进为,处放大器与滤波器的总电压增益不大于,。4. 电压增益与截止频率的误差均不大于10%,有设置参数显示功能。2.2 总体方案设计根据设计要求可以确定一个总体设计方案。该程控滤波器基本上可以由FPGA控制模块、键盘模块、放大器模块、低通滤波器模块、高通滤波器模块以及显示模块组成。由FPGA来控制各模拟开关实现档位切换,从而实现放大器增益、低通和高通滤波器截止频率等参数可控,滤波部分通过多组不同阻值的电阻组合切换分别实现高通和低通滤波电路中的截止频率步进可调。通过集成在FPGA模块中的键盘来设置参数,显示部分由LED数码管显示参数。总体方案设计如图1所示。图1 系统总体设计框图2.3 方案论证与选择2.3.1 程控放大器电路的选择改变程控放大器的增益一般有两种途径2,一种是改变反相端的输入电阻阻值,另一种是改变负反馈电阻阻值,设计程控放大器有如下两种方案。方案1: 采用数字电位器3,通过软件控制写入到电位器相关寄存器的数值来改变电阻值。但精度较低、档位有限,很难实现增益的精确控制,同时受信号的带宽限制,在运放环路中会影响整个系统的通频带宽。方案2: 通过模拟开关芯片CD4051来切换不同阻值的固定电阻来改变反馈电阻,从而改变电路的增益,各固定电阻可根据指标要求理论计算并经调试后确定。这种方案通俗易懂,价格低廉,能够达到很高的精度。综上所述,选择方案2。2.3.2 程控滤波器电路的选择程控滤波器有如下两种方案可供选择。方案1: 采用专门的开关电容滤波芯片4,虽然集成度高,但价格昂贵,且不易于掌握。方案2: 采用有源的RC滤波电路,通过模拟开关芯片CD4052来切换不同阻值的固定电阻来改变电阻阻值,从而改变截止频率,各固定电阻可根据指标要求计算和仿真后确定,此种方案具有电路简单、价格低廉、易掌握、易实现等优点。综上所述,选择方案2。2.3.3 控制模块的选择程序控制模块负责调整放大器的增益和滤波器的截止频率,有如下两种方案。方案1:可以采用单片机控制电路,但是单片机资源有限,电路中芯片使用较多,链接复杂。方案2:用FPGA实现控制5,集成度高、运行速度快,资源丰富,易于进行功能扩展。系统的多个部件如模拟开关控制电路,键盘控制电路,显示控制等都可以集成到一块芯片上,大大减小了系统的体积,并且提高了系统的稳定性和抗干扰能力。综上所述,选用方案2。3 单元模块设计与实现3.1 程控放大电路模块为保证放大器的放大倍数最高为100倍且程控放大器通频为6,采用三级放大,为了保证输出无明显的失真和干扰,选用低噪声放大器OP07。由模拟开关CD4051组成可调的电阻网络。程控放大器电路如图2所示,利用Mutisim仿真软件仿真得到如表1所示的电阻网络电阻阻值,由表1中数据可画出如图2所示的电阻网络,放大电路的第一级放大倍数,第二级放大倍数,第三级放大倍数。总的放大倍数,其中的单位为。图2 程控放大器电路表1 电阻网络的电阻仿真数值开关通道电阻网络增益/放大倍数0000X0100010001X1316103.1620010X21K20100011X33.173031.620100X41040100图3 由模拟开关CD4051组成的电阻网络3.2 程控滤波器电路模块3.2.1 程控低通滤波器低通滤波器其截止频率在范围内可调7,调节的频率步进为,处放大器与滤波器的总电压增益不大于,。根据设计要求,用改变电阻的方法实现截止频率可调;并用CD4052实现电阻网络控制,达到调节的频率步进为;为了达到处放大器与滤波器的总电压增益不大于,采用二阶低通滤波器并加上适当的衰减,程控低通滤波器电路如图4所示,二阶RC低通滤波器的传输函数为 (3-1)式中: 电压增益 低通滤波器截止角频率 品质因数由此公式来确定RC值是非常困难的,可以先通过查表法,先将电容C大小先确定下来,查表得C=10,再通过改变电阻阻值使得电压增益=1,以便于用Mutisim仿真软件进行仿真读数,从而确定电阻网络阻值,仿真后得到如表2所示的电阻网络的电阻阻值,由表2中数据可画出由CD4052够成的电阻网络如图5所示。图4 程控低通滤波器电路表2 电阻网络的电阻仿真数值截止频率电阻网络阻值截止频率电阻网络阻值115.8562.56527.872.21535.281.9143.9391.69553.13101.525111.29616962121.18417907131.16318851141.101198111510.3220772图5由模拟开关CD4052组成的低通滤波器电阻网络3.2.2 程控高通滤波器高通滤波器其截止频率在范围内可调,调节的频率步进为,处放大器与滤波器的总电压增益不大于,。根据设计要求,用改变电阻的方法实现截止频率可调;并用CD4052实现电阻网络控制,达到调节的频率步进为;为了达到处放大器与滤波器的总电压增益不大于,采用二阶低通滤波器并加上适当的衰减,程控高通滤波器电路如图6所示。二阶RC高通滤波器的传输函数为 (3-2)式中: 电压增益 高通滤波器截止角频率 品质因数由此公式来确定RC值是非常困难的,可以先通过查表法,先将电容C大小先确定下来,查表得C=10,再通过改变电阻阻值使得电压增益=1,以便于用Mutisim仿真软件进行仿真读数,从而确定电阻网络阻值,仿真后得到如表所示的电阻网络,由表3中数据可画出由CD4052够成的电阻网络如图7所示。图6程控高通滤波器电路表3 电阻网络的电阻仿真数值截止频率电阻网络截止频率电阻网络115.896K111.23K27.64K121.1K34.981K131.0K43.5K1487052.82K15800表3 (续)截止频率电阻网络截止频率电阻网络62.35 K1675072K1770081.8K1865091.55K19600101.4K20550图7由模拟开关CD4052组成的高通滤波器电阻网络3.3 程控滤波器的FPGA控制模块根据设计要求可画出FPGA控制模块的框图如图8所示。图8 FPGA控制模块框图根据FPGA控制模块的框图可设计出如图9所示的FPGA控制核心模块连接图,程序见附录。其中,输入端clk接50MHz晶振电路;输入端接高低电平,00时键盘控制低通滤波器,01时键盘控制高通滤波器,10时键盘控制的程控滤波器;输入端接键盘。输出端start接发光二极管,有键值输出时发光二极管显示;输出端接键盘;输出端接数码管a、b、c、d、e、f、g、h;输出端分别接四个共阴极数码管。KEYBOARD是键盘模块,用于设置放大倍数和截止频率;CONTROL是控制模块,用于控制低通滤波器、高通滤波器和程控放大器是否工作,并传送键盘数据;CONTROL1、CONTROL2、CONTROL3模块分别用于控制低通滤波器、高通滤波器的截止频率和放大器的放大倍数。图9 控滤波器的FPGA控制核心模块连接图3.3.1 分频器模块根据设计要求可画出分频器模块的框图如图10所示。图10 分频器模块框图该模块将的晶振进行25000和625分频,得到两个不同频率的时钟信号,分别为,其中时钟用来为键盘模块提供时钟信号,而时钟用来为键盘模块和低通滤波器控制模块、高通滤波器控制模块和放大器控制模块提供时钟信号。3.3.2 键盘模块根据设计要求可画出键盘模块的框图如图11所示。图11 键盘模块框图在时钟信号和作用下,用行列式键盘来产生所需的键值,用作为控制信号,当其值为或者时,用键盘C键来加1实现高通滤波器和低通滤波器的截止频率的步进,用D键来实现减1操作;当其值为时,用键盘C键来加10实现放大器增益步进,用D键来实现减10操作。从而实现放大倍数和截止频率的调节。同时将输入的数据用数码管进行显示。信号从端口输出。3.3.3 控制模块根据设计要求可画出控制模块的框图如图12所示。图12 控制模块框图通过由键盘输入的控制信号来控制低通滤波器、高通滤波器和放大器是否工作。当其值为时,选通低通滤波器,同时通过来传送键盘数据;当其值为时,选通高通滤波器器,同时通过来传送键盘数据;当其值为时,选通放大器,同时通过传送键盘数据。控制模块如图11所示。3.3.4 低通滤波器控制模块根据设计要求可画出低通滤波器模块的框图如图13所示。图13 低通滤波器模块框图在时钟信号的作用下,将传送来的键盘数据转化成十进制数,然后与预先设置好的数值进行比较得到选通的频率,从而通过,输出二进制代码,进而输入到模拟开关,最后选通相应的开关,从而实现截止频率的控制。低通滤波器控制模块如图12所示。3.3.5 高通滤波器控制模块根据设计要求可画出高通滤波器模块的框图如图14所示。图14 高通滤波器模块框图在时钟信号的作用下,将传送来的键盘数据转化成十进制数,然后与预先设置好的数值进行比较得到选通的频率,从而通过,输出二进制代码,进而输入到模拟开关,最后选通相应的开关,从而实现截止频率的控制。3.3.6 程控放大器模块根据设计要求可画出放大器模块的框图如图14所示。图15 放大器模块框图在时钟信号的作用下,将传送来的键盘数据转化成十进制数,然后与预先设置好的数值进行比较得到选通的频率,从而通过输出二进制代码,进而输入到模拟开关,最后选通相应的开关,从而实现截止频率的控制。程控放大器控制模块如图14所示4 系统仿真测试4.1 测试过程及结果1. 程控放大器测试输入电压振幅为10,设置放大倍数在不同频率下利用Mulisim仿真软件测试输出电压,测得数据如表4所示。表4 程控低通放大器测试预测放大倍数输出电压100输出电压1输出电压10输出电压20输出电压40实际放大倍数所测放大倍数误差0dB9.989.989.989.989.9810.9980.20%10dB31.4831.4831.4831.4831.483.163.1480.38%20dB99.9299.9299.9299.9299.92109.9920.80%30dB31231231231231231.6231.21.33%40dB99699699699699610099.60.40%2. 程控滤波器的测试输入电压振幅为1,设置好截止频率,调节输入信号频率并记录在输出电压为0.707时的平率,即为-3截止频率,测得低通滤波器数据如表5所示,高通滤波器数据如表6所示。表5 程控低通滤波器测试截止频率/1234567测量值/1.0252.1463.1684.1825.2946.5197.42误差/%2.57.35.64.555.888.656截止频率/891011121314测量值/8.5868.88710.34911.41211.5712.28613.813误差/%7.321.263.493.753.585.491.3表5(续)截止频率/151617181920测量值/16.26816.57417.57617.75919.12720.596误差/%8.453.593.391.340.672.98表6 程控高通滤波器测试截止频率/1234567测量值/0.9841.9822.8653.8844.6975.7936.892误差/%1.60.94.52.96.063.451.54截止频率/891011121314测量值/7.7788.18710.37912.06811.63812.75513.287误差/%2.769.033.799.73.021.885.09截止频率/151617181920测量值/16.83616.32517.53817.64319.24920.736误差/%12.172.033.161.980.283.684.2 误差分析仿真所产生的误差的原因在于利用软件Mltisim仿真时,克服了阻值可能不能满足的要求,但是同样由于人为操作示波器时,读数有一定的误差。倘若用实物连接电路测试,由于反馈电阻的阻值不一定在市场能购买,所以必然会有误差,可以采取以下措施减少误差:1. 采用多种不同额定阻值的电阻,将阻值大小不同的电阻相串联或者并联来满足对阻值有效位数的需要,从而提高参数的精度。2. 选用足够高分辨力的电阻和电容,这取决于元件制造工艺的发展。结 论本系统采用FPGA设计的程控滤波器能够较好地适应120的信号。与其它采用方法相比,由于采用了FPGA作为控制单元,使得电路的设计复杂度降低。采用模拟开关元件实现的程控放大器和滤波器精度高,而且实现的电路噪声小,具有良好的稳定性。满足了设计的基本要求,并且具有电路简单、人机界面友好、控制方便、成本低廉等优点。从仿真结果来看,系统的指标精度较高,具有一定的实用价值。由于时间和条件的限制以及个人能力有限,本文所做的工作还有很多的不足,在今后的工作中对以下几个方面的问题进行进一步的研究:1. 如何实现更高带宽和更小步进频率的放大器。2. 如何实现更高带宽和更小步进频率的滤波器。3. 如何用液晶来显示参数。在整个毕业设计中,包含了多项关键技术方面的问题,为此我查阅了一些文献资料,进一步巩固了我的专业知识,并提高了学习能力,为今后的学习与工作打下了良好的基础。参考文献1 北方交通大学电信系.有源滤波器.北京:人民铁道出版社,19792 谢嘉奎.电子线路线性部分(第四版).北京:高等教育出出版社3 刘畅生,张耀进,宣宗强,于建国.新型集成电路简明手册及典型应用(上册).西安:西安电子科技大学出版社,20054 陆明达.开关电容滤波器的原理与设计.北京:科学出版社,19865 潘松;黄继业.EDA技术与VHDL(第二版).北京:清华大学出版社,20076 黄智伟.全国大学生电子设计竞赛电路设计.北京:北京航空航天大学出版社,2006,141-1437 谢自美.电子线路设计·实验·测试.武汉:华中科技大学出版社,2006,145-154附 录1. 分频器模块源程序如下。library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity FEN is port(clk:in std_logic; clk1,clk0:out std_logic);end FEN;architecture arch of FEN is signal clk_mid0,clk_mid:std_logic;beginprocess(clk)variable data:integer range 0 to 25000;beginif clk'event and clk='1' then if data=25000 then data:=0; clk_mid0<=not clk_mid0; else data:=data+1; end if;end if;clk0<=clk_mid0;end process;process(clk)variable data:integer range 0 to 625;begin if clk'event and clk='1'then if data=625 then data:=0; clk_mid<=not clk_mid; else data:=data+1; end if;end if;clk1<=clk_mid;end process;end arch;2. 键盘模块源程序如下。library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity KEYBOARD isport(control:in std_logic_vector(1 downto 0); control_out:out std_logic_vector(1 downto 0); clk_1k:in std_logic; clk_40k:in std_logic; key_lie:in std_logic_vector(3 downto 0); start:out std_logic; key_hang:out std_logic_vector(3 downto 0); data_p:out std_logic_vector(7 downto 0); disp_data:out std_logic_vector(7 downto 0); disp_sel:out std_logic_vector(3 downto 0) );end;architecture arch of KEYBOARD is signal int:std_logic;signal clk_sel:std_logic;signal start_reg:std_logic;signal disp_sel_reg:std_logic_vector(3 downto 0);signal data_l,data_h:std_logic_vector(3 downto 0);signal data_tmp:std_logic_vector(3 downto 0);signal key_hang_tmp:std_logic_vector(3 downto 0);signal disp_data_reg:std_logic_vector(3 downto 0);signal key_code:std_logic_vector(7 downto 0);signal data_p_reg:std_logic_vector(7 downto 0);begin control_out<=control;key_code<=key_hang_tmp&key_lie;data_p<=data_p_reg;start<=start_reg;key_hang<=key_hang_tmp;disp_sel<=disp_sel_reg;clk_sel<=clk_1k and (not int);process(clk_sel,clk_40k,int)variable state:integer range 0 to 3;begin if rising_edge(clk_40k)then int <=not(key_lie(3)and key_lie(2)and key_lie(1)and key_lie(0);end if;if rising_edge(clk_sel)thencase state is when 0=>key_hang_tmp<="1110" state:=1; when 1=>key_hang_tmp<="1101" state:=2; when 2=>key_hang_tmp<="1011" state:=3; when 3=>key_hang_tmp<="0111" state:=0;end case;end if;end process;process(clk_40k,int)variable state:integer range 0 to 3;variable counter:integer range 0 to 99999;beginif int='0' then state:=0; counter:=0;elsif rising_edge(clk_40k) then case state is when 0=> data_tmp<=data_l; state:=1; when 1=> case key_code is when ""=> data_l<="0001" data_h<=data_tmp; state:=2; when ""=> data_l<="0010" data_h<=data_tmp; state:=2; when ""=> data_l<="0011" data_h<=data_tmp; state:=2; when ""=> data_l<="0100"-4 data_h<=data_tmp; state:=2; when ""=> data_l<="0101" data_h<=data_tmp; state:=2; when ""=> data_l<="0110" data_h<=data_tmp; state:=2; when ""=> data_l<="0111"-7 data_h<=data_tmp; state:=2; when ""=> data_l<="1000" data_h<=data_tmp; state:=2; when ""=> data_l<="1001" data_h<=data_tmp; state:=2; when ""=> data_l<="0000"-0 data_h<=data_tmp; state:=2; when ""=>-C if control="10"then-+10 if data_h="1001" then data_h<="1001" else data_h<=data_h+1; end if; elsif control="00"or control="01" then -+1 if data_h="1001"then if data_l="1001"then data_h<="1001" data_l<="1001" else data_l<=data_l+1; end if; elsif data_l="1001"then data_l<="1000" data_h<=data_h+1; else data_l<=data_l+1; data_h<=data_h; end if; end if; state:=2; when ""=>-D if control="10"then-10 if data_h="0000" then data_h<="0000" else data_h<=data_h-1; end if; elsif control="00"or control="01" then -1 if data_l="0000"a

    注意事项

    本文(基于FPGA的程控滤波器的设计(共44页).doc)为本站会员(飞****2)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开