DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 151|回复: 0
打印 上一主题 下一主题

基于DDS技术的BPSK信号生成

[复制链接]
跳转到指定楼层
楼主
发表于 2012-1-16 16:51:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

                      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 结束语
  该方法可操作性很强,使用简单方便,具有直观快捷、容易实现的特点,将得到广泛的应用。
            
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2026-4-23 12:48 , 耗时 0.087047 秒, 18 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表