首页 > 其他分享 >基于FPGA的DDS设计,并通过DDS实现ASK,FSK,PSK三种调制

基于FPGA的DDS设计,并通过DDS实现ASK,FSK,PSK三种调制

时间:2023-04-25 23:56:40浏览次数:43  
标签:PSK 数字 波形 相位 DDS FSK 发生器 频率

1.算法仿真效果

matlab2013b+QUARTUS 7.2仿真结果如下:

 

 

 

 

然后使用DDS产生的sin曲线进行ASK,FSK,PSK调制,结果如下:

 

 

 

 

2.算法涉及理论知识概要

        随着现代电子技术的不断发展,很多应用领域对信号的频率的准确度和稳定性要求越来越高,不仅需要单一的固定频率,还需要多点频率,如短波通信接收机要求在2~30MHz的范围内提供以100Hz为间隔的280000个通信频道。一般的振荡器已不能满足要求,于是出现了高稳定和高准确的晶体振荡器。但晶体振荡器产生的只是单一频率的信号或只能在很小范围内微调。然而,在通信、雷达、仪表、宇航等领域往往需要在一定频率范围内提供一系列稳定和准确的频率,为了解决既要频率稳定准确,又要频率能在很大范围内变化的问题,于是产生了频率合成技术。

 

       直接数字频率合成技术 (Direct Digital Synthesis)完全不同于我们己经熟悉的直接频率合成技术和锁相环频率合成技术。直接数字频率合成技术(简称DDS)的理论早在七十年代就被提出。它的基本原理就是利用采样定理,通过查表法产生波形,由于硬件技术的限制,DDS技术当时没能得到广泛应用。随着大规模集成电路技术的飞速发展,DDS技术的优越性己逐步显现出来。不少学者认为,DDS是产生信号和频率的一种理想方法,发展前景十分广阔。与其他频率合成方法相比较,直接数字频率合成技术的主要优点是易于程控,相位连续,输出频率稳定度高,分辨率高。其频率分辨率可以达到10-3。而且频率转换速度快,可小于100ns,特别适宜用在跳频无线通信系统。其相位噪声主要决定于参考时钟振荡器。

 

       DDS(Direct Digital frequency Synthesis)即直接数字频率合成器,是一种新型的频率合成技术,具有较高的频率分辨率,快速的频率切换,稳定性好,可灵活产生多种信号的优点。因此,在现代电子系统及设备的频率源设计中,尤其在通信领域,直接数字频率合成器的应用越来越广泛。在数字化的调制解调模块中。DDS取代了VCO(模拟的压控振荡器),被大量应用。这种合成技术是一种利用数字技术来控制信号的相位增量的技术,它采用插值取样的方式,将要合成的正弦波波形用若干个采样点的取值来代替,然后依次等时间间隔输出这些取值,每个采样点的值由预先存储的数字值经D/A转换后得到。

 

       DDS工作原理框图如图1所示。其基本结构包括:相位累加器PA、波形查询表ROM、数模转换器DAC及低通滤波器。

 

        DDS的工作过程为:在参考时钟fc的作用下,相位累加器对频率控制字FCW(Frequency Control Word)进行线性累加,将其高W位作为地址码通过波形查值表ROM变换,产生D位对应信号波形的数字序列,再由数模转换器DAC将其转化为阶梯模拟电压波形后由具有内插作用的低通滤波器LPF将其平滑为连续的正弦波形作为输出。

 

 

 

        一个N位的相位累加器对应相位圆2N上个相位点,其最低相位分辨率为θmin=Δθ=2π/2N。在图2中N为4,则有16个相位值和16个幅度码相对应。该幅度存储于波形存储器中,在频率控制字FCW的作用下,相位累加器给出不同的相位码,对波形存储器寻址,完成相位--幅度变换,经DAC变成阶梯正弦波信号,再通过低通滤波器平滑,便得到模拟正弦波输出。

 

       自第一部正弦波发生器问世以来,函数发生器的设计已经发生了多次演进,在当前数字领域中,大多数新型函数发生器都在采用直接数字频率合成技术。DDS在大部分操作中使用数字电路,从而提供了数字操作拥有的许多优势。

 

第一,输出信号的频率精度可以达到作为发生器参考信号使用的晶体控制振荡器的水平。如果想实现更高的精度,也可以采用函数发生器本身的温度补偿晶体振荡器产生。

 

第二,DDS信号发生器的数字电路可以实现与数字电路相同的频率精度。

 

第三,如果拥有RAM波形存储器,那么DDS函数发生器可以重现几乎任何波形。因此,函数发生器现在的功能要远远超过传统函数发生器。对称性可变的波形现在已经是标配功能,另外还可以内置各种不常见的波形,如指数上升和下降型波形或正弦脉冲型波形等。但由于DDS的全数字结构,使得直接数字频率合成器不可避免的拥有以下两个缺点。

 

第一,其杂散分量丰富。这些杂散分量主要由相位舍位、幅度量化和DAC的非理想特性所引起。

 

第二,输出频带受限。由于DDS内部DAC和ROM的工作速度限制,使得DDS输出的最高频率受到极大的限制。

 

3.MATLAB/Verilog核心程序

 

function a_ASK()
i=10;
j=5000;
t=linspace(0,5,j);
fc=10;
fm=i/5;
B=2*fc;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%产生基带信号
a=round(rand(1,i));%随机序列
 
st=t;
for n=1:10
    if a(n)<1;
        for m=j/i*(n-1)+1:j/i*n
            st(m)=0;
        end
    else
        for m=j/i*(n-1)+1:j/i*n
            st(m)=1;
        end
    end
end
figure(1);
subplot(131);
plot(t,st);
axis([0,5,-1,2]);
title('基带信号');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%载波
s1=cos(2*pi*fc*t);
subplot(132);
plot(s1);
title('载波信号');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%调制
e_2ask=st.*s1;
subplot(133);
plot(t,e_2ask);
title('已调信号');

 

  

 

标签:PSK,数字,波形,相位,DDS,FSK,发生器,频率
From: https://www.cnblogs.com/51matlab/p/17354381.html

相关文章

  • UM2080F32 基于 ARM Cortex-M0+内核的超低功 耗、高性能的、单片集成 (G)FSK/OOK 无线
    UM2080F32基于ARMCortex-M0+内核的超低功耗、高性能的、单片集成(G)FSK/OOK无线收发机的32位SoC芯片。UM2080F32工作于200MHz~960MHz范围内,支持灵活可设的数据包格式,支持自动应答和自动重发功能,支持跳频操作,支持FEC功能,同时内部集成了完整的射频接收机、射频发射机......
  • ZLMediaKit实现按需拉流时rtsp流地址不对addStreamProxy返回0,接口流id参数踩坑记录
    场景开源流媒体服务器ZLMediaKit在Windows上运行、配置、按需拉流拉取摄像头rtsp视频流)并使用http-flv网页播放:开源流媒体服务器ZLMediaKit在Windows上运行、配置、按需拉流拉取摄像头rts基于上面实现拉取视频流预览时,发现当调用api传参时如果更换了rtsp视频流地址,但是没有更改流......
  • ZLMediaKit实现按需拉流时rtsp流地址不对addStreamProxy返回0,接口流id参数踩坑记录
    场景开源流媒体服务器ZLMediaKit在Windows上运行、配置、按需拉流拉取摄像头rtsp视频流)并使用http-flv网页播放:https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/130136245基于上面实现拉取视频流预览时,发现当调用api传参时如果更换了rtsp视频流地址,但是没有更改......
  • Fast-DDS GEN using IDL
    UsingIDLtodefineadatatypeSupportedIDLtypes[https://fast-dds.docs.eprosima.com/en/latest/fastddsgen/dataTypes/dataTypes.html]PrimitivetypesIDLc++11charcharoctetuint8_tshortint16_tunsignedshortuint16_tlongint32_t......
  • FastDDS implementation
    TheDCPSconceptualmodelDDSisaData-CentricPublishSubscribe(DCPS)model,andthreekeyapplicationentitiesaredefinedinitsiimplementation:publiucationentitiesSbuscriptionentitiesconfigurationentitiesPublisher:ItimplementsDataWriter......
  • addScalar的用法与作用
    作用:1.提高性能2.指定要返回哪几个字段,为指定的不返回(主要用于select*查询全部)3.也可指定返回字段的具体类型详细讲解如下:最基本的SQL查询就是获得一个标量的列表:session.createSQLQuery("select*fromperson_inf").list();session.createSQLQuery("selectid,name,age......
  • [FASTDDS]01-FastDDS简介
    01-FastDDS简介本节介绍DDS和RTPS的概念。本文章来源于fastdds官网中的WhatisDDS和WhatisRTPS章节1.1什么是DDSDataDisrubutionService(DDS)——数据分发服务——是一个用来进行分布式软件应用通信的协议。它描述了数据提供者和数据消费者之间的通信API以及通信语......
  • fastdds学习之4——RTPS层
    FastDDS的较低层RTPS层是RTPS标准协议的实现。与DDS层相比,该层提供了对通信协议内部的控制,因此高级用户对库的功能有更精细的控制。1、与DDS层的关系此层的元素与来自DDS层的元素进行一对一的映射,并添加了一些内容。此对应关系如下表所示:DDSLayerRTPSLayerDomainR......
  • fastdds学习之4——DDS层
    eProsimaFastDDS公开了两个不同的API,以在不同级别与通信服务交互。主要API是数据分发服务(DDS)数据中心发布订阅(DCPS)平台独立模型(PIM)API,简称DDSDCPSPIM,由FastDDS遵循的数据分发服务1.4版规范定义。本节旨在解释FastDDS下此API的主要特性和使用模式,并对其分为五个模块进行深入......
  • fastdds学习之3——库概览
    FastDDS(前身为FastRTPS)是DDS规范的高效高性能实现,DDS规范是一种用于分布式应用软件的以数据为中心的通信中间件(DCPS)。本节回顾FastDDS的体系结构、操作和关键特性。1、架构FastDDS的架构如下图所示,其中可以看到具有以下不同环境的层模型。ApplicationLayer:使用FastDDSA......