电子竞赛1——基于DDS的AM信号发生器

news2024/11/26 1:38:27

  1. 课题要求

产生AM调幅波;

要求:载波10K,被调制波1K;

短按键1(pin_143)改变该调幅波的调制度:25%、50%、75%;

长按按键1(pin_143)改变被调制信号频率:1K、1.5K、2K、2.5K;

  1. 方案设计与论证
  2. DDS工作原理

DDS建立在采样定理基础上,首先对需要产生的波形进行采样,将采样值数字化后存入存储器作为查找表,然后通过查表读取数据,再经D/A转换器转换为模拟量,将保存的波形重新合成出来。DDS与基于PLL的频率合成器相比具有简便、精确、快速、廉价和灵活等优点。

DDS基本原理框图如图2.1所示:它主要由相位累加器、波形存储器、D/A 转换器和低通滤波器构成。

QQ截图20130507181937

图2.1 DDS基本原理框图

DDS 工作时,在时钟脉冲Fs的控制下对频率控制字X 用累加器进行处理以得到相应的相位码,然后由相位码寻址波形存储器进行相位码―幅度编码变换,再经过D/A 数模变换器得到相应的阶梯波,最后经过低通滤波器对阶梯波进行平滑处理即可得到由频率控制字X决定的频率可调的输出波形。参考频率源一般是高稳定的晶体振荡器,用于DDS 中各部件的同步工作,因此DDS 输出的合成信号频率稳定度与晶体振荡器是相同的。在标准频率参考源的控制下,频率控制字X可决定相应的相位增量,相位累加器则以步长X进行线性累加,相位累加器积满时就会产生一次溢出,从而完成一个周期性动作,这个动作周期即是DDS合成信号的一个周期。

2、AM调制

AM调制可以由硬件电路实现,也可由软件实现。由于本课题采用FPGA,在使用FPGA设计DDS系统时,要在满足系统要求和保持DDS 原有优点的基础上,尽量减少硬件复杂性。因此AM调制应在FPGA内部完成,把调制信号添加直流分量后与载波相乘。所设计DDS 的系统结构框图如图1.2.2 所示:

系统结构框图

图2.2 DDS系统结构框图

取采样频率为载波频率的4倍。即Fclk=4*Fc=4*10000=40KHz。由于使用的FPGA芯片的晶振频率为20MHz,所以需要对其进行分频操作,并对每个正弦波采样256点。假设波峰为FFH,波谷为00H,每个采样点的取值可由公式Y=128*Sin(2π*)+128算出。

三、单元电路设计

3.1 DAC0832模块

DAC0832芯片以其价格低廉、接口简单、转换控制容易等优点,在嵌入式应用系统中得到广泛的应用。本设计中,DAC0832把FPGA实验板输出的8路数字信号转换成模拟信号,原理图如图3.1所示:

DAC0832

图3.1 DAC0832模块

D/A转换结果采用电流形式输出。若需要相应的模拟电压信号,可通过一个高输入阻抗的线性运算放大器实现。运放的反馈电阻可通过RFB端引用片内固有电阻,也可外接。

3.2 三阶低通滤波器

DAC0832模块输出的信号含有高次谐波分量,需要用滤波器滤除。本设计采用三阶低通滤波器,该滤波器由一个二阶巴特沃斯低通滤波器和一个一阶无源RC低通滤波器组成。其原理图如图3.2所示:

QQ截图20130507235748

图3.2 三阶低通滤波器

取截止频率略高于一次谐波频率(15.3KHz),由公式Fc1=,Fc2=,计算得R1=R2=1.8K,C1=1n,C2=33n,C3=10n,R3=4.3K。

四、软件设计

题目中要求载波的F=10khz,调制波的F分别为1khz,到2.5khz,步进为0.5khz,合成方法采取DDS数字合成方法,选择采样频率为64khz,本项目采样的FPGA板是EP2C8,实验板晶振的大小为20MHZ,为了得到精确的采样的时钟,采用PLL锁相环,DDS中rom数据选用有符号数的正弦波,数据宽度为8,深度256,DAC芯片采用DAC0832。以下是软件的框图:

FPGA资源消耗情况:

五、系统测试

1、测试仪器

直流稳压电源 GPS3303

示波器 YB4365

2、测试波形

(1)调制度

选取调制频率为1KHz,测得不同调制度的信号波形如表5-1所示:

20130507_214709

调制度:25%

20130507_214717

调制度:50%

20130507_214728

调制度:75%

表5-1 调制度

(2)调制信号频率

选取调制度为50%,测得不同调制频率下的信号波形如表5-2所示:

20130507_214717

调制信号频率:1KHz

20130507_214844

调制信号频率:1.5KHz

20130507_214901

调制信号频率:2KHz

20130507_214908

调制信号频率:2.5KHz

表5-2 调制信号频率

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

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

相关文章

【2024最新精简版】线程安全/多线程 面试篇

文章目录 一. 线程基础线程和进程什么是进程什么是线程 并发与并行的区别创建线程继承Thread类实现Runable接口实现Callable接口使用线程池 线程状态等待唤醒机制等待方法唤醒方法 二. 线程池线程池作用创建线程池线程池任务调度流程阻塞队列 BlockingQueue线程池拒绝策略核心线…

python-题库篇-Python语言特性

文章目录 Python语言特性1 Python的函数参数传递2 Python中的元类(metaclass)3 staticmethod和classmethod4 类变量和实例变量5 Python自省6 字典推导式7 Python中单下划线和双下划线8 字符串格式化:%和.format9 迭代器和生成器10 *args and **kwargs11 面向切面编程AOP和装饰器…

Python基础教程(二十九):operator模块

💝💝💝首先,欢迎各位来到我的博客,很高兴能够在这里和您见面!希望您在这里不仅可以有所收获,同时也能感受到一份轻松欢乐的氛围,祝你生活愉快! 💝&#x1f49…

速度测试分析软件MySpeed

什么是 MySpeed ? MySpeed 是一款速度测试分析软件,可记录您长达 30 天的互联网速度。使用 MySpeed,您可以轻松生成有关速度、ping 等的清晰统计数据。配置运行状况检查,以便在出现错误或停机时通过 Gotify、Discord、WhatsApp 或…

Android补间动画、帧动画、属性动画详解

View Animation: 视图动画在古老的Android版本系统中就已经提供了,只能被用来设置View的动画。 Drawable Animation: 这种动画(也叫Frame动画、帧动画)其实可以划分到视图动画的类别,专门用来一个一个的显…

fastapi教程(一):初识 fastapi

FastAPI 是一个用于构建 API 的现代、快速(高性能)的 web 框架,使用 Python 并基于标准的 Python 类型提示。 关键特性: 快速:可与 NodeJS 和 Go 并肩的极高性能(归功于 Starlette 和 Pydantic)。最快的 …

《窄门》情不知所起,而一往情深

《窄门》情不知所起,而一往情深 安德烈纪德(1869-1951),法国作家。纪德一生著有小说、剧本、论文、散文、日记、书信多种,主要作品有小说《背德者》《窄门》《田园交响曲》《伪币制造者》等,戏剧《康多尔王…

莱辅络Rebro BIM机电专业软件

莱辅洛(Rebro)是一款专业机电 BIM 软件。它具备专业人士所期待的各种专业功能,应用于建筑机电工程的三维设计,并且适用于建筑、结构、给排水、暖通、电气五大专业。 该软件具有以下特点: • 3D 模型:可以…

R语言——数据结构与数据处理

1、练习使用seq( )函数创建向量:使用3种方法生成0~1,步长为0.1的向量,并在控制台打印出来。 2、练习使用rep( )函数创建向量:(1)生成一个4个元素均为3的向量;(2)生成一个…

C语言 | Leetcode C语言题解之第165题比较版本号

题目&#xff1a; 题解&#xff1a; int compareVersion(char * version1, char * version2){int len1 strlen(version1);int len2 strlen(version2);int i 0;int j 0;while (i < len1 || j < len2) {int num1 0;int num2 0;while (i < len1 && versio…

Android记录19-朋友圈动态发布时间计算

注意这里要1&#xff0c;因为月份是从0开始的。 获取当前月的第几天&#xff1a; calendar.get(Calendar.DAY_OF_MONTH) 获取当前时间毫秒显示&#xff1a; calendar.getTimeInMillis() Calendar还可以做很多一些运算&#xff0c;笔者在开发日历控件的时候&#xff0c;就做…

与Vatee万腾平台同行,共创智能未来

在科技日新月异的今天&#xff0c;智能化已成为推动社会进步的重要力量。Vatee万腾平台&#xff0c;作为这一浪潮中的佼佼者&#xff0c;正以其独特的创新力和前瞻的视野&#xff0c;引领我们迈向智能未来。与Vatee万腾平台同行&#xff0c;我们不仅能享受到科技带来的便捷与舒…

02 Shell编程之条件语句

1、条件测试操作 要使Shell脚本程序具备一定的智能&#xff0c;面临的第一个问题就是如何区分不同的情况以确定执行何种操作。 例如&#xff0c;当磁盘使用率超过95%时&#xff0c;发送告警信息&#xff1b;当备份目录不存在时&#xff0c;能够自动创建&#xff1b; 当源码编…

广东省建筑施工安管人员考核报名流程及照片处理方法

广东省建筑施工企业安管人员考核工作现已全面启动&#xff0c;这对于提升建筑行业的安全生产管理水平至关重要。为了确保广大考生能够顺利报名并参与考核&#xff0c;本文精心梳理了考核报名流程&#xff0c;并提供了证件照的规范处理方法。同时&#xff0c;针对证件照这一关键…

Java23种设计模式(四)

1、备忘录模式 备忘录模式&#xff08;Memento Pattern&#xff09;保存一个对象的某个状态&#xff0c;以便在适当的时候恢复对象&#xff0c;备忘录模式属于行为型模式。 备忘录模式允许在不破坏封装性的前提下&#xff0c;捕获和恢复对象的内部状态。 实现方式 创建备忘录…

Star、Star求Star

本章是介绍博主自己的一个小工具的。使用的PythonPyQt5开发的。顺带来求一波star&#x1f31f;&#x1f31f;&#xff01;&#xff01;&#xff01; 地址&#xff1a;https://gitee.com/qinganan_admin/PyCom Pycom是博主开发的串口工具&#xff0c;要是说对比其他串口工具&…

Apache HTTP server benchmarking tool(ab)-服务器基准测试工具一文上手

这是一个非常简单的工具&#xff0c;用途比较有限&#xff0c;只能针对单个URL进行尽可能快的压力测试。 ​ Windows下如何下载安装&#xff08;Linux安装十分简单&#xff09; Apache HTTP server benchmarking tool(ab)下载地址 ​ 资源 2.4版本 httpd-2.4.48-o111k-x64…

【FreeRTOS】创建任务_使用任务参数

参考《FreeRTOS入门与工程实践(基于DshanMCU-103).pdf》 文章目录 前言编写任务函数创建任务任务保护措施写了个bug疑问遗留问题效果freertos.c 学习链接 前言 配套源码&#xff1a;06_create_task_use_params 我们创建3个任务&#xff0c;使用同一个函数&#xff0c;但是在L…

【昇思初学入门】第三天打卡

数据集Dataset 心得体会 昇思提供了丰富的数据集&#xff0c;文本、图像、音频等都有内置MindSpore的Pipeline设计和并行处理能力使得数据预处理更加高效可通过GeneratorDataset接口实现自定义方式的数据集加载可迭代的数据集&#xff0c;可以通过迭代的方式逐步获取数据样本…