基于MATLAB的函数信号发生器1
基于matlab 信号发生器设计
三.信号发生器设计
1.信号发生器程序框图设计
首先先在程序面板上找出基本信号发生器,在分别标添加输入为、幅值、预设频率、占空比、输出频率;然后再添加输出为波形图
2.信号发生器的前面板设计
第一步,先把程序版所设计的在前面版上排版整理;第二步,用控件里面的修饰选择上凹凸选项;第三步,在波形显示上面添加一个标签(信号发生器)。
运行结果:
三角波
正选波
方波
锯齿波
3.结束语
设计的信号发生器可以实现在波形显示波形信号, 信号的相位和幅值还有频率均可自己调试。
适合于科研分析。
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与声卡的低频信号发生器的设计与实现
(P) 建立一个静态文本框, 修改 M8F<?A 为K输入频率K。 建立四个按钮, 用来产生、 显示、 输出各种信号及退 (4) K方波产生显 出系统。其 M8F<?A 值分别为K正弦波产生显示K、 示 K 、K 三角波显示 K 、 K 信号输出 KK 系统退出 K ,其 87A 值分别 KEBMQ:B88G?3K 、 KEBMQ:B88G?PK 、 KEBMQ:B88G?4K K 为 KEBMQ:B88G?OK、 EBMQ:B88G?RK。 3S3 回调函数的编写 主界面创建好后, 系统相应的会产生一个 J 函数, 该函 数的清单如下:
5语言有强大的音频处理函数和数据处理功能能够方便地产生各种波形的数据数组同时通过音频处理函数又可以很方便的将数据数组传递给声音设备并以特定的采样频率和传输比特位由声卡输出并且
3jj’ 年 4 月
电
脑
学
习第 3 期
基于 !7897: 与声卡的低频信号发生器的设计与实现
杨洁芳!
摘 要 介绍了用 !7897: 与声卡来实现低频信号发生器的设计过程。 关键词 !7897: 声卡 发生器 实现 中图分类号 #+POk 文献标识码 l Ojj3g3433 j3gjjPjgj3 文章编号: (3jj’)
同时还生成了六个控件函数,我们可以给不同的控件 添加事件响应子函数, 以实现信号发生器的功能: RCRCF 频率值的读取
<%; (>$#?64:C4?!<F78:<%!#&8) ; :<%’&4< (:<%) ; "’4E$6 =$<=> 4%%2%?6& (8 数据有问题, 请检查 8) ;
#对于环境噪音, 当信号频率与 ^(/_ 相差很大时可以 忽略环境噪音对设备的影响,但当信号频率接近 ^(/_ 时, 应对实验设备采取良好的屏蔽措施; $采用滤波电路消除声卡输出的噪音。 ] 结 束 语 利用 K+O*+@ 丰富的数据处理函数和强大的图形可视 化功能, 把它与声卡结合来实现信号源, 使设计者能快速实 现多种方案, 对于信号源的采集、 分析和处理都带来了较大 的方便。 虽然这种方法实现的信号源受声卡采样频率、 电脑 噪音的影响较大,但还是能够基本满足电路实验室低频信 号发生器的要求。 参 考 文 献 中国水利水电出 [F]张瑞丰编著 C 精通 K$<6$B‘C^C 北京: 版社7R((]C [R]蒙以正编著 C K$<6$B^Ca 应用与技巧 C 北京: 科学出版 社7 FYYYC [V] 张森, 张正亮等编著 C K$<6$B 仿真技术与实例应用教 R((]C 机械工业出版社, 程C 北京:
基于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。
基于MATLAB的FSK调制信号发生器的模拟仿真
2012年8月第24期科技视界SCIENCE &TECHNOLOGY VISION 科技视界Science &Technology Vision作者简介:葛熠(1991—),男,江苏溧阳人,本科,通信工程专业,研究方向为信息与通信工程。
0引言由于目前大多数信道不适合传输基带信号,为了使基带信号能利用这些信道进行传输,必须使代表信息的原始信号经过一种变换得到另一种新信号,这种变换就是调制。
在数字调制中,频移键控(FSK)[1]方法简单,易于实现,并且解调不须恢复本地载波,可以异步传输,抗噪声和抗衰落性能也较强。
因此,FSK 调制技术在通信行业得到了广泛地应用,并且主要适用于用于低、中速数据传输[2]。
因此本文以通用DSP builder 来实现FSK 调制信号发生器的设计,并借助MATLAB 仿真工具SIMULINK 进行仿真检测。
1MATLAB 和DSP Builder 的简单介绍1.1MATLAB 简介MATLAB 是矩阵实验室的简称,主要包括MATLAB 和Simulink 两大部分。
MATLAB 可以进行矩形运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域[3]。
Simulink 是MATLAB 最重要的组件之一,它提供一个动态系统建模、仿真和综合分析的集成环境。
在该环境中,无需大量书写程序,而只需要通过简单直观的鼠标操作,就可构造出复杂的系统。
Simulink [4]具有适应面广、结构和流程清晰及仿真精细、贴近实际、效率高、灵活等优点。
1.2DSP Builder 简介Altera 可编程逻辑器件中的DSP 系统设计需要高级算法和HDL 开发工具。
Altera DSP Builder 将MATLAB 和Simulink 系统级设计工具的算法开发、仿真和验证功能与VHDL 综合、仿真和Altera 开发工具整合在一起,实现了这些工具的集成[5]。
基于Matlab_DSPBuilder的正弦信号发生器设计.
基于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的数字信号发生器报告
基于MATLAB的数字信号发生器设计报告摘要:数字信号发生器是基于软硬件实现的一种波形发生仪器。
在工工程实践中需要检测和分析的各种复杂信号均可分解成各简单信号之和,而这些简单信号皆可由数字信号发生器模拟产生,因此它在工程分析和实验教学有着广泛的应用。
MATLAB是一个数据分析和处理功能十分强大的工程实用软件,他的数据采集工具箱为实现数据的输入和输出提供了十分方便的函数和命令,在数字信号处理方面方便实用。
本文介绍了使用MATLAB建立一个简单数字信号发生器的基本流程,并详细叙述了简单波形(正弦波、方波、三角波、锯齿波、白噪声)信号的具体实现方法。
关键字:MATLAB ,数字信号发生器1前言随着计算机软硬件技术的发展,越来越多现实物品的功能能够由计算机实现。
信号发生器原本是模拟电子技术发展的产物,到后来的数字信号发生器也是通过硬件实现的,本文将给出通过计算机软件实现的数字信号发生器。
信号发生器是一种常用的信号源,广泛应用于电子技术实验、自控系统和科学研究等领域。
传统的台式仪器如任意函数发生器等加工工艺复杂、价格高、仪器面板单调、数据存储、处理不方便。
以Matlab和LabVlEW为代表的软件的出现,轻松地用虚拟仪器技术解决了这些问题。
Matlab是一个数据分析和处理功能十分强大的工程实用软件,他的数据采集工具箱(data acquisition toolbox)为实现数据的输入和输出提供了十分方便的函数和命令,利用这些函数和命令可以很容易地实现对外部物理世界的信号输出和输入。
根据声卡输出信号的原理,采用Matlab软件编程,可以方便地输出所需要的正弦波、三角波、方波等多种信号,有效地实现信号发生器的基本功能。
2 方案设计要设计的数字信号有正弦信号、方波信号、三角波、锯齿波、白噪声、脉冲信号。
其中,前五种波形都可以利用MATLAB 提供的函数实现,并根据输入的幅值、相位、频率等信息进行调整。
脉冲信号由自己编写程序实现,并以定义的时间节点控制脉冲出现的时刻。
基于MATLAB的CDMA信号发生器的设计与仿真
基于MATLAB的CDMA信号发生器的设计与仿真摘要:本文首先介绍了CDMA技术原理,在应用IS-95标准的链路基础之上,完成CDMA 信号发生器的总体设计和主要模块的设计,最后通过MATLAB软件模拟仿真了CDMA信号发生器工作流程,并对CDMA信号进行了波形仿真。
关键词:CDMA;MATLAB;信号发生器;仿真随着科学技术的不断发展,人们能够随时随刻进行信息交流,不再受到时间和空间的限制。
移动通信技术综合了有线网络和无线网络的传输方式,使人们能够在自由活动中与其他移动终端进行通信,从而有效节约了资源成本,同时提高了工作效率,具有一定的社会效益和经济价值。
一、CDMA技术原理概述(一)码分多址技术在CDMA通信系统中,对用户在信息传输的过程中应用到的信号进行区别不能够完全依靠频率和时隙的不同,而是应该依靠不同的编码序列进行区分(信号的波形)。
CDMA信号从频域和石宇的角度来说是相互重叠的,接收器相关器能够在多个CDMA信号区别出使用预定编码类型的信号,对于其他使用不同编码类型的信号来说,由于与接收机的编码类型不同,所以不能够进行解调,这些信号的存在通常被称为多址干扰[1]。
(二)扩频通信技术扩频是一种传输方式,指的是传输数据信息的信号带宽大于数据信息本身的带宽,频带的扩展与所传输的信息码无关,而是由与数据信息相互独立的扩频码来实现的,在接收端用同步接收来实现解扩频和数据恢复。
通常情况下,一个信息传输速率为9.6kbps的二进制比特流在由扩频通信进行传输时带宽可以达到1.2288MH。
(三)CDMA通信原理在发送端将等待传输的语音数据经过A/D转换成为二进制数据信息,再由高速率的伪随机扩频序列进行调制,将数据信息的频带扩展到较宽的频带,由此,在信道传输中的语音信号的带宽就会大于原始信号的带宽。
由于本地产生的伪码与扩频信号的伪码相同,所以能够将原始的窄带信号还原,从而通过窄带滤波之后恢复语音数据,之后在经过D/A转换将原始语音恢复。
DSP实验一报告 基于MATLAB的信号及系统函数分析.docx
同济大学电子与信息工程学院实验中心实验报告课程名称:_ 任课教师:李蓉艳实验学时:2学时实验项目名称:__基于MATLAB的信号及系统函数分析实验指导教师:李蓉艳专业:动化学号:—082559 姓名:—张炜实验日期:辿1年5月27日实验地点:虫信楼315/317实验一 基于MATLAB 的信号及系统函数分析 1 •实验目的(1) 了解MATLAB 语言及其使用o(2) 掌握连续吋间信号及离散吋间信号产生的方法。
(3) 观察给定系统的零、极点图,幅频特性及单位脉冲响应。
(4) 观察采样频率的变化对信号频率的影响。
2.实验原理与方法1) 若连续时间信号: 垃)=恥一“ sin(Q o r>(r) 对该信号进行采样,可得到采样序列:x(n) = A (/Z T) = Ae^"1 sin(Q 0HT)w(n) 式中A 为幅度,u 为衰减因子,是模拟角频率,T 为采样间隔。
2) 系统函数为:I-L6314z _, +1.2057存2 -0.32严若已知单位脉冲响应h(t),对它进行z 变换即得到系统函数: 00H(z)=工 h(n)Tn=-co系统函数的零、极点分布情况直接决定了系统的特性,对于一个线性时不 变因果稳定系统,要求其极点全部位于单位圆内。
根据单位脉冲响应h(t)的 图形,也可判断该系统是否为因果稳定系统。
若将"严代入H(z),则得到 系统的频率响应:1+£-沟+£_2沟+£一3沟匚1.631牡—加+1.2057厂2加—0.32厂恥3)采样间隔T 与采样频率化的关系为 采样频率必须满足采样定理, 否则会发生频率混叠失真,对于信号x(t),采样后x(n) = x(/)| T '对应的傅H(z) = H (严)=3・实验内容及步骤(1) 实验原理1),掌握连续时间信号及离散时间信号产生的方法。
己知连续时间信号: X (r) = Ae'^ sin(Q o r>(r)此处 p=Q°=a=222.144采样序列为:x(/z) = x(nT) = Ae~anT sin(Q ()/?T)w(/z) f s = +程序:subplot(3,l ,l);t=0:0.001:0.05;A=444.128;p=222.144; x=A*exp((-p)*t).*sin(p*t);plot(t,x);subplot(3,l,2); n=0:49;A=444」28;p=222.144; fs=1000; x=A*exp((-p)*n/fs).*sin(p*n/fs);stem(n,x); text(20, 100/ fs=l()00,);subplot(3,l,3); n=0:49;A=444.128;p=222.144; fs=300; x=A*exp((-p)*n/fs).*sin(p*n/fs);stem(n,x); text(20, 100/ fs=300,);立叶变换为: xg)专乞 xg —加1J],'m=-co50 ■500 150100-50 - Or5Oo 10 1015 20 25 30 35 40 45 5015 fs=30020 25 30 35 40 45 50150Qfs=1000100O Q(2)实验原理2),观察给定系统的零、极点图,单位脉冲响应及幅频特性。
信号发生器的 MATLAB仿真
信号发生器的MATLAB仿真[摘要]本论文以课题“信号发生器的MATLAB仿真”为背景展开,介绍了MATLAB仿真技术的发展和信号发生器的现状,结合线性调制系统的应用背景设计了一种结构简便、性能优良的线性调制信号发生器,全面的实现信号发生器的功能要求。
本论文主要研究内容包括:1.研究了信号发生器的现状,MATLAB仿真技术的发展及现状,介绍了用MATLAB进行仿真的实用性及可靠性。
2.研究了常规调制信号ASK信号、FSK信号和PSK等有关理论,为信号生成打下基础。
3.以线性调制为例研究了MATLAB仿真的三种方法,比较了其各自的优缺点,同时选定以Simulink进行系统的仿真。
4.用Simulink进行线性调制系统的模拟,完成软件设计的实现,对系统进行调试,使系统达到指标需求。
关键词:信号发生器;线性调制系统;MATLAB仿真;simulink[ABSTRACT]The paper based on the Project “MATLAB simulation of signal generator”, MATLAB simulation technology and the development situation of the signal generator is introduced. Combined with linear modulation system application background designs a simple structure and good performanced linear modulation signal generator. It realize the comprehensive function signal generator.This thesis mainly research contents include:First, research the status of the signal generator and development and the status quo of MATLAB simulation technology. It also introduced the practicability and reliability of MATLAB simulation .Second, study the conventional modulation signal FSK signal and itinerary signal, PSK theories,it layed the foundation for the signal generation.Third, use the example of linear modulation to study three methods of MATLAB simulation, compare their advantages and disadvantages, and decided to use Simulink conduct simulation.Four, using Simulink simulate linear modulation system simulation, realize of the software design, and testing system,finally, make system index demand.Key word :Signal generator; Linearity modulation system; MATLAB Simulation; simulink目录摘要 (1)ABSTRACT (2)目录 (3)第一章绪论 (1)1.1论文的立题背景及研究意义 (1)1.2MATLAB仿真技术的发展及现状 (1)1.3信号发生器的发展及现状 (3)1.4论文的主要研究内容 (4)第二章信号发生器的理论部分 (5)2.1信号发生器分类简介 (5)2.2常规信号 (7)2.3本章小结 (10)第三章MATLAB的三种仿真办法 (11)3.1仿真基础原理 (11)3.2三种仿真方法的简单实现 (12)3.3基于Matlab 7.0的三种仿真方法比较 (15)3.4本章小结 (15)第四章信号发生器的MATLAB仿真实现 (16)4.1常规信号的Matlab仿真实现 (16)4.2线性调制系统Matlab仿真实现 (18)4.3AM信号发生的Simulink仿真实现 (20)4.4本章小结 (23)结束语 (24)致谢 (25)参考文献 (26)第一章绪论1.1 论文的立题背景及研究意义在现代声纳、雷达等通信系统测试与仿真中都需要高精度的任意的波形信号,任意波形信号的重构技术也是声学和语音信号合成等应用领域中的关键技术之一。
MATLAB函数发生器试验程序
MATLAB函数发生器试验程序一、功能要求函数发生器要具备以下功能:(1)可调整幅值、相位、频率;调整后无须重新启动;(2)可在波形上迭加噪声(3)有多种波形可选择(4)特殊波形:直流电平、用户自定义波形二、程序说明2.1 产生自定义函数和基本函数功能的程序实现利用一个摇杆开关(自定义设置)控制用户自定义的布尔值。
当该值为真(摇杆为红色)为即产生用户自定义波形。
反之(摇杆为灰色),产生基本函数波形。
为了实现这一功能,采用了一个条件结构。
根据要求,当布尔值为真时,要求产生自定义波形,为此“真”程序框图VI中应包括了自定义是所需要的波形参数(包括频率、幅值、自定义公式),利用数值输入控件,用户可以自由调整波形参数,获取自定义波形。
当水平摇杆开关(自定义设置)值为假时,执行“假”程序框图,其中包括产生基本波形所需要的参数(包括频率、幅值、相位、波形类型),再有函数发生器产生相应的基本波形。
2.2 迭加噪声功能的程序实现摇杆开关(噪声设置)值为假时,即开关颜色为灰色时,不添加噪声。
此时,两个选择比较节点输入值为假,分别输出其左下角端口的输入值。
即“噪声波形”显示为一条0线。
“函数波形”输出没有添加噪声的波形。
摇杆开关(噪声设置)值为真时,即开关颜色为红色时,添加噪声。
噪声通过“噪声设置”簇和高斯白噪声波形产生。
两个选择比较节点输入值为真假,分别输出其左上角端口的输入值。
即“噪声波形”显示噪声的波形。
“函数波形”输出添加过噪声的波形。
2.3参数可调、多种波形可选的实现在运行程序之前,用户可以根据需要调整相应的数值输入控件,进而设置各种函数的幅值、相位和频率。
调整后不需重新启动。
在“信号类型”控件中可以选择多种可以选择多种波形类型,同时可以设置各种函数的幅值、相位和频率。
该函数发生器的源程序后面板及前面板如下图所示:图2.1 函数发生器程序框图图2.2函数发生器前面板三、实验测试记录分别改变摇杆开关的值,调试程序直至取得理想运行效果。
实验一 MATLAB基础及基本信号产生
实验一基于MATLAB的信号表示与运算一、实训目的1.掌握用Matlab软件产生基本信号(连续/离散的正弦、方波、锯齿波、Sinc 函数)的方法2.应用Matlab软件实现信号的加、减、乘、除运算3.应用Matlab软件实现信号的时移、反折、尺度变换二、实训仪器与设备电脑、MATLAB软件三、实训内容1.产生连续信号波形的方法(1)利用 Matlab 软件的 funtool 符号计算方式——图式化函数计算器在 Matlab 环境下输入指令 funtool,产生三个视窗:figure No.1:可轮流激活,显示 figure No.3 的计算结果figure No.2:可轮流激活,显示 figure No.3 的计算结果figure No.3:函数运算器。
其中 figure No.3 函数运算器的功能:f,g可输入函数表达式。
x是自变量,在缺省时是在[-2pi,2pi]范围。
自由参数是 a。
分别输入完毕,按下面四排的任一运算操作键,则可在 figure No.1或 figure No.2 中看到产生的波形。
figure No.3 函数运算器可实现的数学运算:Df 求 f(x)对于 x 的导数 If 求 f(x)对于 x 的积分Simp 使 f(x)的表达式尽可能简化 Num 取 f(x)的分子表达式Den 取 f(x)的分母表达式 1/f 求 f(x)的倒数finv 求 f(x)的反函数函数 f(x)和自由参数 a 的运算:f+a,f-a,f*a,f/a,f^a, x+a , x*a 函数 f(x)和 g(x)函数间的运算:f+g,f-g,f*g,f/g,f=g,g=f(2)利用 Matlab 软件的信号处理工具箱(Signal Processing Toolbox)中的函数产生常见信号的函数如表 2.1-1 所示。
表 2.1-1a、产生正弦波例如:t=(0:0.001:50);y=sin(2*pi*50*t);plot(t(1:50),y(1:50))b、产生叠加随机噪声的正弦波例如:t=(0:0.001:50);y=sin(2*pi*50*t);s=y+randn(size(t));plot(t(1:50),s(1:50))2.连续信号的运算(1)相加连续信号的相加,是指两信号的对应时刻值相加,即f(t)= f1(t)+f2(t)。
matlab基于DDS函数发生器设计
matlab课程设计题目:DDS函数发生器姓名:学号:学院:机电与信息工程学院专业:电子信息科学与技术年级2010级指导教师:刘若伦一、 课程设计题目能够输出1-1000Hz ,幅度可调的平滑的正弦、三角、矩形、锯齿波等信号。
二、 设计思想和系统功能及结构说明DDS 是通过对于预先存储起来的基准信号进行一定间隔的采样,将样点重新组合成所需各种频率信号的技术。
可以通过存储的不同类型的基准信号,产生与基准信号相同类型,不同频率、初相的信号。
参考所给资料,用正弦信号的产生过程来说明其原理:一个纯净的单频信号可表示为:()()o o t f U t u θπ+=2sin (1-1)只要它的幅度U 和初始相位o θ不变,它的频谱就是位于o f 的一条谱线。
为了分析简化起见,可令U=1,o θ=0,这将不会影响对频率的研究。
即:()()()t t f t u o θπsin 2sin == (1-2)如果对(2-2)的信号进行采样,采样周期为c T (即采样频率为c f ),则可得到离散的波形序列:()()c o nT f n u π2sin = (1-3)相应的离散相位序列为:()n nT f n c o •∆==θπθ2 ()...2,1,0=n (1-4)式中:c o c o f f T f ππθ22==∆ (1-5)是连续两次采样之间的相位增量。
根据采样定理:c o f f 21< (1-6)只要从(2-3)出来的离散序列即可唯一的恢复出(1-2)的模拟信号。
从(1-2)可知,是相位函数的斜率决定了信号的频率;从(1-5)可知,决定相位函数斜率的是两次采样之间的相位增量θ∆。
因此,只要控制这个相位增量,就可以控制合成信号的频率。
现将整个周期的相位2π分成M 份,每一份为M πδ2=,若每次的相位增量选择为δ的K 倍,即可得到信号的频率:c c o f M K T K f ==πδ2 (1-7) 相应的模拟信号为:()⎪⎭⎫ ⎝⎛=t f M K t u c π2sin (1-8)式中K 和M 都是正整数,根据采样定理的要求,K 的最大值应小于M 的1/2。
MatlabGUI程序设计入门——信号发生器+时域分析
MatlabGUI程序设计⼊门——信号发⽣器+时域分析背景:学习matlab gui编程⼊门,完成⼀个基于GUIDE的图形化界⾯程序,结合信号⽣成及分析等。
操作步骤:1、新建程序新建⼀个GUIDE程序这⾥选择第⼀个选项,即创建⼀个空⽩的GUIDE模板(下⾯的三个选项为matlab⾃带的3个guide模板,可以尝试使⽤,但是空⽩模板更灵活⼀些)。
创建完成后,将会得到这样⼀个⾯板,这就是进⾏matlab进⾏guide图形化编程界⾯,在这⾥我们可以添加我们需要的各种控件到⾯板中。
可以看到上图中的,左侧有7⾏2列共14个常⽤的控件,添加时直接拖动即可,右侧的带油栅格的⾯板就是完成guide变成后,程序运⾏时的图形化界⾯。
7⾏2列控件分别为:普通按钮滑动条单选按钮复选按钮可编辑⽂本静态⽂本弹出式菜单列表框切换按钮表坐标轴⾯板按钮组ActiveX控件其中常⽤的控件包括:普通按钮、滑动条、可编辑⽂本、静态⽂本、坐标轴等。
2、图形化界⾯编程⾸先可以根据预计⽣成的⾯板的⼤⼩,拉伸编程⾯板。
然后将需要的控件拖拽到编程⾯板中,并进⾏布局。
这⾥可以使⽤上⽅⼯具栏的“对其对象”⼯具,进⾏布局。
如:完成布局后可以双击各个控件,修改其属性,控件的属性⾯板如下:(以滑动条为例)下⾯,对⼏个⽐较重要的属性进⾏介绍:字体属性:滑动条变量取值范围:标注⽂字(String)&标签(Tag):标签是最重要的属性,在代码中对每⼀个控件进⾏操作时,都是以其tag作为索引。
单位(Units)&初始值(Value):单位⼀般会选择charaters(绝对单位)和normalized(相对单位),选择characters则输出值为设定的最⼤最⼩值之间的实际值,选择normalized则输出值为归⼀化后的0~1之间的值。
其他各个控件的属性会有⼀些区别,和各个控件⾃⾝的特性有关,基本可以直接根据各个属性的字⾯意思理解。
完成控件的添加、布局和属性设定后,即可得到⼀个如下的界⾯图:3、m⽂件编程:完成上述图形编程后,点击保存,则会⾃动根据我们的设定,⽣成⼀个m⽂件模板。
基于MATLAB的数字信号发生器报告-蔡辉-M201070440
基于MATLAB的数字信号发生器设计报告蔡辉机电M201070440摘要:数字信号发生器是基于软硬件实现的一种波形发生仪器。
在工工程实践中需要检测和分析的各种复杂信号均可分解成各简单信号之和,而这些简单信号皆可由数字信号发生器模拟产生,因此它在工程分析和实验教学有着广泛的应用。
MATLAB是一个数据分析和处理功能十分强大的工程实用软件,他的数据采集工具箱为实现数据的输入和输出提供了十分方便的函数和命令,在数字信号处理方面方便实用。
本文介绍了使用MATLAB建立一个简单数字信号发生器的基本流程,并详细叙述了简单波形(正弦波、方波、三角波、锯齿波、白噪声)信号的具体实现方法。
关键字:MATLAB ,数字信号发生器1概述随着计算机软硬件技术的发展,越来越多现实物品的功能能够由计算机实现。
信号发生器原本是模拟电子技术发展的产物,到后来的数字信号发生器也是通过硬件实现的,本文将给出通过计算机软件实现的数字信号发生器。
信号发生器是一种常用的信号源,广泛应用于电子技术实验、自控系统和科学研究等领域。
传统的台式仪器如任意函数发生器等加工工艺复杂、价格高、仪器面板单调、数据存储、处理不方便。
以Matlab和LabVlEW 为代表的软件的出现,轻松地用虚拟仪器技术解决了这些问题。
Matlab 是一个数据分析和处理功能十分强大的工程实用软件,他的数据采集工具箱(data acquisition toolbox )为实现数据的输入和输出提供了十分方便的函数和命令,利用这些函数和命令可以很容易地实现对外部物理世界的信号输出和输入。
根据声卡输出信号的原理,采用Matlab 软件编程,可以方便地输出所需要的正弦波、三角波、方波等多种信号,有效地实现信号发生器的基本功能。
2 设计原理要设计的数字信号有正弦信号、方波信号、三角波、锯齿波、白噪声、脉冲信号。
其中,前五种波形都可以利用MATLAB 提供的函数实现,并根据输入的幅值、相位、频率等信息进行调整。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
信息系统仿真设计实训报告学院信息电子技术专业****班级******8学号********8姓名***指导教师***2014年7月25日基于MATLAB的函数信号发生器1、目的函数信号发生器是基于软硬件实现的一种波形发生仪器。
在工工程实践中需要检测和分析的各种复杂信号均可分解成各简单信号之和,而这些简单信号可由函数信号发生器模拟产生,因此它在工程分析和实验教学有着广泛的应用。
MATLAB 是一个数据分析和处理功能十分强大的工程实用软件,他的数据采集工具箱为实现数据的输入和输出提供了十分方便的函数和命令,在信号处理方面方便实用。
本文介绍了使MATLAB建立一个简单函数信号发生器的基本流程,并详细叙述了简单波形(正弦波、方波、三角波、锯齿波、白噪声、脉冲)信号的具体实现方法。
通过此次的设计对MATLAB有个更深刻的了解,熟练的使用MATLAB的GUI设计简单的界面程序。
2、工作原理与计算该虚拟信号发生器的设计由GUI界面及其对应的程序组成。
设计函数发生器有正弦信号、方波信号、三角波、锯齿波、白噪声、脉冲信号。
其中,前五种波形都可以利用MATLAB提供的函数实现,并根据输入的幅值、相位、频率等信息进行调整。
根据脉冲信号在某一时刻出现的一冲激特点,可由编写程序来实现。
界面主要由MATLAB创建,之后编写界面所用的函数,从而实现函数信号发生器。
(1)正弦信号的实现正弦波信号的数学表达式如(1)。
y=Asin(ωt+φ) (1)其中:A为幅值;ω为频率; 为相位。
在MATLAB中,幅值、频率、相位、在用户界面输入。
y的表达式都得到以后,用plot二维作图函数获得波形显示。
(2)方波信号的实现与正弦波一样,从用户界面获得幅值、频率、相位、采样频率等信息,用squarey=square(t,duty)(2)其中duty为占空比。
(3)三角波和锯齿波的实现这两种波形的表达式皆要借助于sawtooth命令。
Swathooth(t)用来产生周期为2π,幅值为从-1到+1的锯齿波。
当width=1时,产生标准的锯齿波。
其表达式如(3)。
y=Aswatooth(ωt+φ,1) (3)其中A为幅值,ω为频率,φ为相位。
Sawtooth(t,width)用于产生三角波,其中width是取值介于0和1之间的一个参数,它决定了在一个周期中峰值的发生点。
本设计中取width=0.5,可以获得标准形状的三角波。
其表达式如(4)。
y=Aswatooth(ωt+φ,0.5) (4)其中A为幅值,ω为频率,φ为相位。
(4)白噪声的实现白噪声,是一种功率频谱密为常数的随机信号或随机过程。
换句话说,此信号在各个频段上的功率是一样的,由于白光是由各种频率(颜色)的单色光混合而成,因而此信号的这种具有平坦功率谱的性质被称作是“白色的”,此信号也因此被称作白噪声。
相对的,其他不具有这一性质的噪声信号被称为有色噪声。
白噪声在数学处理上比较方便,因此它是系统分析的有力工具。
一般,只要一个噪声过程所具有的频谱宽度远远大于它所作用系统的带宽,并且在该带宽中其频谱密度基本上可以作为常数来考虑,就可以把它作为白噪声来处理。
在MATLAB中白噪声的实现借助于randn函数,它的功能是产生一个均值为零方差为1的随机高斯分布序列,其表达式如(5)。
(5)脉冲信号的实现脉冲信号是指瞬间突然变化,作用时间极短的电压或电流。
可以是周期性重复的,也可以是非周期性的或单次的。
脉冲信号表现在平面坐标上就是一条有无数断点的曲线,也就是说在周期性的一些地方点的极限不存在。
在MATLAB中脉冲信号可以由表达式(6)y=A∗(t==n)(6)其中A为幅值,在t=n的时候出现脉冲。
3、步骤3.1搭建函数信号发生器GUI图形用于界面(Graphical User Interfaces,GUI)是提供人机交互的工具和方法。
GUI是包含图形对象(如窗口、图标、菜单和文本)的用户界面。
以某种方式选择或激活这些对象时,通常会引起动作或者发生变化。
一个设计优秀的GUI 能够非常直观的让用户知道如何操作MATLAB界面,并且了解设计者的开发意图。
MATLAB的 GUI为开发者提供了一个不脱离MATLAB的开发环境,有助于MATLAB程序的GUI集成。
这样可以使开发者不必理会一大堆烦杂的代码,简化程序,但是同样可以实现向决策者提供图文并茂的界面,甚至达到多媒体的效果。
可以说MATLAB提供了一个简便的开发环境,可以让开发者快速上手,提高了开发者的工作效率。
具体搭建GUI的步骤如下:1)在Command 里面输入GUIDE 或者从菜单里面,或者从快捷按钮均可进入GUIDE,然后新建一个GUI,进入布局编辑器。
2)为GUI添加控件:编辑框(Edit Text)控件、静态文本(Static Text)、滚动条(Slider)控件、按钮(Push Button)控件、坐标轴(Axes)控件等。
按照自己的规划摆放GUI,进行布局设计。
3)设置控件的属性。
可以改变控件的名称、大小字体显示以及颜色等等根据上述步骤做出的GUI如下图1所示图1函数信号发生器界面3.2编写M文件搭建好界面后保存,系统将自动生成M文件与Fig文件,并且M文件内部已经按照GUI界面中组件的类别,自动生成了相应的模块调用函数。
根据需要,我们对生成的各个函数进行补充,完成函数功能的实现及各个函数的调用关系。
本次实训主要对控件的回调函数(callback)下写入相应的程序。
下面这段程序(部分程序)实现了函数根据用户的输入生成不同的正弦波、三角波、方波、锯齿波等,最终将波形显示在坐标轴上。
其中,sliderfuzhi ,editfuzhi 输入幅值,当用户在输入一个新的幅值时,A为对应幅值变量,发生相应改变,并判断选择的是何种波型,然后对相应的波型的幅值进行修改,最终通过绘图函数的调用将新波形显示在图上。
同理,当我们逐渐改变频率和相位时,波形也会对应发生变化,在此不再赘述。
其部分程序如下:1、正弦按钮的回调函数(CallBack)function pushbuttonZHENGXIAN_Callback(hObject, eventdata, handles)global p1;%定义全局变量global p3;global p4;global p5;global p6;p6=0;p5=0; %按钮正弦波按下p2=0;p3=0;p4=0;p1=get(handles.pushbuttonZHENGXIAN,'value');%获取正弦按钮的当前值并赋给p1j=get(handles.sliderfuzhi,'value');%获取幅值滚动条的值,且赋给jk=get(handles.sliderpinlv,'value');%获取频率滚动条的值,且赋给kl=get(handles.sliderxiangwei,'value');%获取相位滚动条的值,且赋给lset(handles.editfuzhi,'string',num2str(j));%修改editfuzhi 的值为滚动条当前的值set(handles.editpinlv,'string',num2str(k));%修改editpinlv 的值为滚动条当前的值set(handles.editxiangwei,'string',num2str(l));%修改editxiangwei 的值为滚动条当前的值A=str2num(get(handles.editfuzhi,'string'));%获取幅值选择框的值,并且赋给Af=str2num(get(handles.editpinlv,'string'));%获取频率选择框的值,并且赋给fP=str2num(get(handles.editxiangwei,'string'));%获取相位选择框的值,并且赋给P t=0:0.001:8*pi;y=A*sin(2*pi*f*t+P*2*pi); %正弦波表达式set(gca,'color',[0,1,0.5]); %设定显示的背景颜色,axis([0,8*pi,-1.2,1.2]); %曲线的颜色同时给出坐标并显示网格grid on;方波、锯齿波、三角波、白噪声、脉冲信号与其类似在此省略其回调函数的代码。
2、关闭按钮的调用(CallBack)p6=0;p5=0;p1=0;p2=0;p3=0;p4=0;set(handles.sliderfuzhi,'value',0);set(handles.sliderpinlv,'value',0);set(handles.sliderxiangwei,'value',0);set(handles.editfuzhi,'string',num2str(0));set(handles.editpinlv,'string',num2str(0));set(handles.editxiangwei,'string',num2str(0));plot(t,y);set(gca,'color',[0,0,0]);axis([0,8*pi,-1.2,1.2]);3、滚动条的回调函数(CallBack)global p1;global p3;global p4;global p5;global p6;j=get(handles.sliderfuzhi,'value');%获取幅值滚动条的值,并且赋给jk=get(handles.sliderpinlv,'value');%获取频率滚动条的值,并且赋给kl=get(handles.sliderxiangwei,'value');%获取相位滚动条的值,并且赋给l set(handles.editfuzhi,'string',num2str(j));%修改editfuzhi 的值为滚动条当前的值set(handles.editpinlv,'string',num2str(k));set(handles.editxiangwei,'string',num2str(l));A=str2num(get(handles.editfuzhi,'string'));%获取幅值选择框的值,并且赋给Af=str2num(get(handles.editpinlv,'string'));P=str2num(get(handles.editxiangwei,'string'));while 1 %一直判断,遇到有按键就执行,然后退出。