- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
基于FPGA的FIR滤波器设计与仿真
摘要:FIR数字滤波器以其良好的线性相位特性被广泛使用,属于数字信号处理的基本模块之一。FPGA具有的灵活的可编程逻辑可以方便地实现高速数字信号处理。为了提高实时数字信号处理的速度,利用FPGA芯片内部的ROM实现一种查找表结构的FIR数字滤波器。并用MATAB对实验结果进行仿真和分析,证明了设计的可行性。
0 引言
数字滤波器是数字信号处理的重要组成部分,其作用是从接收信号中提取出需要的信息同时抑制干扰,由于FIR滤波器的冲击响应是有限长的,因而有可能做成具有严格线性相位的。通常用以下两种方法来实现数字滤波器:一是把滤波器所要完成的运算编成程序并让计算机执行,也就是采用计算机软件实现;另一种是设计专用的数字硬件、专用的数字信号处理器或采用通用的数字信号处理器来实现。
常用的实时数字信号处理的器件有可编程的数字信号处理(DSP)芯片、专用集成电路(ASIC)、现场可编程门阵列(FPGA)等。在工程实践中,往往要求对信号处理要有高速性、实时性和灵活性,而已有的一些软件和硬件实现方式则难以同时达到这几方面的要求。随着电子信息技术的快速发展,很多信号处理器件开始用FPGA来取代传统的实现方法。与传统的实现方法相比,FPGA的显著优点是它的并行处理特性,可以显著提高滤波器的数据吞吐率。
随着可编程逻辑器件和EDA技术的发展,使用FPGA来实现数字信号处理,既具有实时性,又兼顾了一定的灵活性。FPGA具有的灵活的可编程逻辑可以方便地实现高速数字信号处理,突破了并行处理、流水级数的限制,有效地利用了片上资源,加上反复的可编程能力,越来越受到国内外从事数字信号处理的研究者的青睐。
1 FIR滤波器的结构特点
数字滤波器通常分为有限冲击响应(FIR)和无限冲击响应(IIR)两大类。FIR滤波器由以下几个特点:
(1)系统的单位冲击响应h(n)在有限个n值处不为零;
(2)系统函数H(Z)在|Z|>0处收敛,在|Z|>0处只有零点,有限z平面只有零点,而全部极点都在z=0处(因果系统);
(3)结构上主要是非递归结构,没有输出到输入的反馈,但有些结构(例如抽样频率结构)也包含有反馈的部分;
设FIR滤波器的单位冲击响应h(n)为一个N点序列,0≤n≤N-1,则滤波器的系统函数为:
就是说它有N-1阶极点在z=0处,有个N-1零点位于有限z平面的任何位置。
FIR滤波器有以下几种基本结构:横截型(卷积型、直接型);级联型;频率抽样型。这里,我们主要讨论直接型FIR滤波器的实现。
式(1)的系统的差分方程表达式为:
很明显,这就是线性移不变系统的卷积和公式,也是x(n)的延时链的横向结构。
2 FPGA概述及特点
FPGA即现场可编程门阵列,是20世纪90年代发展起来的。大部分FPGA采用基于SRAM的查找表(look up table,LUT)结构,也有一些军品和宇航级FPGA采用FLASH或者反熔丝工艺的查找表结构以提高可靠性。它是在PAL、GAL、EPLD等可编程器件的基础上进一步发展的产物,具有更高的集成度,更强的逻辑实现能力和更好的设计灵活性。FPGA由许多独立的可编程逻辑模块组成,用户可以通过编程将这些模块连接起来实现不同的设计。FPGA器件的产生将半定制的门阵列电路的优点和可编程逻辑器件的用户可编程特性结合在一起。既解决了定制电路的不足,又克服了原有可编程逻辑器件门电路数量有限的缺点。
FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个新概念,内部包括可配置逻辑模块CLB(Configurable Logic Block)、输入输出模块IOB(InputOutput Block)和内部连线(Interconnect)三个部分。FPGA的基本特点如下。
(1)采用FPGA设计ASIC电路,用户不需要投片生产,就能得到可用的芯片;
(2)FPGA内部有丰富的触发器和I/O引脚资源;
(3)FPGA可做其他全定制或半定制ASIC电路的中试样片;
(4)FPGA是ASIC电路中设计周期最短,开发费用最低,风险最小的器件之一。
(5)FPGA采用高速CHMOS工艺,功耗低,可以与CMOS、TTL电平兼容。
可以说,FPGA芯片是小批量系统提高集成度、可靠性的最佳选择之一。随着集成度密度的不断提高,FPGA器件几乎可以实现所有的数字电路功能。目前,器件集成度已经达到了数百万门数量级,工作频率可达300MHz以上。一般可在几个小时或几天内完成一个设计,并可随时修改。这加速了产品设计开发的进程,免去了昂贵的ASIC(专用集成电路(器件半导体生产工艺费用及投资风险,因此,FPGA技术已经成为电子工程师不可缺少的好帮手。
3 查找表结构的FIR算法
LUT本质上是一个RAM。目前FPGA中多使用4输入的LUT,所以每一个LUT可以看成一个具有4位地址线的16×1的RAM。当用户通过原理图或HDL语言描述了一个逻辑电路后,FPGA开发软件会自动计算逻辑电路的所有结果,并把结果写到RAM中,当输入一个信号进行运算就等于输入一个地址,找出对应的内容,然后输出。
由式(2)可见FIR滤波器系统函数是一种卷积的运算形式。如果用FPGA直接实现则计算速度很慢且占用大量的LE(逻辑单元),达不到系统对实时性的要求,于是想到能否将上述卷积运算转化成加减运算。
分布式算法(distributed arithmetic,DA)早在1973年就已经被Croisier提出来了,但是直到FPGA出现以后,才被广泛应用在FPGA中计算乘积和。
设FIR滤波器的阶数为N,输入数据x(n)的位宽为k,则x(n)可表示为:
也就是说:我们可以把每个输入数据的每一位的值分别与相应的FIR系数相乘(因为x(n)为数字信号,每个输入数据的每一位的值都为0或1,所以与h(n)相乘的结果非0即为h(n))然后再相加,然后再把所有位的相加值错位相加,可得到卷积的结果从而实现了将卷积运算转换成加法运算。
这样我们就可以针对N阶FIR滤波器的系数预先建立一个2的N次方的一个存储表,将系数和存放在对应的存储单元中。进行卷积运算时把输入数据的每一位组合成地址码,通过地址查找到相应的系数和,然后把所有位数的系数和移位相加即可完成卷积运算。通过查表的方式可以大大减少求和的次数,提高运算速度。
4 设计思路及步骤
4.1 FPGA系统设计的方法
用FPGA实现数字系统设计一般可分成以下几个步骤:设计输入、功能仿真、编译综合生成网表文件、设计实现、时序仿真、下载到芯片进行硬件验证。在每一步检查到的错误或缺陷都可以返回到上一层进行修改。
随着数字系统规模的不断增大,其复杂度也随之增大。层次化设计将系统逐层分为较小的、规模可控制的模块,是控制数字系统设计复杂度的一种有效方法。
层次化设计中有两个重要的核心思想,即模块化和原件重用。模块化是指将系统划分为几个子模块,而这些子模块又分别划分为更小的模块,直至不可再分。每个模块都可以看成是上一层模块的一个元件。原件重用是指同一个原件可以被不同的实体调用,或者被同一个实体多次调用。这样不但大大减轻了设计者的工作量,而且使程序结构更加优化,具有更好的可读性。
4. 2 设计实例的参数选取及生成
MATLAB的信号处理工具箱中包括许多可用于设计FIR数字滤波器的M文件。根据要设计的滤波器的参数、通带截止频率、阻带截止频率、采样频率、通带或阻带波纹要求等参数,可以利用MATLAB中的数字信号处理工具箱生成滤波器的系数。
在设计中,采用16阶FIR,输入数据宽12位,滤波器系数以及由这些系数演算出的ROM的初始化数据文件*.mif文件可以通过MATLAB计算生成。
因为是16阶的FIR,这样就需要65536个ROM单元来实现,ROM单元的位宽采用16位。利用器件中的ROM建立这样的查找表,首先要将ROM的初始化数据写到*.mif文件中,然后在Ouartsus II中将其指向对应的ROM设计模块。
当FIR的阶数增大时,ROM的存储量是以2的倍数增长的,因此采用一个ROM快分时查找表的方法来降低对ROM存储容量的要求。
4.3 模块化设计
用原理图和VHDL相结合的输入方式,分模块进行设计,项层模块采用图形化输入,在Quartsus II中进行设计输入。
系统由控制模块、输入数据移位模块、地址发生模块、存储器模块、运算模块等组成。下面介绍每一模块的基本功能。
(1)控制模块的作用是产生一系列的控制信号,对上述各种模块进行精确的控制。控制模块在收到A/D转换结束信号后,依次产生移位寄存器使能信号、并行到串行转换的装入信号、移位相加的装入信号、加减控制信号和滤波器结果输出信号等控制信号。使上述各个模块按照一定的时序进行操作,最终完成滤波功能。该模块采用VHDL的描述方式比较方便。
(2)输入数据移位模块的主要功能是使A/D转换后的数据通过不同的触发器,从而产生不同的延迟,以便取出输入数据不同位置上的数值,来构成ROM的地址。
(3)地址发生器模块的主要功能是将通过输入数据移位模块的不同延迟分别转换为查找表的串行地址,提供给存储器模块。根据结构化的程序设计思想,本模块可由12个单通道并、串转换模块组成。
(4)存储器模块是这种查找表结构FIR的核心。FPGA中ROM模块的设计可以通过Quartsus II软件中的Mega Wizard向导来生成。
(5)运算模块主要功能是将ROM的输出数据在此进行移位相加。这里实现的主要是加法和减法运算,运算速度很快。
最后的项层模块采用图形化输入,这样可以使设计思路更加清晰,也符合自上而下的FPGA主流设计方法。
5 仿真验证
为了验证设计的正确性,必须对设计进行全面充分的功能仿真和时序仿真,功能仿真一般用Mentor公司的Modelsim来进行,时序仿真使用QuartusII软件。Altera公司提供的QuartusII软件除了具有强大的编译综合功能之外,还提供了一定的波形(时序)仿真功能。因其输入和输出都是以波形的形式给出的,虽然看起来如同逻辑分析仪的输出形式,比较直观,但是难以对随机信号进行输入;随机信号的输出也难以分析,这就给我们的验证工作带来了很大的障碍。下面我们利用MATLAB与QuartusII实现联合仿真。
5.1 产生向量仿真文件
在MATLB中生成OuartusII仿真所需的输入文件*.vec。QuartusII仿真文件有两种格式,即*.vwf格式和*.vec格式。前者是在Quart-usII中通过波形编辑器生成的。当方针输入数据复杂时,用波形输入的方法难以胜任,特别是在数字信号处理领域,大多数仿真输入数据要叠加噪声,采用波形输入方式是不现实的。后者是按一定格式要求的文本文件输入方式,可以利用任何文本编辑器产生,只要符合对仿真文件的格式要求即可。
这里的仿真输入数据是在两个不同频率上的正弦波,频率分别为23Hz、58Hz。把这两个信号叠加在一起作为输入信号,用MATLAB软件生成仿真所需的vec文件。FIR滤波器的截止频率为40Hz。
在对仿真参数进行设置时,将仿真向量文件指向由MATLAB生成的文件,即可将MATLAB中生成的仿真信号导入之中进行仿真了。
5.2 验证输出结果
用QuartusII软件中的选项将仿真向量文件指向由MTLAB生成的*.vec文件,进行仿真。
将仿真结束后生成的波形文件,另存为*.tbl格式文件,以数据文件输入的方式将此*.tbl文件中的仿真输出信号的数值导入至MATLAB中,并进行频谱分析验证FIR数字滤波器设计的正确与否,并分析其性能优劣。
图1是输入信号的时域和频域图形,以及经过理想的低通滤波后得到的结果。低通滤波用MATLAB实现。可以看出经过滤波后,23Hz的频率成分被保留下来,而58Hz的频率成分被滤掉。图2是同一输入信号的时域和频域图形,以及经过FPGA实现的FIR数字滤波器低通滤波后的结果。
6 结束语
从这两幅图中,我们可以看到用FPGA实现的FIR滤波器,得到了和理论上滤波相似的结果,证明了设计的可行性及正确性。如果需要不同的滤波器,我们只要改变输入到ROM中的初始化文件数据即可。
上一篇:基于LPM的高速FIFO的设计
下一篇:基于AVR的PCB板雕刻机的设计
闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧湱鈧懓瀚崳纾嬨亹閹烘垹鍊炲銈嗗笒椤︿即寮查鍫熷仭婵犲﹤鍟扮粻缁橆殽閻愭潙鐏村┑顔瑰亾闂侀潧鐗嗛幊鎰版偪閳ь剚淇婇悙顏勨偓鏍涙担鑲濇盯宕熼浣稿妳婵犵數濮村ú锕傚煕閹寸姵鍠愰柣妤€鐗嗙粭鎺懨瑰⿰鈧崡鎶藉蓟濞戙垺鍋愰柛鎰级鐠囩偤鎮楃憴鍕闁搞劌娼¢悰顔碱潨閳ь剟鐛崶銊﹀闁荤喐婢橀崢鐐测攽閿涘嫬浜奸柛濠冪墵瀹曟繈骞嬮敃鈧崹鍌炴煕閿旇骞橀柣顓炵墛閵囧嫰寮村Δ鈧禍鎯р攽椤旂》鏀绘俊鐐舵铻為柛鎰╁妷濡插牊绻涢崱妯曟垿藟閿濆鈷掑ù锝呮嚈瑜版帗鏅濋柕鍫濐槴閳ь剨绠撻幃婊堟偩鐏炵晫銈﹂梻浣侯攰閹活亞绮婚幋鐘电焼閻庯綆鍋佹禍婊堟煙閻戞ê鐏ラ柍褜鍓欓…鐑界嵁婵犲倵鏀介柛鈾€鏅滅€靛矂姊洪棃娑氬婵☆偅绋掗弲鍫曨敆閸屾粍锛忛梺鍝勵槼濞夋洖鐡梻浣哥枃椤曆呯矓閻㈠灚宕叉繝闈涱儏閻愬﹪鏌曟繛鍨仾閻庢俺妫勯埞鎴︽倷鐎涙ê闉嶉梺绯曟櫅閸熸潙鐣烽幋锕€绠婚悗闈涙憸椤旀洘绻涙潏鍓у埌闁哥喎鐏濈叅闁挎洖鍊搁悿鐐亜閹烘垵顏柛娆愭崌閺屾盯濡烽敐鍛瀷闂佸疇妫勯ˇ鐢稿蓟閿濆绠抽柟瀵稿С缁敻姊洪棃娑欐悙閻庢矮鍗抽悰顕€骞掑Δ鈧粻锝嗙節閸偄濮冮柟顕嗙秮濮婄粯鎷呴懞銉闂佸摜鍠嶉崡鍐茬暦娴兼潙鍐€妞ゆ挾鍋犻幗鏇㈡⒑閸濆嫭鍌ㄩ柛銊ョ秺閺屽宕堕妸褏鐦堥梺鍓茬厛閸嬪嫭鎱ㄩ崼銉ユ瀬闁割偁鍎查埛鎺懨归敐鍛殘鐟滅増甯╅弫鍕煕閹伴潧鏋涚紒鈧径灞稿亾楠炲灝鍔氭い锔诲灡椤㈠﹪姊绘担鍛婂暈婵炶绠撳畷瑙勫閺夋垹顦ㄩ梺閫炲苯澧存慨濠冩そ濡啫鈽夐幒鎴炲€e┑鐘殿暯閳ь剝娅曢幖鎰版煃缂佹ɑ宕屽┑鈥崇埣瀹曞崬鈻庨幋鐘愁潓闂傚倷绀侀崯鍧楁儍濠靛纾婚柟鍓х帛閻撴洟鏌¢崶銉ュ濠⒀呭閵囧嫰鏁傞崹顔肩ギ濠殿喖锕ュ钘夌暦椤愶箑绀嬫い鎾跺Т婵晫绱撻崒姘偓鍝ョ矓瀹曞洦顐芥慨妯垮煐閸嬫ɑ銇勯弬鎸庮潔闁绘梻鍘х粈鍌炴煟閹惧啿顒㈤柣搴弮濮婄粯鎷呴崨濠傛殘濠电偠顕滅粻鎾崇暦閵忥絻浜归柟鐑樺灩閸旓箑顪冮妶鍡楀潑闁稿鎹囬弻銊╁即閵娿倗鐩庡銈庡亜缁绘劗鍙呭銈呯箰閹冲孩绂掗銏♀拺闁告繂瀚峰Σ褰掓倵缁楁稑鍊婚弰鍌涚節绾板纾块柛瀣灴瀹曟劙寮介鐐茬€梺姹囧灪濞煎矂宕堕浣镐缓缂備礁顑堥鎶藉Ψ閵夊啫缍婇弫鎰板川椤撗勵棏婵犵數鍋熼鏇㈠礉閹达箑钃熺€广儱鐗滃銊╂⒑閸涘﹥灏甸柛鐘崇墵閹即顢氶埀顒€鐣峰鈧、娆戝枈鏉堛劎绉遍梻鍌欑窔濞佳囨偋閸℃稑绠犻幖杈剧悼閻滅粯绻涢幋鐐垫噮缂佲檧鍋撻梻浣圭湽閸ㄨ棄岣胯閻☆參姊虹拠鎻掝劉闁告垵缍婂畷銏$附缁嬭法鍘洪梺鍦亾濡炲潡寮繝鍥ㄧ厱闁圭偓顨呴幏鎴犳閹惰姤鈷掑ù锝呮嚈瑜版帒瀚夋い鎺戝閸ゅ苯螖閿濆懎鏆欓柣鎺戠仛閵囧嫰骞掗幋婵愪紝濠碘槅鍋呴崹鍦閹烘鏁婇柤娴嬫櫅椤も偓缂傚倷鐒﹂〃鍫ュ窗閺嶎厼鏄ラ柍褜鍓氶妵鍕箳閹存繍浠撮梺閫炲苯鍘哥紒鑸佃壘椤曪絾绂掔€e灚鏅i梺缁樺姈椤旀牠宕ラ崨瀛樷拻濞达絿鎳撻婊勭箾閹绘帞效鐎规洘鍨块獮姗€宕滄担鐚寸床闂備胶绮悷銏ゅ磻閹剧粯鐓曢柕濞垮劤閸╋絿鈧鍠栭…閿嬩繆閹间礁鐓涢柛灞剧煯缁ㄤ粙姊绘担鍛靛綊寮甸鍌滅煓闁硅揪瀵岄弫鍌炴煥閻曞倹瀚� | More...
闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧湱鈧懓瀚崳纾嬨亹閹烘垹鍊炲銈嗗笒椤︿即寮查鍫熷仭婵犲﹤鍟扮粻缁橆殽閻愭潙鐏村┑顔瑰亾闂侀潧鐗嗛幊鎰版偪閳ь剚淇婇悙顏勨偓鏍涙担鑲濇盯宕熼浣稿妳婵犵數濮村ú锕傚煕閹寸姵鍠愰柣妤€鐗嗙粭鎺懨瑰⿰鈧崡鎶藉蓟濞戙垺鍋愰柛鎰级鐠囩偤鎮楃憴鍕闁搞劌娼¢悰顔碱潨閳ь剟鐛崶銊﹀闁荤喐婢橀崢鐐测攽閿涘嫬浜奸柛濠冪墵瀹曟繈骞嬮敃鈧崹鍌炴煕閿旇骞橀柣顓炵墛閵囧嫰寮村Δ鈧禍鎯р攽椤旂》鏀绘俊鐐舵铻為柛鎰╁妷濡插牊绻涢崱妯曟垿藟閿濆鈷掑ù锝呮嚈瑜版帗鏅濋柕鍫濐槴閳ь剨绠撻幃婊堟偩鐏炵晫銈﹂梻浣侯攰閹活亞绮婚幋鐘电焼閻庯綆鍋佹禍婊堟煙閻戞ê鐏ラ柍褜鍓欓…鐑界嵁婵犲倵鏀介柛鈾€鏅滅€靛矂姊洪棃娑氬婵☆偅绋掗弲鍫曨敆閸屾粍锛忛梺鍝勵槼濞夋洖鐡梻浣哥枃椤曆呯矓閻㈠灚宕叉繝闈涱儏閻愬﹪鏌曟繛鍨仾閻庢俺妫勯埞鎴︽倷鐎涙ê闉嶉梺绯曟櫅閸熸潙鐣烽幋锕€绠婚悗闈涙憸椤旀洘绻涙潏鍓у埌闁哥喎鐏濈叅闁挎洖鍊搁悿鐐亜閹烘垵顏柛娆愭崌閺屾盯濡烽敐鍛瀷闂佸疇妫勯ˇ鐢稿蓟閿濆绠抽柟瀵稿С缁敻姊洪棃娑欐悙閻庢矮鍗抽悰顕€骞掑Δ鈧粻锝嗙節閸偄濮冮柟顕嗙秮濮婄粯鎷呴懞銉闂佸摜鍠嶉崡鍐茬暦娴兼潙鍐€妞ゆ挾鍋犻幗鏇㈡⒑閸濆嫭鍌ㄩ柛銊ョ秺閺屽宕堕妸褏鐦堥梺鍓茬厛閸嬪嫭鎱ㄩ崼銉ユ瀬闁割偁鍎查埛鎺懨归敐鍛殘鐟滅増甯╅弫鍕煕閹伴潧鏋涚紒鈧径灞稿亾楠炲灝鍔氭い锔诲灡椤㈠﹪姊绘担鍛婂暈婵炶绠撳畷瑙勫閺夋垹顦ㄩ梺閫炲苯澧存慨濠冩そ濡啫鈽夋潏銊愩倝姊虹粙鍨槰闁革綇绲介悾鐑藉箣閿曗偓缁犲鎮归崶銊ョ祷闁哥偑鍔岄—鍐Χ閸℃顫庨梺鍝ュТ鐎涒晝绮嬪澶嬪€锋い鎺嶇瀵灝鈹戦埥鍡楃仯闁告鍕洸濡わ絽鍟崐鍨叏濡厧浜鹃悗姘炬嫹婵犵數濮烽弫鍛婃叏閻戣棄鏋侀柛娑橈攻閸欏繘鏌i幋锝嗩棄闁哄绶氶弻鐔兼⒒鐎靛壊妲紒鐐劤椤兘寮婚敐澶婄疀妞ゆ帊鐒﹂崕鎾绘⒑閹肩偛濡奸柛濠傛健瀵鈽夐姀鈺傛櫇闂佹寧绻傚Λ娑⑺囬妷褏纾藉ù锝呮惈瀛濈紓鍌氱Т閿曨亜顕g拠宸悑濠㈣泛锕g槐鍫曟⒑閸涘﹥澶勯柛鎾寸懃閳诲秹鏁愭径瀣ф嫼缂備礁顑堥崕濠氾綖閿曞倹鐓曢柡鍐e亾闁搞劌鐏濋锝嗙節濮橆厽娅滄繝銏f硾閿曪箓鎮块埀顒勬⒒閸屾艾鈧悂鎮ф繝鍕煓闁硅揪绠戦悡鏇㈡煙閻戞ê鐏嶉柡鈧禒瀣厽闁归偊鍨伴惃鍝勵熆瑜庡鑽ゆ閹烘鏁婇柣锝呮湰閸d即鎮楀▓鍨灈妞ゎ參鏀辨穱濠囧箹娴e摜鍘搁梺绋挎湰閻喚鑺辨禒瀣拻濞达絽鎳欒ぐ鎺戝珘妞ゆ帒鍊婚惌娆撴煙鏉堟儳鐦滈柡浣稿€块弻銊╂偆閸屾稑顏�闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻瀵割槮缁炬儳缍婇弻锝夊箣閿濆憛鎾绘煕閵堝懎顏柡灞剧洴楠炴﹢鎳犻鈧俊浠嬫⒑缁嬭法绠茬紒顔芥崌瀵鈽夐姀鈺傛櫇闂佹寧绻傚Λ娑⑺囬妷鈺傗拺婵懓娲ら埀顒侇殜瀹曟垿骞橀懜闈涘簥濠电娀娼ч鍡浰夐崼鐔虹闁瑰瓨绻傞懜褰掓煕閹垮啫寮慨濠冩そ閺屽懘鎮欓懠璺侯伃闂佸憡蓱閹倿寮婚敐澶婄闁绘劕妯婂ú顓㈡⒑閻熸壆鐣柛銊ョ秺閸╃偤骞嬮悩顐壕闁挎繂绨肩花浠嬫煕婵犲嫬浠辨慨濠冩そ閹虫牠鍩為敐鍛Ш闁诡喗锚椤繈顢栭懞銉р偓娲⒑閻熸澘鈷旂紒顕呭灦閸╂盯骞掗幊銊ョ秺閺佹劙宕ㄩ鍏兼畼闂備礁鎽滈崰鎾诲磻閻愬灚宕叉繛鎴炵鐎氭氨鎲歌箛娑欏仼闁汇垻顣介崑鎾舵喆閸曨剛顦ㄧ紓渚囧枛閻倿宕洪妷锕€绶為柟閭﹀墻濞煎﹪姊洪幎鑺ユ殰闁稿鎹囬弻鐔虹矙閸喗娈诲┑顔硷攻濡炶棄鐣烽妸锔剧瘈闁告劦鐓堝Σ閬嶆⒒娴e懙鍦崲閹寸姷鐭欓柟鎹愵嚙缁犳煡鏌曡箛瀣偓鏇㈢嵁閵忥紕绠鹃柟瀵稿仧閹冲懘鏌涘鍡曢偗婵﹥妞藉畷婊堝箵閹哄秶鍑圭紓鍌欐祰椤曆囧疮閺夋垹鏆︾€规洖娲﹂崰鍡涙煕閺囨娅冪紒銊ヮ煼濡懘顢曢姀鈥愁槱闂佽鎮傜粻鏍嵁濡ゅ懏鍋愰柣顐墮闁帮絽鐣烽幆閭︽闂傚⿴鍓﹂崜姘跺Φ閸曨垰顫呴柍鈺佸暟椤︽澘顪冮妶鍐ㄧ仾妞ゃ劌妫濋獮蹇涘川閺夋垹顦梻濠庡亽閸樼偓寰勯敓锟�
闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧湱鈧懓瀚崳纾嬨亹閹烘垹鍊炲銈嗗笒椤︿即寮查鍫熷仭婵犲﹤鍟扮粻缁橆殽閻愭潙鐏村┑顔瑰亾闂侀潧鐗嗛幊鎰版偪閳ь剚淇婇悙顏勨偓鏍涙担鑲濇盯宕熼浣稿妳婵犵數濮村ú锕傚煕閹寸姵鍠愰柣妤€鐗嗙粭鎺懨瑰⿰鈧崡鎶藉蓟濞戙垺鍋愰柛鎰级鐠囩偤鎮楃憴鍕闁搞劌娼¢悰顔碱潨閳ь剟鐛崶銊﹀闁荤喐婢橀崢鐐测攽閿涘嫬浜奸柛濠冪墵瀹曟繈骞嬮敃鈧崹鍌炴煕閿旇骞橀柣顓炵墛閵囧嫰寮村Δ鈧禍鎯р攽椤旂》鏀绘俊鐐舵铻為柛鎰╁妷濡插牊绻涢崱妯曟垿藟閿濆鈷掑ù锝呮嚈瑜版帗鏅濋柕鍫濐槹閸婅埖绻濋棃娑卞剱闁稿鏅犲娲垂椤曞懎鍓抽梻鍌氬鐎氼喚妲愰幒鏂哄亾閿濆簼绨藉ù鐘灮閳ь剝顫夐幐绋课涘┑鍡╂綎闁惧繐婀辩壕鍏间繆椤栨碍鎯堟い顐㈢Т椤啴濡堕崱妯锋嫻闂佺粯顨嗗ú鏍х暤閸曨偀鏀介柣鎰级閳绘洖霉濠婂嫮绠為柟顕嗙節閹垽宕楅懖鈺佸箺闂備礁鎼崐鍦偓绗涘洤绠熼柟闂寸劍閻撶喐銇勯幘璺轰哗閻庢氨澧楅妵鍕敇閳ュ啿濮峰銈忕畳濞呮洟濡甸崟顖毼╅柕澹啠鍙洪柣搴㈩問閸n噣宕戞繝鍥モ偓浣割潩鐠鸿櫣鍔﹀銈嗗笒鐎氼喖鐣垫笟鈧弻鐔兼倻濮楀棙鐣剁紓渚囧亜缁夊綊寮诲鍫闂佸憡鎸鹃崰搴敋閿濆绀冩繛鏉戭儏閻楁岸姊洪崜鎻掍簽闁哥姵鎹囧畷銏ゆ偨閸涘ň鎷洪柣鐘叉礌閳ь剙纾禒顓炩攽閻橆喖鐏弸顏呫亜閿濆懏鍋ユ慨濠勭帛閹峰懘鎼归悷鎵偧闂備浇顫夐幃鍌滅不閺嵮呮殾濞村吋娼欑粻娑㈡煛婢跺寒鍤﹂柨鏇炲€归悡鏇㈡煛閸ャ儱濡奸柣蹇涗憾閺屸剝鎷呯粙鎸庢闂侀潧娲ょ€氫即鐛崶顒€鐓涘ù锝堟〃閹絿绱撻崒娆掑厡濠殿喗鍎抽悾鐑芥偨閸偒娼熼梺瑙勫劤閻°劍鍒婇幘顔界厽闁靛牆楠搁悘鐘绘煕濮楀牏绡€婵﹨娅g划娆戞崉閵娧屽敼闂備焦瀵уú蹇涘垂瑜版帩鏁嬮柨婵嗘缁♀偓濠殿喗锕╅崢钘夆枍濠婂嫮绡€闁靛骏绲介悡鎰版嫅闁秵鐓涢柛婊冨暟缁夘喗鎱ㄦ繝鍛仩缂佽鲸甯掕灒闁告繂瀚峰ḿ鏃傜磽閸屾瑦顦烽柣鎺炵畵楠炴劙骞庨悾灞界ウ闂佸湱澧楀妯肩矆閸愨斂浜滈柡鍐ㄦ肠閹烘绠繛宸簼閳锋垿鏌ゆ慨鎰偓鏇㈠几閹寸偟绡€闁靛繆鍩楅鍕カ缂傚倸鍊烽悞锕佸綘婵炲瓨绮嶇划鎾诲蓟閻旇 鍋撳☉娆嬬細缂佺姰鍎叉穱濠囶敍濡も偓娴滈箖姊婚崒娆掑厡缂侇噮鍨辩粭鐔肺旈崨顓㈡7闂佹寧绻傞ˇ鍗炵暤娓氣偓閹鏁愭惔鈩冪亶闂佸搫鎳忕换鍫ュ蓟瀹ュ牜妾ㄩ梺鍛婃尰缁嬫捇宕氶幒鏃€瀚氭繛鏉戭儐椤秹姊洪棃娑氱畾婵$嫏鍥х濠电姵纰嶉埛鎴︽煕閹炬潙绲诲ù婊呭仱閺屾盯鎮╅搹顐㈢3闂佺硶鏅涢敃顏勵嚕閹绢喖顫呴柨娑樺楠炲牆鈹戦悩鍨毄濠殿喗鎸冲畷鎰板锤濡も偓閻鏌涢弴銊ュ闁告瑥绻愰埞鎴︽偐閹绘帩浼€闁汇埄鍨遍惄顖炲蓟閻旈鏆嬮柣妤€鐗嗗▓妤呮⒑閸︻厼甯剁紓宥咃躬閹即顢欓懞銉ュ妳闂佽鍎抽崢鏍ㄧ珶閺囩喓绡€闁汇垽娼у瓭濠电偠顕滅粻鎾诲箖閳ユ枼妲堥柕蹇ョ磿閸樺崬鈹戦悙鏉戠仴鐎规洦鍓熷鎼佸Χ閸モ晝锛滈梺缁橈耿濞佳勭闁秵鐓涢悘鐐靛亾缁€瀣偓瑙勬礋娴滆泛顕i幘顔藉亹闁圭粯甯╅悗瀵哥磽閸屾艾鈧兘鎳楅崜浣稿灊妞ゆ牗绮嶅畷鏌ユ煕椤愶絿绠橀柡鍡畵閺屾盯顢曢敐鍡欘槰闂佹悶鍊曢澶愬蓟濞戔懇鈧箓骞嬪┑鍛嚬闂備胶绮换鎰不閹炬剚娼栧┑鐘宠壘绾惧吋绻涢崱妯虹劸婵″樊鍣e铏规喆閸曨厹鍋為梺閫炲苯澧茬紒澶樺枛鐓ゆい蹇撴噺濞呭洭姊虹粙鎸庢拱闁煎綊绠栧畷鎴濐吋婢跺鎷烘繛鏉戝悑閻熝囧礆閺夋鐔嗛悹铏瑰劋閸犳ḿ鈧娲橀崹鍧楃嵁濮椻偓楠炲洦鎷呴悷鏉垮帪濠碉紕鍋戦崐鏍箰妤e啫纾绘繛鎴欏灩缁犳椽鏌i姀鐘冲暈闁抽攱鍨块弻娑樷攽閸℃浠惧┑鐘亾濞寸厧鐡ㄩ悡鐔兼煃閸濆嫸宸ラ柣蹇ョ畵閺岋絽鈽夐崡鐐寸亪闁句紮绲介妴鎺戭潩閻撳海浠柣搴ㄦ涧閻倿寮婚敐澶嬪亹闁告瑥顦遍埞娑㈡倵濞堝灝鏋熼柟姝屽吹缁晠鎮㈤悡搴″祮闂侀潧绻嗗褔骞忕紒妯肩閺夊牆澧介崚浼存煙鐠囇呯瘈妤犵偛妫濆畷濂稿Ψ閿旀儳骞楁俊鐐€栭幐楣冨磿閹邦儵鐔煎焵椤掆偓铻栭柣姗€娼ф禒婊呯磼缂佹﹫鑰跨€殿噮鍋婇獮妯肩磼濡粯顏熼梻浣芥硶閸o箓骞忛敓锟�
闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻瀵割槮缁惧墽鎳撻—鍐偓锝庝簼閹癸綁鏌i鐐搭棞闂囧鏌ㄥ┑鍡欏妞ゅ繒濮风槐鎺楀焵椤掍胶绡€闁稿本顨嗛弬鈧梻浣虹帛钃辩憸鏉垮暣閸┾偓妞ゆ巻鍋撴い鏇ㄥ幘濡叉劙骞橀幇浣瑰兊闁哄鐗勯崝宀勫几閹达附鈷戦柛婵嗗閺嗘瑩鏌eΔ鈧€氫即宕洪埀顒併亜閹达絾纭剁紒鎰⒒閳ь剚顔栭崰鏇犲垝濞嗘挶鈧礁顫滈埀顒勫箖濞嗘挻鍤戦柛銊︾☉娴滈箖鏌涢…鎴濇灀闁衡偓娴犲鐓ユ繛鎴灻鈺伱归悩娆忔噽绾惧吋銇勯弴鐐村櫣闁诲骏濡囬埀顒侇問閸n噣宕戞繝鍥х畺闁冲搫鍟扮壕鍏间繆椤栫偞鏁遍悗姘偢濮婂宕掑▎鎴g獥闂佺ǹ顑呭Λ婵嗙暦閹存績妲堥柕蹇娾偓铏吅婵$偑鍊栭悧妤冪矙閹烘垟鏋嶉柣妯煎仺娴滄粓鏌¢崒娑卞劌婵炶偐鍠庨湁婵犲﹤瀚惌瀣煏閸パ冾伃妤犵偞岣块幑鍕姜閻楀牆濯伴梻鍌欒兌鏋い鎴濆暣瀹曟洟骞庨挊澶屽姦濡炪倖甯掗崰姘缚閹邦厾绠鹃柛娆忣槺閻帗顨ラ悙璇ц含妤犵偞岣块幏鐘绘嚑椤掆偓瀵劌鈹戦悩顔肩伇婵炲绋栨晶婵嬫⒑閸濆嫷鍎忛梺甯秮瀵鎮㈤崗鑲╁姺闂佹寧娲嶉崑鎾绘煛鐎n偆銆掔紒杈ㄥ浮楠炴捇骞掗幘鍏呮樊婵犳鍠栭敃銈夆€﹀畡鎵殾闁圭儤鍨熼弸搴ㄦ煙鐎涙ḿ绠撴い顒€顦靛缁樻媴缁涘娈愰梺鍝ュУ閻楃娀骞冮妷鈺傚亗閹艰揪绲惧▓楣冩⒑閸︻厼顣兼繝銏★耿瀹曪繝骞庨懞銉у幗闂婎偄娲﹂崙褰掑吹濞嗘垹纾界€广儱鎷戦煬顒侇殽閻愭彃鏆欐顏冨嵆瀹曞ジ鎮㈡搴㈩€嶆繝鐢靛О閸ㄧ厧鈻斿☉銏″剹闁割偁鍎遍懜褰掓煟閵忕姵鍟為柍閿嬪灴閹綊宕堕妸銉хシ闂佹悶鍊涙禍顒傛閹炬剚鍚嬮柛娑卞櫘濡箓鎮楃憴鍕;闁告鍟块锝嗙鐎e灚鏅濋梺闈涚墕鐎氼噣鎮峰┑瀣拻濞达絽鎲¢幆鍫ユ偠濮樼厧浜扮€规洘娲熷濠氬Ψ閿曗偓娴滄鈹戦悙鍙夘棞缂佸墎鏌夐妵鎰板箳閹惧厖绨甸梺纭呭閹活亞寰婃ィ鍐ㄧ疅闁绘挸绨堕弨浠嬫煟閹邦厽缍戞慨锝呮閺屾盯濡烽敐鍛瀷闂佸憡锕㈠ḿ褔鈥旈崘顔嘉ч柛鈩冿供濮婂潡鎮楃憴鍕闁轰礁鎽滈崚鎺楁晲婢跺﹦鐫勯梺閫炲苯澧存鐐茬墦婵℃悂鏁傞崜褏妲囬梻浣告啞娓氭宕抽鐣岊浄闁冲搫鎳忛埛鎴︽煕濞戞﹫鍔熷褜鍓熼弻锝呂旈崘銊愩垺銇勯弴顏嗙М妤犵偞锕㈤、娆撴寠婢跺鐩庨梻鍌欑閹诧紕缂撻崸妤€纾块弶鍫氭櫅缁躲倝鏌涢…鎴濇灀闁衡偓娴犲鐓ユ繛鎴灻鈺伱瑰⿰鍐﹀仮闁哄本绋掔换婵嬪礃閵娧傜礉闁诲氦顫夊ú婊堛€佹繝鍥﹂柟鐗堟緲缁犳娊鏌熼幆褏鎽犻柣婵囩墬娣囧﹪鎮欓鍕ㄥ亾閺囩姵宕查柟鎵閸嬪鏌涢弴銊ョ仩闁绘帒鐏氶妵鍕箣閿濆棛銆婂銈忚缁犳捇寮诲鍥ㄥ珰闁哄被鍎卞鏉课旈悩闈涗沪闁挎岸鏌i敐鍥у幋鐎规洖鐖奸幊婊堝极鐏炵喎鍟犻弨浠嬫煥濞戞ê顏╁ù婊冦偢閺屾稒绻濋崘顏勨拰濡ょ姷鍋為崝鏍Χ閿濆绀冮柕濞у懎鐐婇梻浣烘嚀閸氬鎮鹃鍫濈鐎广儱顦壕濠氭煟閺冨浂鍟忕憸鐗堝笚閸嬪倿骞栨潏鍓хɑ闁规彃銈稿娲箮閼恒儲鏆犻梺鎼炲妼濞尖€愁嚕鐠囨祴妲堟俊顖炴敱椤秴鈹戦绛嬫當闁绘锕顐c偅閸愨晝鍘介柟鑹版彧缁辨洘绂掑☉銏$厽闁绘柨寮跺▍濠勨偓娈垮枦椤曆囶敇婵傜ǹ閱囨い鎰剁秵閳ь剙娲缁樻媴閸涘﹤鏆堥梺瑙勬倐缁犳牕鐣烽悧鍫熷劅妞ゎ厽鍨堕弲顏堟⒑閹稿海绠撴俊顐g〒瀵囧焵椤掆偓閳规垿顢欓弬銈勭返闂佸憡枪濡嫰鍩㈠澶婎潊闁靛牆妫岄幏娲煟閻樺厖鑸柛鏂胯嫰閳诲秹骞囬悧鍫㈠幍闂佸憡鍨崐鏍偓姘炬嫹
婵犵數濮烽弫鍛婃叏閻戣棄鏋侀柛娑橈攻閸欏繘鏌i幋锝嗩棄闁哄绶氶弻娑樷槈濮楀牊鏁鹃梺鍛婄懃缁绘劙婀侀梺绋跨箰閸氬绱為幋锔界厱闁靛ǹ鍎遍埀顒€顭烽獮澶愬箹娴g懓浜遍梺鍓插亝缁诲嫰鎮烽弻銉︹拺缂佸灏呭銉╂煟閺嵮佸仮鐎殿喛顕ч埥澶愬閳哄倹娅囬梻浣虹帛钃辩憸鏉垮暞閹便劍鎯旈妸锔规嫼濠殿喚鎳撳ú銈夊焵椤掍緡娈滅€规洘鍨块獮姗€鎳滈棃娑樼哎婵犵數濞€濞佳囶敄閸℃蛋澶愬醇閻旇櫣顔曢梺鐟扮摠缁诲倿鎳滆ぐ鎺撶厱闁圭偓褰冨畵鍡樻叏婵犲啯銇濈€规洏鍔嶇换婵嬪川椤撗勵棨缂傚倸鍊搁崐鍝ョ矓閹绢喗鏅濇い蹇撶墛閸嬫ɑ銇勯弴妤€浜鹃悗娈垮枙缁瑦淇婇幖浣规櫆闁告搩鐏濋妶澶嬧拻濞达絽鎲¢崯鐐烘煙缁嬫寧顥㈢€规洏鍎甸弻銊р偓锝庝簽娴犲摜绱撴担铏瑰笡缂佽鍊块崺銏ゅ箻鐠囨彃鐎銈嗘煥瑜扮偤宕Δ鍛拻濞撴埃鍋撴繛浣冲洦鍋嬪┑鐘叉搐缁犳牠鏌涚仦鎯у毈闁搞倖娲栭埞鎴︽偐瀹曞浂鏆¢梺绋款儏鐎氫即寮婚敐澶婄闁诲繑妞挎禍顏勵嚕閹间礁纾奸柣鎰ˉ閹锋椽姊洪崨濠勨槈闁挎洏鍎插鍕礋椤栨稓鍘遍柣搴秵娴滄粓顢旈浣典簻闁靛牆鎳庨埀顒€鐏濋~蹇旂節濮橆剛锛滃┑鐐叉閸╁牆危椤曗偓濮婅櫣娑甸崪浣告疂缂備胶绮换鍌炴偩瀹勬噴娲敂閸曨収妲版俊鐐€栧Λ渚€宕戦幇鐗堟櫖婵炴垯鍨洪埛鎴︽煟閻斿憡绶查柍閿嬫⒒缁辨帡顢氶崨顓犱桓闂佽鍣换婵嬪箖閵忋倖鍋傞幖杈剧秵閸熷洦绻濋悽闈涘壋缂傚秴妫濆畷婊冣枎閹惧磭鍔﹀銈嗗灦閸庢娊鍩€椤掍焦绀€闁绘粌顭峰畷绋课旈埀顒傜不濞戙垺鐓熸俊銈傚亾闁绘绻樺畷銏ゆ濞戣鲸瀵岄梺闈涚墕濡瑩藟閸℃稒鐓曢悗锝庡亜婵秶鈧娲樺浠嬪极閹版澘鐐婇柨婵嗘噸婢规洟鏌i悢鍝ユ噧閻庢凹鍘剧划鍫ュ礃閳哄啰顔曢梺鑲┾拡閸撴瑩寮稿☉銏$厽婵炴垵宕弸鐔兼煙椤栨稒顥堝┑鈩冩倐閺佸啴鍩€椤掑嫭鍎岄柛鏇ㄥ墰缁♀偓闂侀潧楠忕徊鍓ф兜妤e啯鐓犳繛鑼额嚙閻忥箓鏌e☉鍗炴珝妤犵偞甯掕灃濞达絽寮剁€氳棄鈹戦悙鑸靛涧缂佸弶瀵ч悘娆撴⒑鐠団€虫灍闁搞劌婀卞Σ鎰板箳閹炬潙顎撻柣鐔哥懃鐎氼剟宕径鎰€垫繛鍫濈仢閺嬬喓鎲搁弶鍨殻闁靛牜浜濈€靛ジ寮堕幋锕€鏁规繝鐢靛█濞佳兠洪埡鍐╊偨闁靛骏绱曠弧鈧梺姹囧灲濞佳冪摥闂備焦瀵уú蹇涘磹濠靛绠栫憸搴f崲濠靛鐐婇柕濞垮劙缁ㄧ敻姊绘担鍛婃儓婵炲眰鍔戝畷浼村幢濡⒈娲稿┑鐘诧工閻楀﹪鎮″▎鎾寸厸濠㈣泛锕︽禒銏°亜閿濆棗鈻曢柡宀€鍠栭、娆撳垂椤旂粯鐫忕紓鍌欐祰妞村摜鏁敓鐘茬畺闁冲搫鍟版す宕囩棯椤撶偞鍣抽柛瀣崌瀹曠ǹ螖娴e搫骞愰梺璇茬箳閸嬫稒鏅舵禒瀣叀濠㈣泛顑冩禍婊勩亜閹板墎鎮肩紒鐘靛仦閵囧嫰濮€閳藉懓鈧潡鏌熼瑙勬珚鐎规洘锕㈠畷锝嗗緞鐏炰粙鍙¢梻鍌氬€搁崐鎼佸磹瀹勬噴褰掑炊椤掑鏅梺鍝勭▉閸樿偐绮eΔ浣虹闁规惌鍘界欢娑氱磽瀹ュ棛澧い顓℃硶閹瑰嫰鎼归崷顓濈礃缂傚倷鑳舵慨闈浳涢崘顔艰摕闁挎繂顦猾宥夋煕鐏炴崘澹樺ù鐘筹耿濮婅櫣绱掑Ο鍝勵潓闂佹寧娲╃粻鎾荤嵁婢跺瞼鐭欐繛鍡樺劤閹垿姊洪幖鐐插姉闁哄懏鐟х划顓熷緞閹邦厸鎷洪梺鐓庮潟閸婃洟寮稿☉銏$厱閻庯綆浜峰銉╂煏閸℃ê绗氱紒缁樼箓椤繈顢橀悩鎻掑闂傚倷绀佹竟濠囧磻閸涱垱宕查柛宀€鍋涘Ч鍙夌箾閸℃绠氶柡鈧禒瀣叆婵炴垶锚椤忣亝绻涢崨顔界缂佽鲸甯楀ḿ蹇涘Ω閵夛箒鐧佹俊鐐€戦崹娲偡閿斿墽绱﹂柣锝呯灱閻瑩鏌涢…鎴濇灈鐎殿喖鍢查埞鎴炲箠闁稿﹥顨嗛幈銊╂倻閽樺锛涘┑鐐村灍閹崇偤宕堕澶嬫櫖濠电娀娼ч悧鍛姳閻戣姤鈷掗柛灞剧懅椤︼箓鏌熷ù瀣⒉缂佹鍠庤灃闁告侗鍘鹃悰銉モ攽鎺抽崐鎰板磻閹剧粯鐓冮悹鍥皺鏁堟繝娈垮枓閸嬫捇姊洪棃娑氬婵☆偄鐭傞獮蹇撁洪鍛幗闂佺粯锚閸樻牠鎳滈鍫熺厱闁哄倽鍎荤€氫即鏌嶇拠鑼ф鐐叉喘閹囧醇閵忕姴绠ラ梻鍌欑閹诧繝宕归鐐茬9闁哄稁鍋€閸嬫挸顫濋悙顒€顏�