基于MATLAB的信号发生器设计 共20页PPT资料
基于Matlab_DSP Builder的正弦信号发生器设计

基于Matlab/DSP Builder的正弦信号发生器设计引言近年来随着通信技术的不断发展,信号的正确传输显得日益重要,也就是说要有一个可靠的能产生稳定确信号的发生器,基于Matlab/DSP Builder的正弦信号发生器是利用Matlab/DSP Builder的模块进行的模快化设计,软件的设计采用模块化结构,使程序设计的逻辑关系更加简洁明了、易懂、易学。
使硬件在软件的控制下协调运作。
DSP Builder可以帮助设计者完成基于FPGA的DSP系统设计设计,除了图形化的系统建模外,还可以完成及大部分的设计过程和仿真,直至将设计文件下载到DSP开发板上。
此次实验的目的就是将两者的优势有机的结合在一起,利用DSP的优势开发正弦信号发生器。
在设计中主要采用DSP Builder库中的模块进行系统的模型设计,然后再进行Simulink仿真。
1.设计思想1.1 DSP Builder特点DSP Builder系统级(或算法级)设计工具,它架构在多个软件工具之上,并把系统级(算法仿真建模)和RTL(硬件实现)两个领域的设计工具连接起来,最大程度的发挥了两种工具的优势。
DSP Builder依赖于MathWorks公司的数学分析工具Matlab/Simulink,可以在Simulink中进行图形化设计和仿真,同时又通过Signal Compilder把Matlab/Simulink的设计文件(.mdl)转换成相应的硬件描述语言VHDL设计文件(.vhd),以及用于控制和编译的tcl脚本。
而对后者的处理可以用Quartus II来实现。
1.2 QuartusII特点QuartusII提供了完整的多平台设计环境,能满足各种特定设计的需要,是单芯片可编程系统(SOPC)设计的综合性环境和SOPC开发的基本设计工具,并且为Altera DSP开发包进行系统模型设计提供了集成综合环境。
QuartusII完全支持VHDL的设计流程,其内部嵌有VHDL逻辑综合器。
基于MATLAB的函数信号发生器1

基于MATLAB的函数信号发生器1信息系统仿真设计实训报告学院信息电子技术专业****班级******8学号********8姓名***指导教师***2014年7月25日基于MATLAB的函数信号发生器1、目的函数信号发生器是基于软硬件实现的一种波形发生仪器。
在工工程实践中需要检测和分析的各种复杂信号均可分解成各简单信号之和,而这些简单信号可由函数信号发生器模拟产生,因此它在工程分析和实验教学有着广泛的应用。
MATLAB 是一个数据分析和处理功能十分强大的工程实用软件,他的数据采集工具箱为实现数据的输入和输出提供了十分方便的函数和命令,在信号处理方面方便实用。
本文介绍了使MATLAB建立一个简单函数信号发生器的基本流程,并详细叙述了简单波形(正弦波、方波、三角波、锯齿波、白噪声、脉冲)信号的具体实现方法。
通过此次的设计对MATLAB有个更深刻的了解,熟练的使用MATLAB的GUI设计简单的界面程序。
2、工作原理与计算该虚拟信号发生器的设计由GUI界面及其对应的程序组成。
设计函数发生器有正弦信号、方波信号、三角波、锯齿波、白噪声、脉冲信号。
其中,前五种波形都可以利用MATLAB提供的函数实现,并根据输入的幅值、相位、频率等信息进行调整。
根据脉冲信号在某一时刻出现的一冲激特点,可由编写程序来实现。
界面主要由MATLAB创建,之后编写界面所用的函数,从而实现函数信号发生器。
(1)正弦信号的实现正弦波信号的数学表达式如(1)。
ωφ()其中:A为幅值;ω为频率; 为相位。
在MATLAB中,幅值、频率、相位、在用户界面输入。
y的表达式都得到以后,用plot二维作图函数获得波形显示。
(2)方波信号的实现与正弦波一样,从用户界面获得幅值、频率、相位、采样频率等信息,用square 函数获得对应y坐标值,用plot绘图,格式如(2)。
()其中duty为占空比。
(3)三角波和锯齿波的实现这两种波形的表达式皆要借助于sawtooth命令。
matlab制作信号发生器

Method
START
Initialize
INPUT: type amplitude frequency phase
Produce digital signal
Show the waveform
Method
• To build a GUI interface
Method
• Write M files
sin a=str2double(get(handles.editfuzhi,'String')); f=str2double(get(handles.editpinlv,'String')); x=str2double(get(handles.editxiangwei,'String')); c=str2double(get(handles.editcaiyang,'String')); t=0:8/(fs):8/f; y=a*sin(2*pi*(f*t+x/360)); plot(t,y);
Method
• Write M files
function sliderfuzhi_Callback(hObject, eventdata, handles) a=get(hObject,'value'); set(handles.editfuzhi,'string',a);
Results
• Sine waveform
Results
• white noise waveform
electric piano
• GUI interface
electric piano
• Write M files
基于MATLAB的信号发生器设计说明PPT文档共23页

个……公平和实用。——伯克 7、有两种和平的暴力,那就是法律和礼节。——歌德
8、法律就是秩序,有好的法律才有好的秩序。——亚里士多德 9、上帝把法律和公平凑合在一起,可是人类却把它拆开。——查·科尔顿 10、一切法律都是无用的,因为好人用不着它们,而坏人又不会因为它们而变得规矩起来。——德谟耶克斯
41、学问是异常珍贵的东西,从任何源泉吸 收都不可耻。——阿卜·日·法拉兹
42、只有在人群中间,才能认识自 己。——德国
43、重复别人所说的话,只需要教育; 而要挑战别人所说的话,则需要头脑。—— 玛丽·佩蒂博恩·普尔
44、卓越的人一大优点是:在不利与艰 难的遭遇里百折不饶。——贝多芬
《信号发生器》PPT课件 (2)

频率范围
30kHz以下 30 kHz~300 kHz 300 kHz~6 MHz 6 MHz~30 MHz 30 MHz~300 MHz 300 MHz~3000 MHz
主要应用领域
电声学、声纳 电报通讯 无线电广播 广播、电报 电视、调频广播、导航 雷达、导航、气象
第3章 信号发生器
2.按输出波形分类 根据使用要求,信号发生器可以输出不.同波形 的信号,图3.1—2是其中几种典型波形。按照输出信号 的波形特性,信号发生器可分为正弦信号发生器和非 正弦信号发生器。非正弦信号发生器又可包括:脉冲 信号发生器、函数信号发生器、扫频信号发生器、数 字序列信号发生器、图形信号发生器、噪声信号发生 器等.
第3章 信号发生器
三、信号发生器的基本构成 虽然各类信号发生器产生信号的方法及功能各有 不同,但其基本的构成一般都可用图3.1—3的框图描 述,下面对框图中各个部分作扼要介绍.振荡器:振荡 器是信号发生器的核心部分,由它产生不同频率、不 同波形的信号。产生不同频段、不同波形信号的振荡 器原理、结构差别很大。
第3章 信号发生器
图3.1—1 测试信号发生器
第3章 信号发生器
二、信号发生器的分类 信号发生器应用广泛,种类型号繁多,性能各异, 分类方法也不尽一致,下面介绍几种常见的分类。 l.按频率范围分类 按照输出信号的频率范围,有表3.1—1所示的划分。
第3章 信号发生器
表3.1—1
名称
超低频信号发生器 低频信号发生器 视频信号发生器 高频信号发生器 甚高频信号发生器 超高频信号发生器
第3章 信号发生器
第3章 信号发生器
3.1 信号发生器概述 3.2 正弦信号发生器的性能指标 3.3 低频信号发生器 3.4 射频信号发生器 3.5 扫频信号发生器 3.6 脉冲信号发生器 3.7 噪声发生器 习题三
《信号发生器》PPT课件

3
2021/1/11
参数化与门 参数化三态缓冲器 参数化组合逻辑移位器 参数化常数产生器 参数化译码器 参数化反向器 参数化多路选择器 参数化总线选择器 多路选择器 参数化或门 参数化异或门
LPM库单元
4 2021/1/11
存储器模块
lpm_ff lpm_latch lpm_ram_dq lpm_ram_io lpm_rom lpm_shitreg csfifo csdpram
原理图
19 2021/1/11
频率控 制字
累加器
相位控 制字
相位寄 存器
加法器
正弦查 找表
DAC
打开图形编辑器,双击图形编辑器编辑区
中需要插入图元的地方,打开Enter Symbol
对话框 ,选择相应的LPM库。图形编辑器
的插入点将显示lpm_counter库单元的图形
符号。
LPM库的使用
8 2021/1/11
设定端口参数
9 2021/1/11
仿真结果
10 2021/1/11
11 2021/1/11
ADC0809控制电路
ADC0809控制电路
12 2021/1/11
ADC0809的硬件连线
ADC0809的引脚
ad_a
ad_b
ad_c 输入
IN0
clk
ST/ALE
输出
EOC D7~D0
信号
全部接“0”,选择通道0(IN0)
接模拟信号 转换频率,接实验板晶振8脚(16KHz) 接由FPGA产生的启动控制信号 悬空 接入单片机的P1口
2021/1/11
USE ieee.std_logic_1164.all;
基于MATLAB的信号发生器设计

因为 PCI-6024E 只有 2 路 DAC,所以输出通道的选择只有这 2 路,或者只输出其 中的一路。运行、停止则是开始和停止计算波形、输出波形的过程。编写 M 文件 来处理 GUI 界面的事件的响应。
本设计的独特之处在于输出通道的可选择性,可选择 NI-DAQ(PCI-6024E), 声卡,或者并行等。考虑到信号幅度范围对于不同硬件也是不同的(PCI-6024E 是-10~10v),超出范围的部分是无效的,程序同样会报错并停止运行。
幅度 amplitude
文件名 filename
默认值
500
1
自定义波参数如表 8 所示。设采样率:samp
说明:本选项是信号发生器的扩展功能之一,通过菜单区操作可以读取保存
为图像和数据的文件,输出信号到输出板卡上。
①读取图像文件(*.bmp)
源程序段:
h1=imread(filename);
h2=rgb2gray(h1)
《MatLab 信号处理》
-----基于 MATLAB 的信号发生器设计
姓名: 学号: 班级: 2010.12
基于 MATLAB 的信号发生器设计
虚拟仪器能充分利用现有计算机资源,通过配以独特设计的软硬件,实现普 通仪器的全部功能以及一些在普通仪器上无法实现的功能的软件或程序。本设计 的主要内容就是基于 MATLAB 来实现一个信号发生器,除具有信号发生器一般功 能外,还应能通过文件或图形获取波形数据,以实现任意波形的生成,并以 PCI-6024 DAQ 卡作为硬件平台输出。
[m,n]=size(h2);
for i=1:n
x(i)=0;
end
for i=1:n
for j=1:m
if (h2(j,i)~=255)
基于matlab的信号发生器设计

基于matlab的信号发⽣器设计Digital Signal GeneratorYangXiao M2013705103HuaZhong University of Science and TechnologySchool of Mechanical Science and Engineering Abstract: Matlab Is a numerical analysis, matrix calculation, scientific data visualization and nonlinear dynamic state system modeling and simulation, and other functions of practical software engineering.It’s easy to use the windows environment and cast off a tradition on the interactive programming language (such as C, Fortran) Edit mode In large range. In this report,The task is to design a digital signal generator bu using matlab.It could help us to understand the signal processing by designing the digital signal generator. Which has a certain application value of reference.Keyword:digital signal generator;Matlab1.PrefaceMATLAB is called Matrix Laboratory,which is designed by the United States MathWorks company.It’s a commercial mathematical software. Matlab can be use for Matrix operations, mapping functions and data, algorithm, creating the user interface, connect to other programming languages procedures, mainly used in engineering calculations, control design, signal processing and communications, image processing, signal detection, design and financial modeling analysis and other fields. GUI (Graphical User Interface, referred to as GUI, known Graphical User Interface) is displayed using the graphical user interface of computer operations.. Matlab has a powerful GUl tool. In this report, by using matlab GUI tool we could a designed digital signal generator .2. IntroduceProgram reference implementation of MATLAB Data Acquisition Toolbox. In MATLAB design, there are two designs: the GUI editor and M-file write. This design use GUI editor . The GUI is user interface, which is to select the waveform, set and modify the waveform parameters, set the sampling rate, select the output channel and run. This program GUI interface provided: sin, square, triangle, sawtooth, while noise, to choice. Also we could change waveform parameters to change waveform’s shape. As frequency amplitude phase and sample haveprovided gave us to change.The interface is that:2.1 Interface3. Design PrinciplesThe task is to design the digital signal generator which can generate sine wave, square wave, triangle wave, sawtooth wave, and white noise. All the waveform can use MATLAB function, and could be adjusted by inputting information such as the amplitude, phase and frequency .3.1 Achieve sin signalThe mathematical function of sin wave signal is that:()sin 2y A ft πφ=+A: amplitude; f: frequency;φ: phase;t: 0:1/s:1;(s is sample); The M-program is:A=get(handles.Amplitude,'Value'); f=get(handles.Frequency,'Value'); p=get(handles.Phase,'Value');s=get(handles.Sample,'Value'); x=0:1/s:1;y=A*sin(2*pi*f*x+p); plot(handles.screen,x,y,'r'); legend('sin(x)'); wavplay(y); grid on;axis([0,0.1,-20,20]);We could run the program by setting the parameters:3.1 Image of sin signal3.2 Achieve square signalThe mathematical function of square wave signal is that:(2)y Asquare ft b π=+A: amplitude; f: frequency; b: phase;t: 0:1/s:1;(s is sample); The M-program is:A=get(handles.Amplitude,'Value'); f=get(handles.Frequency,'Value');p=get(handles.Phase,'Value');s=get(handles.Sample,'Value');x=0:1/s:10;y=A*square(2*pi*f*x+p);plot(handles.screen,x,y,'b');legend('square');wavplay(y);grid on;axis([0,0.1,-20,20]);We could run the program by setting the parameters:3.2 Image of square signal3.3 Achieve triangular signalThe mathematical function of triangular wave signal is that:(2,0.5)y Asawtooth ft b π=+A: amplitude; f: frequency; b: phase;t: 0:1/s:1;(s is sample); The M-program is:A=get(handles.Amplitude,'Value'); f=get(handles.Frequency,'Value'); p=get(handles.Phase,'Value'); s=get(handles.Sample,'Value'); x=0:1/s:10;y=A*sawtooth(2*pi*f*x+p,0.5); plot(handles.screen,x,y,'b'); legend(‘triangle ’); wavplay(y); grid on; axis([0,0.1,-20,20]);We could run the program by setting the parameters:3.3 Image of triangular signal3.4 Achieve sawtooth signalThe mathematical function of sawtooth wave signal is that:(2)y Asawtooth ft b π=+A: amplitude; f: frequency; b: phase;t: 0:1/s:1;(s is sample); The M-program is:A=get(handles.Amplitude,'Value'); f=get(handles.Frequency,'Value'); p=get(handles.Phase,'Value');s=get(handles.Sample,'Value');x=0:1/s:10;y=A*sawtooth(2*pi*f*x+p);plot(handles.screen,x,y,'b');legend(‘tooth’);wavplay(y);grid on;axis([0,0.1,-20,20]);We could run the program by setting the parameters:3.4 Image of sawtooth signal3.5 Achieve white noise signalThe mathematical function of white noise wave signal is that:y A rand length x=-2((1,())0.5)A: amplitude;f: frequency;b: phase;t: 0:1/s:1;(s is sample);The M-program is:A=get(handles.Amplitude,'Value');f=get(handles.Frequency,'Value');p=get(handles.Phase,'Value');s=get(handles.Sample,'Value');x=0:1/s:10;y=2* A*(rand(1,length(x))-0.5);plot(handles.screen,x,y,'b');legend('white noise');wavplay(y);grid on;axis([0,0.1,-20,20]);We could run the program by setting the parameters:3.5 Image of white noise signal4 Exist problemThere are many problems in the design because I didn’t use matlab and the GUI modules ever.(1) I am not familiar to the interface and operator of matlab,which lead toI program without efficiency.(2) Without systematic studying of matlab,I could not express my ideas by using succinct matlab language.(3)In the beginning, I don’t understand the handle deep, and don,t have aclear idea.5. ConclusionIn the latter study, I will be more systematic learning MATLAB this powerful engineering software, has a fight on his understanding of the macro, on the basis of multi-programming exercises to strengthen the commonly used functions and concepts of memory, and finally, contact practical, try to solve some common engineering problems.References[1] 薛⼭. MATLAB基础教程. [M] 北京:清华⼤学出版社,2011.3。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
波(random),频变波(chirp),以及自定义波形(读取图形和
数据文件)。波形参数包括频率(frequency),幅度
(amplitude),直流偏置(offset),初相位(phase),占空
比(duty cycle),频变方法(method),频变时间(target
time),初始频率(initial(F)),目标频率(target(F))
信号在采样率分之一时间间隔的采样值。再将各相邻采
样点用短直线相连,即可近似还原出原波形。可见,同
等情况下,采样率越高,信号的恢复程度越好。
正弦波(sin)
正弦波参数如表1所示。设采样率:samp
数组表示: t=0:(1/samp):1; y= offset + amplitude *sin(2*pi*frequency*t+phase*pi/180); 说明:t在1秒内有samp个均匀采样点,y做为samp×1的一维数组
输出到板卡的一个通道
Sa波(sinc)
Sa波参数如表2所示。设采样率:samp
数组表示: t=0:(1/samp):1; y=offset+amplitude*sin(2*pi*frequency*t+phase*pi/180+eps)
./ (2*pi*frequency*t+phase*pi/180+eps); 这里“/”用的是“./”,表示数组中对应元素运算。为了
说明:t在1秒内有samp个均匀采样点,y做为samp×1的一维数组 输出到板卡的一个通道。频率变化的方式不同,输出表达式也不 同。
频变波参数如表7所示。设采样率:samp
数组表示:
t=0:(1/samp):1;
method=linear时
y=sin(2*pi*mod(t,tTime).*(iF+mod(t,tTime)*(tF-iF)/tTime));
method=log时
y=sin(2*pi*mod(t,tTime).*mod(t,tTime)*exp(log(tF/iF))*iF/ tTime)
2*pi*frequency*t+phase*pi/180=0的情况表达式仍然有效,加 入无限小量“eps”。
方波(square)
方波参数如表3所示。设采样率:samp
数组表示: t=0:(1/samp):1; y= offset + amplitude* sign(duty/100/ frequency -mod(t,
同硬件也是不同的(PCI-6024E是-10~10v),超出范围的部分是
无效的,程序同样会报错并停止运行。
触发start 按钮将使程序进入运行状态,这包括计算波形
(二维数组),绘制波形(在PC界面坐标系中),以及输出波形
(在选定的输出板卡中)。触发stop 按钮(运行状态时start按
钮就转变为stop按钮了)将停止程序的运行,以及数组数据输出
到板卡上。
界面浏览
本信号发生器的界面大致是有以下五个区域组成:菜单区,参数 设定区(output1,output2),波形绘制(output1output2), 输出选择区,以及输出控制区。界面如下图所示。
信号生成
信号生成,即是用数学方法将所选波形(连续信
号)按采样率离散为数字序列,序列中的各个数字既是
数组表示: t=0:(1/samp):1; y=2* amplitude*(rand(1,length(t))-0.5)+ offset; 说明:seed为每个周期内的采样点数,t在1秒内有samp个均匀采
样点,y做为samp×1的一维数组输出到板卡的一个通道。
频变波(chirp)
等。因为PCI-6024E只有2路DAC,所以输出通道的选择只有这2路,
或者只输出其中的一路。运行、停止则是开始和停止计算波形、
输出波形的过程。编写M文件来处理GUI界面的事件的响应。
本设计的独特之处在于输出通道的可选择性,可选择NI-DAQ
(PCI-6024E),声卡,或者并行等。考虑到信号幅度范围对于不
1/frequency));
三角波(triangle)
三角波参数如表4所示。设采样率:samp
数组表示: t=0:(1/samp):1; y=(4*amplitude*frequency*mod(t,1/frequency)-
2*amplitude).*sign(mod(t1,1/frequency)-1/frequency/2)amplitude+offset; 上升和下降的占空比均为50%。
其中包含了许多有用的函数供用户调用,这些函数根据各自不同
的功能大致可分为以下几组:数据获取对象的构造,获取和设置
参数,执行,模拟输入/输出函数,数字输入/输出函数。在本次
设计通用信号发生器的过程中,大量使用了以上函数,并采用两
种不同的方式完成数/模转换的工作。
二、信号发生器的设计和实现
程序简介
程序参考MATLAB 的Data Acquisition Toolbox实现。在
锯齿波(tooth)
锯齿波参数如表5所示。设采样率:samp
数组表示: t=0:(1/samp):1; y1=2 *amplitude *frequency *mod(t,1/ frequency)-
amplitude+ offset;
噪声波(random)
噪声波参数如表6所示。设采样率:samp
MATLAB的GUI设计中,有两种设计方式:利用GUI编辑器和编写M文
件。
GUI是用户的操作界面,是选择波形、设定和修改波形参数、
设定采样率、选择输出通道和运行、停止程序的人机交互接口。
本程序的界面中,可选波形包括正余弦(sin),Sa波(sinc),
方波(square),三角波(triangle),锯齿波(tooth),噪声
基于MATLAB的信号发生器设计
一、前言
目前,MATLAB已经广泛地应用于工程设计的各个领域,如电
子、通信等领域,它已成为国际上最流行的计算机仿真软件设计
工具。MATLAB不再仅仅是一个矩阵实验室,而是一种功能强大的
的实用高级计算机编程语言。
Data Acquisition Toolbox是MATLAB自带的数据获取工具箱,