基于FPGA的MSK调制器设计与实现
2.2 差分编码器的实现
差分编码器的功能就是实现绝对码变换为相对码,在相码中,1、0分别用相邻码元电平是否发生跳变来表示。若用相邻电平发生跳变来表示码元1,则称为传号差分码,记做NRZ码。绝对码-相对码之间的关系为:bk=ak⊕bk-1 (7)
采用VHDL设计的主体代码如下:
经编译后生成元件,其波形仿真图如图4所示,由图可以得到:当start为低电平时,两路输出信号都为0;当start信号为高电平时,对输入信号(datain_a)有:datain_a=011111111001,此时dataout_a=010101010001,对输入信号(datain_b)有:d电感生产厂家atain_b=011110111101,此时Dataout_b=010100101001,由此可以得出,元件QDSP_PL实现了由绝对码到相对码的变换。
2.3 NCO的实现
2.3.1 NCO的实现原理
数控振荡器在数字中频中相对来说是比电感生产较一体电感复杂的,也是决定数字中频性能的主要因素之一,NCO的目标是产生一个理想的正弦波或余弦波,如式(8)。
式中,fL0为本地振荡频率;fs为输入信号的采样频率。大电流电感正弦波样本可以用实时计算的方法产生,但这只适用于信号采样频率很低的情况。在超高速的信号采样频率的情况下,NCO实时计算的方法是不可能实现的,此时,NCO产生正弦波样本的最有效、最简便的方法就是查表法,即事先根据不同正弦波相位计算好相应的正弦值,并按相位角度作为地址存储相应的正弦值数据,工作时,在每输入一个信号采样样本时,NCO就增加一个的相位增量,然后,按照相位累加角度作为地址,取出该地址电感器上的数值并输出到数字混频器,与信号样本相乘,其原理框图如图5所示。通过改变频率控制字,可以改变相位累加器的累加值,从而改变寻址的步进,实现不同的频率输出。
2.3.2 相位累加器的FPGA实现
相位累加器由N位加法器与N位寄存器级联构成。每来一个时钟fc,加法器将频率控制字K与寄存器输出的累加相位数据相加,再把相加后的结果送至寄存器的数据输入端。相位累加器输出的数据就是合成信号的相位,当相位累加器累加到最大值时会产生一次溢出,完成一个周期的动作。溢出频率就是NCO输出的信号频率。可用VHDL语言实现相位累加器的设计,其主要代码如下:
8位相位累加器的仿真波形如图6所示。由波形图可以看出,当k=08时,在每一个有效脉冲的作用下,输出的数值比前一个输出的数值大8;当k=09时,输出的数值比前一个输出的数值大9;结果证明,该程序实现了相位的累加。
[开关电源]求助:做开关电源三极管发烫,芯片去耦电不能发图片:(请在以下网址前加http:// 后面加?isscore=1#isScorexiangce.baidu.com/picture/album/list/3c13d34d83bfe95c16830f035625c8a75574413d自己做一个开关电源,如图所示。 两个三极管都有加散热片。 单片机P1.3口输出的是一个(用万用表测)平均值为0.2V左右的方波,TL494的11脚输出的是一个占空比很小的方波,最小值为0V
基于L4981B的APFC电路设计性能优化O 引 言 电源是每一个电子设备所必须的重要组成部分。按照国际电工委员会标准IEC 61000—3—2的要求,电子设备输入电流中谐波电流成分都有一定的限值,小功率电源可以使用简单的无源功率因数校正,即
[逆变器]又烧IR2110了!!!!用SG3525输出信号给IR2110可以正常工作,但是用信号发生器3.3V峰峰值经过三极管放大输入给IR2110不知道怎么就烧了,芯片没发热就挂了!!!大家帮忙看看,是哪里出了问题满意回复+10jy427528 查看完整内容那估计问题就出在信号发生器上,先不要接板子,单独测信号发生器的波形,我怀疑你的信号发生器设置出问题了 ...+5lfc315 查看完整内容用