2010年小学期电路综合实验——数字基带传输系统学院:信息与通信工程学院班级:学号:序号:姓名:复杂:采样判决一、实验目的(1)理解数字语音传输系统的原理和构成,以及各个功能模块的功能和实现原理。(2)掌握FPGA的设计流程和设计方法,熟练掌握应用软件QuartusII和Modelsim的使用。(3)学习并掌握FPGA的自顶向下的设计思想,并熟练使用VHDL语言编程设计芯片。(4)学会借助Matlab仿真系统进行系统各项性能的验证。(5)锻炼自身调试硬件电路板的能力,培养独立解决问题的能力。二、实验内容与实验原理主要完成对接收到的信号进行采样,并对采样值进行判决。在这次仿真设计中,噪声是当输入信号过来之后才加上的,故采样时刻取第一个非零值到来的时刻,此后每隔一定时间进行一次抽样。抽样后就进行判决,发送信号是采用双极性码,最佳的判决准则是;如果采样值大于零,则判为+1,对应单极性码的0,如果采样值小于零,则判为-1,对应1。由图2-17所示的接收信号的眼图也可以看出,判决的最佳门限为零,和理论值相同。采样判决模块的Modelsim仿真的参考结果如图2-17:图2-17采样判决模块的Modelsim仿真结果其中din是输入的34bit的信号,dout是判决输出的信号,clk是总时钟,clk_5是采样时钟,这个时钟在第一个采样点确定后才开始产生,并且频率是总时钟的五分之一,从仿真图中看出红线消失的地方就是开始采样的时刻,并且以后每五个时钟采一次样。三、实验设计以下为一个模5的加法计数器。因为滤波器要插零,所以需要一个加法器来实现对应的采样周期。其中clear为复位清零。b为输出端。architecturecountofcypjissignalb_temp:std_logic_vector(2downto0):=000;signalc:std_logic:='0';beginp1:process(clk)beginif(c='1')thenif(clk'eventandclk='1')thenifclear='0'thenb_temp=000;elsifb_temp=100thenb_temp=000;elseb_temp=b_temp+1;endif;b=b_temp;endif;endif;endprocessp1;为使程序在遇到第一个非零值时才执行后续操作所以还应设计p2如下:p2:process(clk)beginif(c='0')thenif(a=00000000000000000000000000000000)thenc='0';elsec='1';endif;endif;endprocessp2;判决:当前面条件满足后,如输入a为正,则使输出赋为1,如a为负,则输出赋为0p3:process(b)beginif(c='1')thenif(b=100)thenif(a(31)='1')thenx=0001;elsif(a(31)='0')thenx=0000;endif;endif;endif;endprocessp3;endcount;四、仿真结果五、实验中的问题及解决本次实验遇到了很多的问题,首先是对实验目的的不明确。因为整个实验包含着4各组员不同的部分,所以一开始比较混乱。后面经过老师的解释,终于明确了实验的方向。其次是实验编程过程中对vhdl语言的不理解。经过很多岔路而后看了很多相关语言的书籍后终于有了一点感觉和头绪。因为vhdl的格式与语法与以往学过的语言也有不同,所以花费了挺长的时间来适应。最后面是关于仿真知识的理解的不透彻。对于modelsim的使用方不熟悉。后面渐渐熟悉后才开始上手六、实验总结经过此次试验渐渐熟悉了fpga的设计流程和设计方法,并相应的熟悉了quartus2和modelsim等软件。锻炼了自己的编程能力以及团队协作能力。尤其是当遇到困难时千方百计找方法解决,找同学互相帮助的过程,这将会对我的以后的编程以及学习甚至以后的人生都会有很大的帮助。