实验1 DDS信号源实验
DDS信号源的设计与实现(电子科大)

实验报告学生姓名:实验地点:实验时间:下午2:30~5:30一、实验室名称:电子信息工程实验室二、实验项目名称:DDS信号源的设计与实现三、实验学时:16四、实验原理:分析可得DDS的输出频率:f o = FW(N-1:0)f c/2N由上式可知,DDS的最小输出频率为:f omin = f c/2NDDS的频率分辨率为:f o = f c/2NDDS频率输入字的计算:FW(N-1:0) = 2N f0/f c五、实验目的:通过本实验项目,可使学生利用VHDL硬件描述语言对比较复杂的、综合性的实际电路系统进行设计、描述,利用EDA开发工具完成系统的综合、仿真,并用硬件平台完成系统的硬件实现, 着重培养学生的实际动手设计能力。
六、实验内容:1.EDA技术及VHDL2.EDA开发软件及实验箱的使用3.DDS信号源的设计与实现七、实验器材(设备、元器件):电脑,实验箱(带有EPF10K10 LC84-4芯片)八、实验步骤:① 创建新目录“D:\XX”,运行MAXPLUS II软件;② 打开Altera MAX+plus软件后,首先选择“File”中的“New”, 建立一个新的VHDL文件;③ 编辑VHDL源程序选择“Text Editor file”,再输入程序: library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity dds_nes isport (clk,swithc : in std_logic;freqin : in std_logic_vector(11 downto 0); --频率控制字宽:12位phasein : in std_logic_vector(5 downto 0); --相位字宽ampin : in std_logic_vector(7 downto 0); --加法器宽度ddsout : out integer range 0 to 255 );end dds_nes;architecture rtl of dds_nes issignal acc:std_logic_vector(11 downto 0);signal phaseadd: std_logic_vector(5 downto 0);signal romaddr: std_logic_vector(5 downto 0);signal freqw:std_logic_vector(11 downto 0);signal phasew:std_logic_vector(5 downto 0);signal romaddr_i:integer range 0 to 63;signal amp_t:std_logic_vector(15 downto 0);signal ddsout_t:integer range 0 to 255;beginprocess(clk)beginif clk'event and clk='1' thenif swithc='1' thenfreqw<=freqin;elsefreqw<=freqin+freqin;end if;phasew<=phasein;acc<=acc+freqw;end if;end process;phaseadd<=acc(11 downto 6)+phasew;romaddr<=phaseadd(5 downto 0);romaddr_i<=conv_integer(romaddr); --查找表字宽取整amp_t<=ampin*conv_std_logic_vector(ddsout_t,8);--8*8ddsout_t转为8位ddsout<=conv_integer(amp_t(15 downto 8)); --取高8位后转整process(romaddr_i)begincase romaddr_i iswhen 00 => ddsout_t<=255;when 01 => ddsout_t<=254;when 02 => ddsout_t<=252;when 03 => ddsout_t<=249;when 04 => ddsout_t<=245;when 05 => ddsout_t<=239;when 06 => ddsout_t<=233;when 07 => ddsout_t<=225;when 08 => ddsout_t<=217;when 09 => ddsout_t<=207;when 10 => ddsout_t<=197;when 11 => ddsout_t<=186;when 12 => ddsout_t<=174;when 13 => ddsout_t<=162;when 14 => ddsout_t<=150;when 15 => ddsout_t<=137;when 16 => ddsout_t<=124;when 17 => ddsout_t<=112;when 18 => ddsout_t<=99;when 19 => ddsout_t<=87;when 20 => ddsout_t<=75;when 22 => ddsout_t<=53; when 23 => ddsout_t<=43; when 24 => ddsout_t<=34; when 25 => ddsout_t<=26; when 26 => ddsout_t<=19; when 27 => ddsout_t<=13; when 28 => ddsout_t<=8; when 29 => ddsout_t<=4; when 30 => ddsout_t<=1; when 31 => ddsout_t<=0; when 32 => ddsout_t<=0; when 33 => ddsout_t<=1; when 34 => ddsout_t<=4; when 35 => ddsout_t<=8; when 36 => ddsout_t<=13; when 37 => ddsout_t<=19; when 38 => ddsout_t<=26; when 39 => ddsout_t<=34; when 40 => ddsout_t<=43; when 41 => ddsout_t<=53; when 42 => ddsout_t<=64; when 43 => ddsout_t<=75;when 45 => ddsout_t<=99;when 46 => ddsout_t<=112;when 47 => ddsout_t<=124;when 48 => ddsout_t<=137;when 49 => ddsout_t<=150;when 50 => ddsout_t<=162;when 51 => ddsout_t<=174;when 52 => ddsout_t<=186;when 53 => ddsout_t<=197;when 54 => ddsout_t<=207;when 55 => ddsout_t<=217;when 56 => ddsout_t<=225;when 57 => ddsout_t<=233;when 58 => ddsout_t<=239;when 59 => ddsout_t<=245;when 60 => ddsout_t<=249;when 61 => ddsout_t<=252;when 62 => ddsout_t<=254;when 63 => ddsout_t<=255;when others=>null;end case;end process;end rtl;④ 将源程序存为VHDL文件格式,并将VHDL文件设置为当前工程;⑤ 编译VHDL源文件,点击“MAX+plus II→Compiler→Start”进行编译,如果警告和错误不为0,要改正错误直至全部正确;⑥ 对照芯片,用导线依次对应连接好实验箱芯片的每一个接口;⑦ 确定无误后,打开试验箱与示波器电源,并运行程序,下载程序。
DDS信号发生器 实验报告

H a r b i n I n s t i t u t e o f T e c h n o l o g yEDA技术高级应用实验报告姓名:禾小鬼同组人:学号:16S班级:信息2班指导教师:xxx院系:电信学院实验一函数信号发生器一、实验内容实验内容包括下面两个方面1.熟悉quartus ii开发环境第一次接触quartus ii开发环境,首先可以通过新建一个工程熟悉quartus ii的各种基本操作。
需要学习的包括以下几个方面:选器件,采用原理图方法画一个电路图实现某种功能,并对这个功能进行行为仿真以验证功能上的正确性。
2.设计一个函数信号发生器在开始之前,首先要明确设计目的,我们的想要用电路图方法实现设计一个“函数信号发生器”。
然后,可以先根据自己的思路想好一个电路图的设计方案,再开始实验。
二实验结果1.第一步:建立一个新的工程新建工程的过程中,最重要的是设置器件,不同的器件的设计之间并不兼容。
会有一个综合的信息框,注明了我所做的设置,看看没问题就可以了。
然后新建一个原理图文件schematic,作为顶层文件,将顶层文件命名为DDS在上面进行画图。
2.第二步:画电路图本次实验采用软件自带的器件库MegaWizard Plug-in Manager中的器件。
自定义3个ROM,并将ROM表中存储事先准备好的三种波形的数据文件,波形数据文件由matlab产生,ROM中存储8bit-32words的数据,包括一个时钟输入,一个5位地址输入和一个7位输出;还需要一个5位计数器,用以输出读取ROM 的地址;一个时钟控制整个电路工作;我画的电路图,如图1所示。
其原理为:三个ROM表存储三种波形数据,整个电路通过时钟控制,时钟每翻转一次,计数器加一,产生一个地址,输入到ROM,读取ROM表中的数据,直到将ROM表中的数据读取完,计数器清零,继续从头读取ROM表中的数据,这样输出的结果就是一个周期的波形信号。
三个波形的产生原理相同,唯一不同就是ROM中存储的数据,根据波形的不同而不同。
DDS信号源实验设计

DDS信号源实验设计作者:张磊来源:《硅谷》2015年第01期摘要本文主要介绍的是DDS信号源的组成及其工作原理。
在现实生活中DDS信号源的用处非常的大。
尤其是在关于电路方面的实验中,很多的电路实验中都需要信号发生器,而DDS信号发生器就是一个不错的选择。
因为在有些实验中要求的波形不同,所以要求设备能提供不同的输出波形用于选择。
DSS信号源模块硬件上由CM3(cortex-m3)内核的ARM芯片(STM32)和外围电路构成。
在我们实验室中的RZ8681D试验箱的DDS信号源能够输出多种波形,用起来非常的方便与快捷。
关键词 DDS信号源;ARM芯片中图分类号:TN782 文献标识码:A 文章编号:1671-7597(2015)01-0094-011 DDS信号源简介DDS信号源是为了电子电路设备实验提供多种不同的波形的一种功能强大的仪器。
它在现实生活中的应用十分广泛,它由频率合成器(相位累加器、波形ROM、低通滤波器)、cortex-m3内核的ARM芯片(STM32)、数模转换器DAC构成。
输入信号通过相位累加器、波形ROM、数模转换器DAC、低通滤波器的累加计算最后输出信号。
2 DDS信号源各模块原理1)相位累加器。
相位累加器,看它的名字就知道是对相位进行线性累加的寄存器。
相位累加器一般出现在频率合成器中,当你想要输出个波形,比如正弦波、方波、三角波,那么就应该输出一个周期中的很多个点才能得到一个失真的波形,这是这个失真波形很小,所以时钟信号频率是输出信号频率的N倍,然后时钟每增加1,相位就跟着增加1/x,然后输出波形rom,计算出它的瞬时值,再继续下一个时钟的循环,经过这样反复的N个周期以后,我们就可以得到完整的正弦或者余弦波了。
而这个计算的累加器就是相位累加器。
2)波形Rom。
波形Rom又叫正弦函数功能表Rom,它的意思就是波形存储器,顾名思义,就是存储波形的,它是用来储存在循环中产生的那些失真的很小的波形,也就是那些被经量化还有离散后的正弦波形幅值,用于来产生一个完整的波形,波形储存器就像一个存放成品零件的地方,用于组装更大的东西。
dds信号源课程设计

dds信号源课程设计一、课程目标知识目标:1. 学生能理解DDS(直接数字频率合成器)信号源的基本原理,掌握其工作流程。
2. 学生能掌握DDS信号源的关键参数,如频率、相位、幅度等,并了解它们之间的关系。
3. 学生能解释DDS信号源在电子技术中的应用,如信号发生、通信系统等。
技能目标:1. 学生能够操作DDS信号源硬件,进行基本的信号生成与调制。
2. 学生能够利用相关软件对DDS信号源进行编程控制,实现特定信号的输出。
3. 学生能够通过实验,分析DDS信号源的性能,提出优化方案。
情感态度价值观目标:1. 学生对电子技术产生兴趣,培养探索精神和创新意识。
2. 学生在实验和讨论过程中,培养团队合作精神和沟通能力。
3. 学生认识到DDS信号源在科技发展中的重要作用,增强社会责任感和使命感。
课程性质:本课程为电子技术实践课程,结合理论讲解和实验操作,提高学生对DDS信号源的理解和应用。
学生特点:学生为高中年级,具备一定的电子技术基础,对实验操作感兴趣,但需引导深入理解理论知识。
教学要求:注重理论与实践相结合,鼓励学生动手实践,培养解决实际问题的能力。
在教学过程中,关注学生个体差异,提供针对性的指导。
通过课程学习,使学生能够将所学知识应用于实际电子技术领域。
二、教学内容1. DDS信号源原理介绍:- 数字频率合成技术背景- DDS信号源基本工作原理- 频率、相位、幅度控制原理2. DDS信号源硬件结构:- 主要组成部分及其功能- 常见DDS芯片介绍- 硬件连接与操作方法3. DDS信号源编程控制:- 编程接口与协议- 常用编程语言及工具- 实例演示:信号生成与调制4. DDS信号源应用案例分析:- 信号发生器- 通信系统- 频率合成器5. 实验教学:- 实验一:DDS信号源基本操作- 实验二:信号生成与调制- 实验三:性能分析与优化6. 教学进度安排:- 第一周:原理介绍与硬件结构学习- 第二周:编程控制与实例演示- 第三周:应用案例分析- 第四周:实验教学与实践教学内容关联教材章节:- 第一章:电子技术基础- 第二章:数字频率合成技术- 第三章:DDS信号源硬件与编程- 第四章:实验与实践三、教学方法本课程采用以下多样化的教学方法,以激发学生的学习兴趣和主动性,提高教学效果:1. 讲授法:- 对于DDS信号源的基本原理、硬件结构、编程控制等理论知识,采用讲授法进行系统讲解,使学生掌握必要的基础知识。
基于DDS的信号发生器的实验报告

基于DDS的信号发生器
吴小川刘源源孔梅梅
2010年8月
摘要:本系统基于DDS信号源的原理,以单片机89C51为控制核心,采用DDFS (直接频率数字频率合成)技术,利用FPGA芯片EP1C6Q240合成大部分的电路,通过LCD的显示来实现波形、频率、幅度的控制输入,利用双口RAM进行数据的存储,双D/A的方法来实现频率的稳幅输出,再通过低通滤波器实现频率由1Hz~500KHz,幅度由0~5V的稳定输出的信号源。
关键字:DDS,单片机,FPGA,双口RAM,双D/A。
目录
总体框图
幅度控制、双D/A设计
双D/A转换是实现幅度可调和任意波形输出的关键,第一级D/A的输出作为第二级D/A转换的参考电压,以此来控制信号发生器的输出电压。
D/A转换器的电流建立时间将直接影响到输出最高频率。
本系统采用的是DAC800,电流建立时间为100ns,在最高频率点,一个周期输出32点,因此极限频率大概是。
EDA课程设计-DDS信号源

EDA 课程设计题 目 DDS 信号源宁波理工学院一.函数信号发生器简介函数信号发生器在生产实践和科技领域有着广泛的应用。
本设计是采用了EDA技术设计的函数信号发生器。
此函数信号发生器的实现是基于VHDL语言描述各个波形产生模块,然后在QuartusⅡ软件上实现波形的编译,仿真和下载到Cyclone芯片上。
整个系统由波形产生模块和波形选择模块两个部分组成。
最后经过QuartusⅡ软件仿真,证明此次设计可以输出正弦波、方波、三角波等规定波形,并能根据波形选择模块的设定来选择波形输出。
二.实验软件QuartusⅡ简介Quartus II 是Alera公司推出的一款功能强大,兼容性最好的EDA工具软件。
该软件界面友好、使用便捷、功能强大,是一个完全集成化的可编程逻辑设计环境,具有开放性、与结构无关、多平台完全集成化丰富的设计库、模块化工具、支持多种硬件描述语言及有多种高级编程语言接口等特点。
Quartus II是Altera公司推出的CPLD/FPGA开发工具,Quartus II提供了完全集成且与电路结构无关的开发包环境,具有数字逻辑设计的全部特性,包括:可利用原理图、结构框图、VerilogHDL、AHDL和VHDL完成电路描述,并将其保存为设计实体文件;芯片平面布局连线编辑;功能强大的逻辑综合工具;完备的电路功能仿真与时序逻辑仿真工具;定时/时序分析与关键路径延时分析;可使用SignalTap II逻辑分析工具进行嵌入式的逻辑分析;支持软件源文件的添加和创建,并将它们链接起来生成编程文件;使用组合编译方式可一次完成整体设计流程;自动定位编译错误;高效的期间编程与验证工具;可读入标准的EDIF网表文件、VHDL网表文件和Verilog网表文件;能生成第三方EDA软件使用的VHDL网表文件和Verilog网表文件。
三.设计主要任务及要求一.波形选择:通过按键选择不同的输出波形。
二.波形发生:通过软件实现各类波形的产生。
实验1DDS信号源实验报告

实验1DDS信号源实验报告
实验1: DDS信号源实验报告
实验目的:使用DDS(Direct Digital Synthesis)技术生成特定频率的信号,并通过示波器验证其输出频率和波形。
实验步骤:
1. 连接设备:将DDS信号源与示波器连接,确保连接正确。
2. 设定DDS信号源参数:打开DDS信号源,进入设置界面,设置输出频率为所需频率。
3. 设置示波器参数:打开示波器,选择合适的量程和时间基准,准备接收信号。
4. 观察信号波形:通过示波器观察信号波形,并使用频率计验证输出频率是否与设置一致。
5. 更改参数和重复步骤3和4,直到得到想要的信号波形。
实验结果:
在实验过程中,我们先设置DDS信号源的输出频率为1kHz,
并使用示波器观察信号波形。
经过验证,示波器显示的频率为
1kHz,符合预期结果。
随后,我们更改DDS信号源的输出频
率为5kHz,并再次使用示波器观察信号波形。
示波器显示的
频率为5kHz,也符合预期结果。
通过多次更改参数和重复实验步骤,我们验证了DDS信号源可以生成特定频率的信号,并且输出频率与设置一致。
同时,观察示波器显示的信号波形可以确定信号的稳定性和准确性。
实验总结:
通过这次实验,我们学会了如何使用DDS技术生成特定频率的信号,并通过示波器验证输出频率和波形。
DDS信号源具有调节方便、频率稳定、波形准确等优点,在电子实验和通信领域有着广泛应用。
在以后的实验和研究中,我们可以利用DDS技术生成不同频率和波形的信号,用于信号处理、测试和调试等应用。
DDS信号源的设计

EDA技术与实践教程课题:DDS信号源的设计姓名:班级:DDS信号源的设计一.DDS的概述DDS是一种以全数字技术从相位概念出发直接合成所需波形的一种频率合成技术。
目前使用最广泛的方式是利用高速存储器查找表,然后通过高速DAC 输出已经用数字形式存入的正弦波。
DDS技术一般都是以数字控制振荡器NCO (Numerically Controlled Oscillator)为核心,来产生频率可调的sin正弦波的波形的数字量表示的幅值。
这些数字量表示的波形幅值再通过一个DAC (Digital-Analog Converter),得到正弦波的模拟量波形。
它是在时域中进行频率合成,从而能够对输出频率进行快速而且精确的控制,并且这种控制全部都是数字控制,因此可以提供非常高的频率精度。
二.DDS工作原理DDS的基本原理是利用采样定理,通过查表法产生波形。
DDS的结构有很多种,其基本的电路原理可用下图1 来表示:相位累加器由N位加法器与N位累加寄存器级联构成。
每来一个时钟脉冲FS,加法器将频率控制字K与累加寄存器输出的累加相位数据相加,把相加后的结果送至累加寄存器的数据输入端。
累加寄存器将加法器在上一个时钟脉冲作用后所产生的新相位数据反馈到加法器的输入端,以使加法器在下一个时钟脉冲的作用下继续与频率控制字相加。
这样,相位累加器在时钟作用下,不断对频率控制字进行线性相位累加。
由此可以看出,相位累加器在每一个时钟脉冲输入时,把频率控制字累加一次,相位累加器输出的数据就是合成信号的相位,相位累加器的溢出频率就是DDS输出的信号频率。
用相位累加器输出的数据作为波形存储器(ROM)的相位取样地址,这样就可把存储在波形存储器内的波形抽样值(二进制编码)经查找表查出,完成相位到幅值转换。
波形存储器的输出送到D/A转换器,D/A转换器将数字量形式的波形幅值转换成所要求合成频率的模拟量形式信号。
低通滤波器用于滤除不需要的取样分量,以便输出频谱纯净的正弦波信号。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
班级通信1403 学号 201409732 姓名裴振启指导教师邵军花日期
实验1 DDS信号源实验
一、实验目的
1.了解DDS信号源的组成及工作原理;
2.掌握DDS信号源使用方法;
3.掌握DDS信号源各种输出信号的测试。
二、实验仪器
1.DDS信号源(位于大底板左侧,实物图片如下)
2.频率计1台
3. 20M双踪示波器1台
4.低频信号发生器 1台
三、实验原理
直接数字频率合成(DDS—Digital Direct Frequency Synthesis),是一种全数字化的频率合成器,由相位累加器、波形ROM、D/A转换器和低通滤波器构成。
时钟频率给定后,输出信号的频率取决于频率控制字,频率分辨率取决于累加器位数,相位分辨率取决于ROM 的地址线位数,幅度量化噪声取决于ROM的数据位字长和D/A转换器位数。
DDS信号源模块硬件上由cortex-m3内核的ARM芯片(STM32)和外围电路构成。
在该模块中,我们用到STM32芯片的一路AD采集(对应插孔调制输入)和两路DAC输出(分别对应插孔P03、P04)。
PWM信号由STM32时钟配置PWM模式输出,调幅、调频信号通过向STM32 写入相应的采样点数组,由时钟触发两路DAC同步循环分别输出其已调信号与载波信号。
对于外加信号的AM调制,由STM32的AD对外加音频信号进行采样,在时钟触发下当前采样值与载波信号数组的相应值进行相应算法处理,并将该值保存输出到DAC,然后循环进行这个过程,就实现了对外部音频信号的AM调制。
RZ8681 D实验箱的DDS信号源能够输出脉宽调制波(PWM)、正弦波、三角波、方波、扫频信号、调幅波(AM)、双边带(DSB)、调频波(FM)及对外部输入信号进行AM调制输出。
四、各测量点的作用
调制输入:外部调制信号输入铆孔(注意铆孔下面标注的箭头方向。
若箭头背离铆孔,说明此铆孔点为信号输出孔;若箭头指向铆孔,说明此铆孔点为信号输入孔)。
P03:DDS各种信号输出铆孔。
P04:20KHZ载波输出铆孔。
P09:抽样脉冲输出铆孔。
SS01:复合式按键旋纽,按键用来选择输出信号状态;旋纽用来改变信号频率。
LCD:显示输出信号的频率。
五、实验内容及步骤
1)加电:打开系统电源开关,底板的电源指示灯正常显示。
若电源指示灯显示不正常,请立即关闭电源,查找异常原因。
2)信号输出状态设置
信号输出状态分为: 1.《PWM波》、2.备用、3.《正弦波》、4.《三角波》、5.《方波》、6.《扫频信号》、7.《调幅信号》、8.《双边带信号》、9.《调频波》、10.《外输入AM波》等十种状态
初始时输出序号为1,对应《PWM波》输出状态。
按下复合式按键旋纽SS01,可切换不同的信号输出状态,按一次输出序号递增,最大序号为10,正好与l0种输出信号状态对应。
序号为10后,继续按复合按键旋纽,则返回初始序号1。
D0l、D02、D03、D04四个指示灯将显示输出的序号状态。
3)信号频率调节
旋转复合式按键旋纽SS01,在《PWM波》、《正弦波》、《三角波》、《方波》等输出状态时,可步进式调节输出信号的频率,顺时针旋转频率每步增加100HZ,逆时针减小
100HZ;在其它序号,旋转复合式按键旋纽SS01无操作。
4)输出信号幅度调节
调节调幅旋钮W01,可改变P03、P04输出的各种信号幅度。
5)实验结束,通常DDS信号源常置于正弦波输出状态,频率为2KHZ。
因为正弦波是最常使用的模拟信号源,以便后面实验使用。
输出序号调制输入P03(输出)
P04(输
出)
P09(输出)
LED
1:亮 0:灭
D4 D3 D2 D1
1 × × 载波20K
PWM波(频率
0.1-20KHZ可调)
0 0 0 1
2 × 备用载波20K
PWM(频率锁定于初始
状
态10KHZ或最新
《PWM波》设定
的频率)0 0 1 0
3 × 正弦波载波20K 0 0 1 1
4 × 三角波载波20K 0 1 0 0
5 × 方波载波20K 0 1 0 1
6 × 扫频载波20K 0 1 1 0
7 × 调幅载波20K 0 1 1 1
8 × 双边带载波20K 1 0 0 0
9 × 调频载波20K 1 0 0 1
10 外部调制
信号
外输入信号
AM调制
载波20K 1 0 1 0
备注:1.对于调幅、调频信号,载波频率固定为20KHz,内部产生调制波频率固定为1KHz,由外部“调制输入”的调制信号频率由外部输入信号决定。
2.扫频信号的扫频范围是300Hz —50KHz。
实验结果分析
1.观察DDS信号源各种输出信号的波形,并说明其幅度、频率等调节方法。
(报告书写要求:采用MATLAB仿真实验中各种的波形,并与示波器所观察波形进行对比。
)
Matlab程序
function [y,t]=dds(fout,N,Fs,Delta_f,N_sig,fai)
% [y,t]=dds(fout,N,Fs,N_sig,fai)
% 按输入参数要求,输出相应的DDS数字信号
% fout 需要产生的频率
% N 信号字长
% Fs 采样频率
% Delta_f 频谱分辨率
% N_sig 输出信号样点个数
% fai 输出信号的初始相位
% y 输出信号的波形
% t 输出信号时间
%%%%%%%%%%%%%% 对输入数据进行判
断 %%%%%%%%%%%%%%%%%%%
if nargin == 5
fai = 0;
end
if nargin == 4
fai = 0;
N_sig = Fs;
end
%%%%%%%%%%%%%%%%%%% 计算部
分 %%%%%%%%%%%%%%%%%%%%%
N_period = 2^N; %产生一个周期的样点信号
Delta_f = Fs/N_period;
n = 0:N_period - 1; %基准频率信号的地址
S_root = floor(sin(2*pi*n/N_period)*2^(N_period-1))-1; %产生基准频率信号
S_root = S_root/max(S_root); %对基准信号幅值进行归一化
A_max = ceil(Fs/Delta_f); %求最大地址值,为保证
A_max为整数; %对计算结果进行四舍五入运算A_base_max = A_max / N_period; %基准地址最大值
Delta_A = floor(fout / Delta_f); %相邻输出样点值之间的地址增量
Delta_fai = 2*pi/A_max; %输出信号所能分辨的最小相位
A_phase = floor(fai/Delta_fai); %输出信号所能分辨的最小相位所对应的地址增量
n = 0:N_sig - 1;
A = mod(n*Delta_A + A_phase , A_max); %求解输出信号的地址
A_sin_sel = mod(floor(A / A_base_max) , N_period); %正弦基准频率信号选择地址
n = length(A_sin_sel);
y = zeros(1,n); %输出信号初始化
y = S_root(A_sin_sel+1); %从求出的地址取数
Ts = 1/Fs; %采样频率
t = (0:N_sig-1)*Ts; %根据需要输出的信号点数,取得时间值
plot(t,y);
xlabel('t/s');ylabel('A');title('时域图');
grid on;
F_sig = abs(fft(y,2*N_sig)); %对信号做傅里叶变换
Len_F_sig = length(F_sig);
f = (0:Len_F_sig-1)/Len_F_sig*Fs; %输出信号频率figure
plot(f(1:Len_F_sig/2),F_sig(1:Len_F_sig/2));
grid on;
xlabel('f/Hz');ylabel('A');title('频谱图');
正弦波
三角波
方波
调幅调频双边带
2.实验体会及实验中遇到的问题。
1.示波器使用不熟练,还需要加强,不能快速的调整出较好的波形。
2.stm32的运算速度很快,20khz的频率不是问题,但是可能因为实验设备长时间没有得到有效维护,程序已经有偏差了,方波的情况不是太好。
3 通过此次实验掌握了 DDS 信号源的工作原理及其输出方式,并加深了对各种调制的认识。
4认识到了room表的重要性。