DIY编程器网

标题: 基于DDS技术的BPSK信号生成 [打印本页]

作者: liyf    时间: 2012-1-16 16:51
标题: 基于DDS技术的BPSK信号生成

                      0 引言
  直接数字式频率合成器(Direct Digitalfrequency Synthesizer,DDS)是从相位概念出发,直接合成所需波形的频率合成技术。VHDL是IEEE的工业标准硬件描述语言,可描述硬件电路的功能、信号连接关系及定时关系,在电子工程领域用来描述、验证和设计电子线路,得到了广泛应用。故将VHDL语言与DDS技术结合,设计生成BPSK信号。
  1 DDS的基本原理
  DDS把一系列数字量形式的信号通过数模转换器(DAC)转换成模拟量形式的信号,其基本结构如图1。






  只要N足够大,DDS可以得到很小的频率分辨率。要改变DDS的输出频率,只要改变频率控制字K即可。
  根据Nyquist采样定理,在对连续信号进行采样的一个周期内,采样频率不能改变,故利用DDS进行信号合成时,在信号合成的一个周期内,频率控制字K不能发生变化,也就是K在每次改变之前至少应该持续2N/K个DDS时钟周期,即2N/K/fc。
  通过改变相位控制字P,可以控制输出信号的相位参数。设相位加法器的字长为M,当相位控制字由0变到P(P≠0)时,ROM的输入为相位累加器的输出与相位控制字P之和,因此,其输出的幅度值相位会增加2πP/2M,从而使最后输出的模拟信号产生相移。
  DDS输出信号的幅度可以通过在ROM之后加入一个数字乘法器来实现。幅度控制字A起到对ROM所输出的幅度值编码进行加权的作用。
  可见,当DDS的相位累加器字长和相位加法器字长确定后,通过改变K、P、A就可以有效地控制DDS输出的模拟信号的频率、相位和幅度,这就是DDS技术的调制特性。
  2 采用VHDL语言实现DDS
  为简单起见,以下所描述的DDS仅设置了频率控制字K,相位控制字P和幅度控制字A都未予以考虑,其处理可类推。DDS的输出为正弦波信号。
  由于正弦波关于π奇对称,关于π/2与3π/2偶对称,因此波形存储器(ROM)中只需存储其1/4个周期的幅度值编码。具体地,ROM中存储正弦波0~π/2相位范围内的256个采样点的幅度值,采用8位编码。而DDS的输出为9位,最高位作为符号位,用以区分幅度值的正负,“0”表示正,“1”表示负。ROM为8位地址寻址,而相位累加器的字长采用10位。最高位用以区分正弦波的前、后半周期,“0”为前半周期,幅度值为正,“1”为后半周期,幅度值为负。次高位用以区分正弦波前、后半周期的前、后1/4周期,“0”为前1/4周期,寻址地址为相位累加器的低8位,“1”为后1/4周期,寻址地址为相位累加器低8位的取反。
  用VHDL实现DDS的源程序的核心部分如下:






  3 BPSK信号的产生
  BPSK信号中,载波的相位随调制信号“1”或“0”而改变,通常用相位0和π来表示“1”或“0”。
  结合BPSK和DDS的基本原理分析可得:利用DDS技术的调制特性生成BPSK信号,只需控制DDS的相位控制字P,让其随调制信号进行变化即可。当调制信号为“0”时,载波相位为0,即相位控制字P为0;当调制信号为“1”时,载波相位为π,即相位控制字P为512。这样,通过相位累加器的输出与受控相位控制字P相加,就可得到DDS中ROM的寻址地址,从而进一步生成BPSK信号。
  利用一组随机数的二进制编码的最高位作为控制,生成BPSK信号的二进制码元。其中,采用的产生随机数算法为:定义a、b、s三个变量,将任意2个不等于0的数赋给a和b,a、b进行模2加后的结果赋给s,然后再将a的值赋给b,s的值赋给a,a和b再进行模2加,结果再赋给s,如此循环……变量s中所存储的一系列数值即可看作一组随机数,如图3。






  在Xilinx ISE 8.2i开发环境中对其进行仿真的结果如图4。






  4 结束语
  该方法可操作性很强,使用简单方便,具有直观快捷、容易实现的特点,将得到广泛的应用。
            




欢迎光临 DIY编程器网 (http://www.diybcq.com/) Powered by Discuz! X3.2