0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

使用DDS将基带信号上变频

冬至子 来源:Bug记录 作者:woodfan 2023-06-19 10:51 次阅读

低通FIR将基带信号的旁瓣滤去,保留基带信号的主瓣。基带信号之所以是基带信号,正是因为它处在零中频附近。实际上,信号之所以在高频甚至射频的原因主要有:

1.接收天线的长度与电磁波的波长存在正比例关系,所以波长越小,接收天线也可以做的越小。电磁波波长与频率存在反比例关系,所以需要将基带信号上变频至高频部分,方便天线接收。

2.方便扩展信号带宽,提高频带利用率。

本文将通过DDS IP核输出的正弦波,与基带信号混频上变频至高频部分,将涉及一点数字信号处理内容。

首先,简单写一下上变频的数学理论基础,

图片

基带信号乘以一个正弦波,频域卷积,频谱上会将基带信号的频谱搬移到正弦波的频率。

所以,我们需要做的就是生成一个所需的正弦波,并与基带信号相乘。这个过程就需要使用到Xilinx的DDS IP核以及DSP IP核。

在Vivado中IP Catalog中找到DDS IP核,

图片

DDS IP核设置

系统时钟选择50MHz,通选数量选择1,其他的可以保持默认。注意Configuration Option,这里选择Phase Generator and SIN COS LUT,这个模式会根据GUI设置自动产生所需要的频率的正弦波;而另一种模式SIN COS LUT ONLY,会根据输入的相位信息phase_data输出对应的正弦波值,相位信息需要不断地自加获取输出的正弦波值。两种模式各有利弊,第一种模式设置更方便,第二种模式不需要固定输入时钟,可以改变参数获取不同的频率的正弦波。

第一种模式下,dds实例化,只需要取m_axis_data_tdata的数据即可,输出的波形按照GUI设置的要求。

dds_compiler_0 dds_inst (
.aclk(clk_50m),                                // input wire aclk
.m_axis_data_tvalid(),    // output wire m_axis_data_tvalid
.m_axis_data_tdata(cos_o),      // output wire [15 : 0] m_axis_data_tdata 13 - 2
.m_axis_phase_tvalid(),  // output wire m_axis_phase_tvalid
.m_axis_phase_tdata()    // output wire [31 : 0] m_axis_phase_tdata 
);

第二种模式下,dds实例化,需要不断地自加相位数据,DDS会根据相位数据输出对应的正弦波值。这更像ROM表,相位数据为ROM地址,根据ROM地址输出相应地址的数据。

always @ (posedge clk or posedge rst)beginif (rst)
        phase_data <= 16'd0;
else
        phase_data <= phase_data + fre_word;end
dds_compiler_0 dds_i (
.aclk(clk),                                // input wire aclk
.aclken(1'b1),                            // input wire aclken
.s_axis_phase_tvalid(1'b1),  // input wire s_axis_phase_tvalid
.s_axis_phase_tdata(phase_data),    // input wire [15 : 0] s_axis_phase_tdata
.m_axis_data_tvalid(),    // output wire m_axis_data_tvalid
.m_axis_data_tdata(t_data)      // output wire [31 : 0] m_axis_data_tdata);

其实DDS的原理正是ROM表存储,相位数据就是地址信息,根据地址信息查找表,输出对应数据,FPGA擅长的正是查表。第一种模式固定了相位数据和相位差,简化了操作但固定了使用时的输出频率;第二种模式开放了相位数据接口,输出的频率更加多变。

根据公式可知,

图片

上面示例中的fre_word计算来源于这个公式。

图片

DDS IP核设置

Output Selection可以选择输出的波形是Sine,Cosine,Sine and Cosine。注意选择Sine and Cosine时输出的信号宽度是Sine,Cosine的两倍,需要使用截位的方法将信号的前半段与后半段分开。高半段为Sine,低半段为Cosine。

图片

DDS IP核设置

这个部分根据需要的频率进行设置。

图片

DDS IP核设置

可以看到预想10M,但由于精度的问题,实际输出的频率是9.9999MHz,非常接近了。

接下来就是DSP IP核的使用,在Vivado中IP Catalog中找到DDS IP核。

图片

DSP IP核

使用最简单的乘法功能,其他通道不选择。

图片

DSP IP核

设定A,B的位数以及输出数据的位宽之后就完成了DSP IP核的设置。

xbip_dsp48_macro_0 dsp_product_inst (

.CLK(clk_50m), // input wire CLK

.A(fir_out[19:8]), // input wire [11 : 0] A

.B(cos_o[13:2]), // input wire [11 : 0] B

.P(out_data) // output wire [23 : 0] P

);

为了平衡性能与面积,所以A,B设置的12位输入,分别对FIR和DDS的正弦波进行了截位

由此,就完成了基带信号的上变频操作;但是,这样的上变频会带来双边带问题,占用了2倍的基带信号带宽。为了解决这个问题,又可以引入IQ调制。IQ调制如何操作以及它的原理等待后续的文章梳理。

最后,上板测试可以看到如下图所示。

图片

实测图

duc_data是搬移到高频之后的信号,最后可以对duc_data进行截位操作,以适应实际中DAC的位数限制。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 正弦波
    +关注

    关注

    11

    文章

    642

    浏览量

    55379
  • DDS
    DDS
    +关注

    关注

    21

    文章

    634

    浏览量

    152649
  • 信号处理器
    +关注

    关注

    1

    文章

    254

    浏览量

    25275
  • 电磁波
    +关注

    关注

    21

    文章

    1454

    浏览量

    53835
  • FIR滤波
    +关注

    关注

    0

    文章

    6

    浏览量

    9833
收藏 人收藏

    评论

    相关推荐

    基于数字上变频器的中频调制器

    数字上变频器是产生调制信号的一个重要环节,通过对数字中频上变频基本原理和威廉希尔官方网站 特点的研究,采用ADI公司AD9957数字上变频器实现了常见的几种码速率较高的调制波形。
    发表于 07-11 11:29 3730次阅读
    基于数字<b class='flag-5'>上变频</b>器的中频调制器

    AD9789基带数字上变频频率为什么能到Fdac/16?

    关于AD9789 Datashhet EN中关于基带数字上变频的输出频率为DC to Fdac/16(The digital upconverter enables each baseband
    发表于 12-21 07:56

    有关AD9361的上变频

    下图是AD9361上变频后的频谱。现在已经知道9361内部DAC输出是10.23MHz的正弦波,然后我想上变频到1575.45MHz(我在初始化结构体里面设置的,c语言),但是测试时下图可以看到
    发表于 05-18 19:41

    AD9789基带数字上变频频率为什么能到Fdac/16

    我认为基带数字上变频的输出频率最高只能到Fdac/32.请专家帮我指出我的理解哪里出了问题?2 根据FTW的计算公式也可以看出,NCO的采样率是Fdac/16.根据采样定理,在信号不失真的情况下,能够表示的最高频率只能达到Fda
    发表于 10-25 09:25

    正交DDS信号的单边带上变频到800到2500MHz

    正交DDS信号的单边带上变频到800到2500MHz
    发表于 06-24 14:24

    多天线多载波数字上下变频的FPGA实现方法有哪些?

      数字上变频/下变频(DUC/DDC)是数字中频设计的重要组成部分,其功能是基带信号经过内插滤波后变到中频的频率,或者中频的
    发表于 08-21 06:24

    PXI 5610实现上变频信号发送

    目前需要PXI5610实现基带信号上变频输出,但是对具体需要什么设备及控制流程都不是太清晰,希望哪位大神可以给些指点或者例程。多谢
    发表于 12-01 13:33

    AD9739上变频功能实现原理是什么?

    最近在评估 AD9739, 但对其上变频功能有些疑问,请专家解答,谢谢! 1) AD9739 的上变频功能实现原理是什么? 2) 进入AD9739的信号是否必须是经过IQ正交调制后的,即必须是实
    发表于 12-14 07:23

    基于QDUC的雷达上变频电路的设计

    AD9957是一款内置14位D/A转换器的正交数字上变频器(QDUC)。介绍AD9957的结构、功能特点,并结合 单片机STC12C5410实现一种雷达上变频电路的设计。该系统不但简化老式变频电路 的复
    发表于 12-29 16:58 33次下载

    通信系统中数字上变频威廉希尔官方网站 的研究与设计

    为了通信系统中数字基带信号调制到中频信号上,采用数字上变频威廉希尔官方网站 ,通过对数字I、Q两路基带信号进行FIR成形滤波、半带插值滤波、数字混频处理
    发表于 08-29 17:28 63次下载
    通信系统中数字<b class='flag-5'>上变频</b>威廉希尔官方网站
的研究与设计

    基于FPGA的高效灵活数字上变频实现设计

    软件无线电的基本思想是把A/D变换器尽可能地靠近射频天线,用软件实现无线电系统的各种功能[1]。数字上变频器是软件无线电中发射机的核心部分,它的基本功能是增加基带信号采样率并将其上变频到载波频率上
    发表于 01-29 17:29 4136次阅读
    基于FPGA的高效灵活数字<b class='flag-5'>上变频</b>实现设计

    LT5511: 高信号电平上变频混频器 数据手册

    LT5511: 高信号电平上变频混频器 数据手册
    发表于 03-22 08:40 7次下载
    LT5511: 高<b class='flag-5'>信号</b>电平<b class='flag-5'>上变频</b>混频器 数据手册

    800-2500 MHz正交DDS信号的单边带上变频

    800-2500 MHz正交DDS信号的单边带上变频
    发表于 05-26 12:30 8次下载
    800-2500 MHz正交<b class='flag-5'>DDS</b><b class='flag-5'>信号</b>的单边带<b class='flag-5'>上变频</b>

    正交DDS信号至800至2500MHz频段的单边带上变频

    正交DDS SSB上变频到2GHz以上的相对简单和经济性应该鼓励读者考虑这种威廉希尔官方网站 添加到他们的曲目中。它在微波频率下保留了所有理想的DDS属性,同时大大减少了传统双边带混频器
    的头像 发表于 01-30 10:39 3217次阅读
    正交<b class='flag-5'>DDS</b><b class='flag-5'>信号</b>至800至2500MHz频段的单边带<b class='flag-5'>上变频</b>

    上变频和下变频的定义 下变频上变频的区别

    器(Rectifier):上变频交流电源转换为直流电。它由一组整流元件(如二极管、晶闸管等)组成,用于交流电源的正半周或负半周进行整流,产生一个具有固定方向的直流电输出。上变频
    的头像 发表于 10-05 10:01 5147次阅读