数字频率合成器dds的量化性能分析matlab仿真

news2024/9/24 17:13:47

目录

1.课题概述

2.系统仿真结果

3.核心程序与模型

4.系统原理简介

4.1 DDS的基本原理

4.2 DDS的量化性能分析

5.完整工程文件


1.课题概述

        数字频率合成器dds的量化性能分析matlab仿真,分别定义累加器位宽,截位位宽,模拟DAC位宽等,分析不同的量化位宽对DDS信号输出频谱的影响。

2.系统仿真结果

放大看:

放大看:

放大看:

3.核心程序与模型

版本:MATLAB2022a

...................................................................
Yo_err  = mod(n*K,2^(Wbits-Wmsb));
%相位映射输出
Yo_phase= cos(2*pi*(Yo_adder-Yo_err)/(2^Wbits));     
%量化
Q_interval = [-1+1/(2^(Wdac-1)) : 1/(2^(Wdac-1)) : 1-1/ (2^(Wdac-1))]; 
%量化码本值
cb         = [-1+1/(2^Wdac)     : 1/(2^(Wdac-1)) : 1-1/(2^Wdac)]; 
%频偏分析
[Pxx1,wx1]   = periodogram(Yo_phase,[],'onesided',pp);

figure;
subplot(211);
plot(Yo_phase);title('进行10bit DAC位宽截取');
xlim([0,200]);
subplot(212);
psdplot(Pxx1/max(Pxx1),wx1);



Yo2     = cos(2*pi*Yo_adder/(2^Wbits));
%量化
[~,Yo3] = quantiz(Yo2,Q_interval,cb);
%频偏分析
[Pyy2,wy2]= periodogram(Yo3,[],'onesided',pp);

figure;
subplot(211);
plot(Yo3);title('不进行位宽截取');
xlim([0,200]);
subplot(212);
psdplot(Pyy2/max(Pyy2),wy2);

%量化
[~,Yo4]   = quantiz(Yo_phase,Q_interval,cb);
 %频谱分析;
[Pzz3,wz3]= periodogram(Yo4,[],'onesided',pp);   

figure;
subplot(211);
plot(Yo4);title('进行相位位宽截取');
xlim([0,200]);
subplot(212);
psdplot(Pzz3/max(Pzz3),wz3);24

4.系统原理简介

        数字频率合成器(Direct Digital Synthesizer, DDS)是一种用于生成精确频率信号的电子设备。与传统的模拟频率合成方法相比,DDS具有频率分辨率高、频率切换速度快、相位连续可调等优点。DDS的核心是一个相位累加器和一个波形查找表(Look-Up Table, LUT),通过将相位累加器的输出作为查找表的地址,可以实时生成任意频率和相位的数字波形。

4.1 DDS的基本原理

       DDS的基本原理是利用数字信号处理技术来生成所需的模拟信号。DDS主要由相位累加器、波形查找表、数模转换器(DAC)和低通滤波器(LPF)等部分组成。DDS的输出信号可以表示为:

       相位累加器:相位累加器是DDS中的核心部分,用于实现相位的线性递增。在每个时钟周期,相位累加器将其输出与频率控制字(Frequency Control Word, FCW)相加,得到新的相位值。相位累加器的位数决定了DDS的频率分辨率和最大输出频率。

相位累加器的输出可以表示为:

波形查找表:波形查找表存储了预先计算好的波形数据(通常是正弦波或余弦波)。相位累加器的输出作为查找表的地址,用于从查找表中读取相应的波形数据。查找表的大小和深度决定了DDS的波形质量和内存需求。

数模转换器(DAC):DAC将查找表输出的数字波形转换为模拟信号。DAC的分辨率和线性度直接影响DDS输出信号的精度和失真。

低通滤波器(LPF):由于DAC输出的信号包含高频分量(量化噪声和采样频率的谐波),因此需要通过低通滤波器来滤除这些不需要的频率成分,得到平滑的模拟信号。

4.2 DDS的量化性能分析

DDS的量化性能主要包括频率分辨率、杂散性能和噪声性能等方面。

频率分辨率:DDS的频率分辨率是指DDS能够分辨的最小频率间隔。频率分辨率与相位累加器的位数和DDS的时钟频率有关。

其中,N 是相位累加器的位数。增加 N 可以提高频率分辨率,但也会增加硬件复杂性和成本。

杂散性能:杂散是指DDS输出信号中除了所需频率成分以外的其他频率成分。杂散主要来源于相位截断误差、幅度量化误差和DAC的非线性。

为了改善杂散性能,可以采取增加相位累加器和查找表的位数、优化DAC的设计和使用高性能的低通滤波器等措施。

  • 相位截断误差:由于相位累加器的位数有限,相位值会被截断,导致相位不连续和周期性误差。这种误差会在输出频谱中产生杂散。
  • 幅度量化误差:查找表中的波形数据是有限精度的,因此会引入幅度量化误差。这种误差也会在输出频谱中产生杂散。
  • DAC的非线性:DAC的非线性会导致输出信号的失真和谐波成分。

噪声性能:DDS的噪声主要来源于DAC的量化噪声和系统的热噪声。量化噪声是由于DAC的有限分辨率引起的,而热噪声是由于电子器件的热运动引起的。

噪声性能可以通过信噪比(Signal-to-Noise Ratio, SNR)来衡量。SNR定义为信号功率与噪声功率之比。提高SNR可以通过增加DAC的分辨率、优化电路设计和降低系统温度等方法实现。

5.完整工程文件

v

v

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1403970.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

excel学习1

直接ctrl cctrl v会报错位移选择粘贴时用123那个数字粘贴而不是ctrl V 只要结果不要公式 上面复制的为数值这里是复制的公式他们两个不一样 这个方法太麻烦了直接用格式刷,选择一个区域一个单元格,不要选择多个一刷就出来了 第一个计算后向下拖就行了&…

开发实践8_REST

一、Django REST Framework, Django View & APIView MTV模式实现前后端分离。Representational State Transfer 表现层状态转化。Representation 资源(Resource a specific info. on net.)具体呈现形式。ST 修改服务端的数据。修改数据 POST请求。…

【AI Agent系列】【MetaGPT】7. 一句话订阅专属信息 - 订阅智能体进阶,实现一个更通用的订阅智能体

文章目录 0. 前置推荐阅读1. 本文内容2. 解析用户指令(分析用户需求)2.1 完整代码及注释2.2 运行结果 3. 利用大模型写爬虫代码3.1 对html内容进行精简3.2 利用大模型写爬虫代码3.3 补充代码,测试本节程序3.4 运行结果及踩坑3.4.1 运行结果3.…

开始学习vue2基础篇(指令)

一、 内容渲染指令 > {{}} 模板渲染(模板引擎) 1. {{数据绑定}} 2. {{简单计算}} 3. {{简单逻辑运算}}(三元运算) 4. {{做简单 js 判断}} 注意:不能写语句、不能解析 html 渲染、不能放在在属性身上 > v-…

40. 组合总和 II - 力扣(LeetCode)

题目描述 给定一个候选人编号的集合 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。 candidates 中的每个数字在每个组合中只能使用 一次 。 注意:解集不能包含重复的组合。 输入示例 candidates [10,1,2,7,…

如何使用WinSCP公网远程访问本地CentOS服务器编辑上传文件

文章目录 1. 简介2. 软件下载安装:3. SSH链接服务器4. WinSCP使用公网TCP地址链接本地服务器5. WinSCP使用固定公网TCP地址访问服务器 1. 简介 ​ Winscp是一个支持SSH(Secure SHell)的可视化SCP(Secure Copy)文件传输软件,它的主要功能是在本地与远程计…

Kubernetes operator(一)client-go篇

云原生学习路线导航页(持续更新中) 本文是 Kubernetes operator学习 系列第一篇,主要对client-go进行学习,从源码阅读角度,学习client-go各个组件的实现原理、如何协同工作等参考视频:Bilibili 2022年最新k…

【MySQL进阶】锁

文章目录 锁概述全局锁语法特点 表级锁表锁意向锁 行级锁行锁间隙锁&临键锁 面试了解数据库的锁吗?介绍一下间隙锁InnoDB中行级锁是怎么实现的?数据库在什么情况下会发生死锁?说说数据库死锁的解决办法 锁 概述 锁机制:数据库…

2 - 部署Redis集群架构

部署Redis集群架构 部署Redis集群部署管理主机第一步 准备ruby脚本的运行环境第二步 创建脚本第三步 查看脚本帮助信息 配置6台Redis服务器第一步 修改配置文件启用集群功能第二步 重启redis服务第三步 查看Redis-server进程状态(看到服务使用2个端口号为成功&#…

Java线程池七大参数详解和配置(面试重点)

一、corePoolSize核心线程数 二、maximunPoolSize最大线程数 三、keepAliveTime空闲线程存活时间 四、unit空闲线程存活时间的单位 五、workQueue线程工作队列 1、ArrayBlockingQueue FIFO有界阻塞队列 2、LinkedBlockingQueue FIFO无限队列 3、PriorityBlockingQueue V…

chapter5-使用网页爬虫取利器—Requests

上篇文章我们讲解了使用Python 自带的urllib模块来爬取我们的第一个页面。但是事实上,urllib在现在的互联网公司应用的并不是最多的。今天,我们就来介绍一下目前最为流行,也是最为方面的网络爬虫框架之一的Requests 。 为什么要学习Requests…

BL120AC 工业空调网关 空调协议转Modbus协议网关

随着物联网技术的迅猛发展,人们深刻认识到在智能化生产和生活中,实时、可靠、安全的数据传输至关重要。在此背景下,高性能的物联网数据传输解决方案——协议转换网关应运而生,广泛应用于工业自动化和数字化工厂应用环境中。 钡铼…

基于jQuery与Spring MVC实现用户密码异步修改的实战演示

文章目录 一、实战概述二、实战步骤(一)创建表单1、表单界面2、表单代码3、脚本代码 (二)后端控制器(三)测试代码,查看效果1、弹出更改密码表单2、演示更改密码操作 三、实战总结 一、实战概述 …

【Java-框架-SpringSecurity】单点登录(认证和授权)- 随笔

项目文件; 【1】 【2】 【3】 【4】 【5】 【6】 【7】 【8】

Redis常见类型及常用命令

目录 常见的数据类型 一、String类型 1、简介 2、常用命令 (1)新建key (2)设值取值 ​编辑 (3)批量操作 (4)递增递减 3、原子性操作 4、数据结构 二、list类型 1、list常…

【QT+QGIS跨平台编译】之五:【curl+Qt跨平台编译】(一套代码、一套框架,跨平台编译)

文章目录 一、curl介绍二、curl下载三、文件分析四、pro文件五、编译实践 一、curl介绍 curl(CommandLine Uniform Resource Locator)主要功能就是用不同的协议连接和沟通不同的服务器,相当封装了的socket。 libcurl支持http, https, ftp, g…

软考系分之计算机网络规划设计、综合布线、RAID和网络存储等

文章目录 1、概要2、网络的三层模型3、综合布线系统4、廉价磁盘冗余阵列(RAID)5、网络存储6、总结 1、概要 本篇重点介绍计算机网络中的网络规划设计、综合布线、RAID和网络存储。 2、网络的三层模型 三层模型分为核心层、汇聚层和接入层,接…

【工具】SageMath|Ubuntu 22 下 SageMath 极速安装 (2024年)

就一个终端就能运行的东西, 网上写教程写那么长, 稍微短点的要么是没链接只有截图、要么是链接给的不到位, 就这,不是耽误生命吗。 废话就到这里。 文章目录 链接步骤 链接 参考: Install SageMath in Ubuntu 22.04We…

一、防御保护---信息安全概述

一、网络安全防御---信息安全概述 1.信息安全现状及挑战1.1 网络空间安全市场在中国,潜力无穷1.2 数字化时代威胁升级1.3 传统安全防护逐步失效1.4 安全风险能见度不足1.5 缺乏自动化防御手段1.6 网络安全监管标准愈发严苛 2.信息安全概述2.1 简介2.2 常见的网络安全…

R语言批量把数值变量和因子变量的互转

#我们以rms包的lung数据集为例 library(rms) data<-lung #这里有两种方法&#xff0c; #第1是知道需要转化的变量在哪几列&#xff1b; #第2知道需要转化的变量名 str(data) #假设我们想转化inst/status/sex/三个变量的类型 #图1先看看变量类型和处于第几列 str(dat…