您的位置:控制工程论坛网论坛 » 嵌入式系统 » 基于DSP Builder的Chirp信号源设计

junhong07

junhong07   |   当前状态:在线

总积分:7915  2024年可用积分:1

注册时间: 2008-01-15

最后登录时间: 2019-06-23

空间 发短消息加为好友

基于DSP Builder的Chirp信号源设计

junhong07  发表于 2009/10/2 19:21:13      959 查看 0 回复  [上一主题]  [下一主题]

手机阅读

DSP Builder是Ahera公司提供的一个系统级(或算法级)设计工具。它架构在多个软件工具之上,并把系统级(算法仿真建模)和RTL级(硬件实现)两个设计领域的设计工具连接起来,最大程度地发挥了两种工具的优势。DSP Builder可以帮助设计者完成基于FP-GA的DSP设计。除了图形化的系统建模外,DSPBuilder还可以自动完成大部分的设计过程和仿真,直到把设计文件下载至DSP开发板上。该设计采用DSPBuilder开发工具,首先实现输出频率变化可控的直接数字合成(DDS)模块;然后根据Chirp函数的变化规律,控制DDS的输出频率变化规律。

  1 Chirp函数的一般特性

  电磁波在传输过程中,经过色散介质,如不均匀的波导,在高空电离层时会发生色散现象。Chirp函数在射电天文信号的消色散处理中发挥着重要的作用,研究在FPGA中实现Chirp函数是基于FPGA的射电宇宙信号处理的重要组成部分,如图1所示。

基于FPGA的射电宇宙信号处理的重要组成部分

  根据输出频率与当前采样时刻对应递变规律,Chirp函数一般分线性(Linear)Chirp函数和非线性(Nonlinear)chirp函数两种。图2,图3是两种Chirp函数在频域上的表现图。

两种Chirp函数在频域上的表现图

两种Chirp函数在频域上的表现图

  从图2,图3可以看出,Chirp函数的频率输出与时间关系f-t关系可以总结为:对于线性Chirp函数,在连续域时间域内有关系式:

公式

  式中:k为常数;f0为初始输出频率;t为连续时间。

  在离散时间域有关系式:

公式

  式中:k为常数;f0为初始输出频率;n为采样点。

  对于非线性Chirp函数,在连续域时间域内有关系式:

公式

  式中:f(t)为非线性函数;f0为初始输出频率;t为连续时间。

  在离散时间域有关系式:

公式

  式中:f(n)为非线性函数;f0为初始输出频率;n为采样点。

  2 DDS模块的设计

  数字式频率合成器(DDS)模块的工作原理是:将0~2π的正弦函数值分为N份,将各点的幅度值存入ROM中,再用一个相位累加器每次累加相位值ωT,得到当前的相位值,通过查找ROM得到当前的幅度值,其系统框图如图4所示。

DDS系统结构图

  DDS的主要参数包括:系统时钟频率、频率控制字长、频率分辨率、ROM单元数、ROM字长。该设计的DDS是10位的,时钟频率为转化为VHDL文件后的输入时钟频率。这是一个很灵活的输入频率。在此,假设输入频率为fin,频率控制字长为16位,ROM单元数为210,ROM字长为9位,而且频率分辨率为:

  式中:fc为系统时钟频率。

  频率控制字为:

公式

  式中:f为要合成的频率;T为系统时钟。可见,当输入频率控制字发生变化时,输出频率fout也发生相应的变化,从DDS到Chirp信号源的设计就是基于这一思想,如图5所示。

DDS在DSP Builder下的实现图

  其中,输入端口1为初始相位控制字输入端,它的输入值决定了信号源的初始输出相位。输入口2为频率控制字FTW输入端,若在该输入端写入不同的频率控制字值,则可以在输出端口得到不同的输出频率。输入端口3为初始频率控制字输入端,它的输入值决定了信号源的初始偏置频率。

  LUT为正弦数据查找表模块(Look Up Table)。根据DSP Builder的算法将一个完整的正弦波周期进行1 024次采样,并存储于LUT中。在Matlab中设置Matlab array:511*sin([0:2*pi/(2^10):2*pi]),左边的输入端为查找数据的地址输入端,右边的输出端为离散正弦波信号输出端。

  第一个并行累加器模块(Parallel Adder Subtrac-tor)作为相位累加器,采用Altera提供的总线结构(AltBus)模块决定了该累加器的长度为16位,即该累加器最大可输出范围为216,由此决定了公式(5)。

  第二个并行累加器模块(Parallel Adder Subtractor1)作为初相位偏置累加器,将初相位控制字与频率控制字累加,为输出频率提供一个初始偏置相位。

  第三个并行累加器模块(Parallel Addersubtractor 2)作为初始频率偏置累加器,给输入的频率控制字提供一个偏置,是输出频率从一个用户自己可定义的初始频率开始变换运行。

  利用总线位宽转换模块(Bus Conversion)只取出总线信号的高10位,用作驱动数据查找表模块的地址驱动信号。为了方便下一步设计,将图5封装成子系统模块(Subsystem Block),并命名为:DDS_Subsystem,如图6所示。

DDS

  图6中in1为初始相位输入端,in2为输入频率控制字端,in3为初始频率输入端。

1楼 0 0 回复