虚拟信号发生器数字信号处理课设
信号发生器 课程设计

摘要现代化生产要求电子仪器品种多、功能强、精度高、自动化程度高,而且要求测试速度快、实时性好、具有良好的人机界面。
虚拟仪器正可以实现这些要求,虚拟仪器的概念是由美国国家仪器公司在20世纪80年代最早提出的。
虚拟仪器就是在一同用计算机为核心的硬件平台上,由用户设计定义、具有虚拟前面板、测试功能有测试软件实现的一种计算及仪器系统。
其核心的思想是利用计算机的强大资源是本来需要硬件实现的技术软件化,以便最大限度的降低系统成本,增强系统功能与灵活性。
虚拟仪器代表着从传统硬件为主的测试系统到以软件为中心的测试系统的根本性转变。
信号发生器在电路实验和设备检测中具有十分广泛的用途。
传统的信号发生器其功能完全靠硬件实现,功能单一而且用户的购置、维护费用高。
更重要的是,对于传统的信号发生器,其功能一旦确定不能更改,用户要想使用新的功能则必须重新购买新的仪器,传统信号发生器的不足是显而易见的。
本次课程设计就是利用软件模拟生成信号发生器。
关键词:信号发生器虚拟仪器 LABVIEW前言虚拟仪器作为新兴的测控仪器,将给用户一个充分发挥自己的才能,想象力的空间,用户可以根据自己的设计要求设计仪器系统,符合我们信号发生的开发要求。
在现代电子学的各个领域,常常需要高精度且频率可方便调节的信号发生器,频率越高,产生波形种类越多的发生其性能越好。
随着科技的发展,虚拟仪器技术已成为测试、工业控制和产品设计的主流技术。
随着虚拟仪器技术的功能和性能已被不断的提高,如今在许多应用中它已成为传统仪器的主要替代方式。
随着PC、半导体和软件功能的进一步更新,未来虚拟仪器技术的发展将为测试系统的设计提供一个极佳的模式,并且是工程师们在测量和控制方面得到强大的功能和灵活性。
编程对工程技术人员来说比较麻烦,LabVIEW软件用图形编程语言,直观简单、易于操作。
用户使用LabVIEW可以随意创建程序,并把它当作子程序调用,以创建更复杂的程序,且调用的层次没有限制LabVIEW这种创建和调用子程序的方法,使创建的程序结构模块化,更易于调试、理解和维护。
虚拟仪器课设 信号发生器

虚拟仪器课程设计说明书题目:虚拟信号发生器学生姓名:李志达学号:1167112308班级:测控11-3班指导教师:肖俊生一. 题目和基本要求1.设计题目:虚拟信号发生器2设计目的:完成数据记录仪的实验内容,了解、熟悉并掌握虚拟仪器的相关知识;并能够熟练应用LabVIEW软件。
3.设计要求:(1)运行、停止(2)可输出双路正弦波(方波、三角波、公式波形)信号,其相位差可调,可叠加噪声。
(3)信号的频率、幅值、占空比可调。
4.设计思路:本设计采用三角波、方波、三角波“波形生成”与“波形创建”,根据相应的参数设定,产生相应的波形。
主要基于信号发生器原理,设计了1通道、2通道、双通道信号通道,具有通道选择性和单独调试性。
用相应的数值输入控件控制以上信号的参数,编辑相应程序将其用波形图显示,同时用DAQ模拟采集电路输出数据给数据虚拟板卡,用导线将数据板卡上相应的输入输出接口连接好,可通过虚拟示波器输出并显示采集信号,实现采集和回放。
二.准备工作和总体构思通过对肖老师上课时所做的笔记和课件的参考,先弄清了DAQ助手下每个子模块的特性与作用,在前几个实验中也了解了对单路信号发生器的设计,接着就是加深自己对其它模块的理解和它所起的作用。
在对其它模块以及单路信号发生器的基础上逐步完成对双路信号发生器的设计。
采用“仿真信号”中的锯齿波、正弦波、方波、三角波信号等做信号源,用相应的数值输入控件控制以上信号的参数,编辑相应程序将其用波形图显示,设计过程中首先完成主要功能的设计与调试,再不断的添加辅助功能及要求,把遇到的问题逐个解决,从而达到最后的设计要求。
三.具体过程1、信号发生器部分(1)while主程序框的设计从“程序框图”面板中点击右键,然后按照“编程”——“结构”——“While循环”的顺序,拖到面板中拉大到合适的大小如图所示:(2)信号的采集与发送信号产生之后自然而然就要对其进行采集和发送,而完成信号采集和发送任务的则是两个DAQ助手的子模块,以下就是完成对信号采集和发送的两个程序:(信号发送)(3)噪声部分:(4)程序框图:整个程序框图完成后,将其整理好,使其合理整洁,整个如图示:(5)仿真信号基本参数设置:首先,在前面板中做一个“选项卡控件”。
虚拟信号发生器的设计

虚拟仪器应用设计实验四虚拟信号发生器的设计姓名:班级:学号:日期:2013-9实验四虚拟信号发生器的设计一、实验目的利用LabVIEW开发环境设计信号发生器、测量算术平均值二、实验内容1、虚拟信号发生器的设计(1)打开一个新的VI。
(2)创建前面板。
①右击前面板空白处,弹出控件选板。
②在控件选板上单击【新式】/【下拉列表与枚举】/【枚举】,将其托放在前面板上。
③使用标签工具将其命名为信号源。
④在控件选板上单击【新式】/【数值】/【数值显示控件】,将数值显示控件托放在前面板上,照此拖放六个,使用标签工具将其分别命名为信号频率、采样、相位输入、幅值、采样频率、占空比。
⑤右击信号源控件,在弹出的快捷菜单中选择【编辑项】,在【编辑项】选项卡中单击“插入”,输入“正弦波”,对应的数字显示为0。
同样的方法输入“三角波”、“方波”、“锯齿波”,对应的数值显示分别为1、2、3。
如图所示。
⑥在控件选板上单击【新式】/【布尔】/【停止按钮】,将其托放在前面板上,同时隐藏其标签。
⑦在控件选板上单击【新式】/【布尔】/【垂直翘板开关】,将其托放在前面板上,并使用标签工具将其命名为重置相位。
⑧在控件选板上单击【新式】/【图形】/【波形图】,将其托放在前面板上。
(3)切换到VI的程序框图。
(4)创建程序框图。
①右击程序框图空白处,弹出函数选板。
②在函数选板上单击【编程】/【结构】/【While循环】,将其拖放在程序框图中,并包围前面板上所有控件的对应节点。
③在函数选板上单击【编程】/【结构】/【条件结构】,将其拖放在while循环结构中。
④使用连线工具将信号源节点(枚举型)连接到条件结构的选择器接线端,此时选择器标签值由“真”、“假”变为“正弦波,默认”、“三角波”。
⑤右击条件结构边框,在弹出的快捷菜单中选择【在后面添加分支】。
同样的方法重复操作一次。
此时条件结构添加了两个分支,其标签值分别为“方波”、“锯齿波”。
⑥在函数选板上单击【信号处理】/【信号生成】/【正弦波】,将其拖放在标签值为“正弦波,默认”的条件结构中。
信号发生器数字信号处理课程设计报告

目录一、课程设计要求二、设计过程(1)设计题目(2)设计源代码(3)设计结果(4)结果分析三、设计总结与心得体会四、课程设计指导书一、课程设计要求1、课程设计指导书①《数字信号处理(第二版)》,丁玉美等,西安电子科技大学出版社;②《MATLAB 及在电子信息课程中的应用》,陈怀琛等,电子工业出版社。
2、课程设计题目⑴、信号发生器用户根据测试需要,可任选以下两种方式之一生成测试信号:①、直接输入(或从文件读取)测试序列;②、输入由多个不同频率正弦信号叠加组合而成的模拟信号公式(如式1-1 所示)、采样频率(Hz)、采样点数,动态生成该信号的采样序列,作为测试信号。
⑵、频谱分析使用FFT 对产生的测试信号进行频谱分析并展示其幅频特性与相频特性,指定需要滤除的频带,通过选择滤波器类型(IIR / FIR),确定对应的滤波器(低通、高通)技术指标。
⑶、滤波器设计根据以上技术指标(通带截止频率、通带最大衰减、阻带截止频率、阻带最小衰减),设计数字滤波器,生成相应的滤波器系数,并画出对应的滤波器幅频特性与相频特性。
①IIR DF 设计:可选择滤波器基型(巴特沃斯或切比雪夫型);②FIR DF 设计:使用窗口法(可选择窗口类型,并比较分析基于不同窗口、不同阶数所设计数字滤波器的特点)。
⑷、数字滤波根据设计的滤波器系数,对测试信号进行数字滤波,展示滤波后信号的幅频特性与相频特性,分析是否满足滤波要求(对同一滤波要求,对比分析各类滤波器的差异)。
①IIR DF:要求通过差分方程迭代实现滤波(未知初值置零处理);②FIR DF:要求通过快速卷积实现滤波(对于长序列,可以选择使用重叠相加或重叠保留法进行卷积运算)。
⑸、选做内容将一段语音作为测试信号,通过频谱展示和语音播放,对比分析滤波前后语音信号的变化,进一步加深对数字信号处理的理解。
3、具体要求⑴、使用MATLAB(或其它开发工具)编程实现上述内容,写出课程设计报告。
数字信号处理简明教程课程设计

数字信号处理简明教程课程设计一、课程背景数字信号处理是目前科技领域中最为重要、应用最为广泛的学科,它在多个领域都具有广泛的应用,如语音识别、图像处理、智能控制、电视广播、通讯等等。
为了加强对数字信号处理的深入理解,同时提高学生的实践能力,设计了简明教程课程。
二、教学目标本课程旨在通过讲授数字信号处理的相关知识,让学生了解信号与系统的基本概念、数字信号的特殊性质、数字信号加工的各种方法以及数字滤波器和频率分析的基本概念,进一步提高学生的分析问题和解决问题的能力,培养学生的实际操作能力,为将来的工作和学习打下坚实的基础。
三、教学内容1.信号与系统的基本概念在数字信号处理基础中,首先需要了解的就是信号与系统的基本概念,包括信号与系统的定义、特性、分类和表达方式等。
2.数字信号的特殊性质数字信号是一种离散信号,不同于连续信号,它具有很多特殊性质,如采样定理、离散化、量化误差等。
本课程将详细讲解数字信号的特殊性质及其应用。
3.数字信号的加工方法对数字信号的加工是数字信号处理技术的核心部分,主要包括数字滤波器和数字信号处理算法。
本课程将全面介绍数字滤波器的方法和处理算法,以及加工应用实例。
4.数字滤波器和频率分析的基本概念数字滤波器是数字信号处理技术中最重要的一部分,本课程将详细讲解数字滤波器的基本功能、分类和结构。
同时,本课程还将深入探讨信号的频率分析方法、快速傅里叶变换等,为学生提供更全面的数字信号处理知识体系。
四、教学方法本课程采取理论讲解、实验操作和实际应用相结合的教学方法,重视理论和实践相结合,培养学生的操作能力和综合素质。
同时,本课程注重实用性和实效性,引导学生运用数字信号处理技术来解决实际问题。
五、实验内容为了使学生更好地理解数字信号处理技术的原理和应用,本课程安排了多项实验内容,如 MATLAB编程实验、数字信号处理设备的使用实验等,通过实验操作,培养学生的实际处理能力和实践创新意识。
六、教学成果通过本课程的学习和实践,学生可以掌握数字信号处理的基本理论知识和应用技能,具备基本的数字信号分析和处理能力,提高分析问题和解决问题的能力,为将来的工作和学习打下坚实的基础。
数字信号处理课程设计

数字信号处理课程设计一、课程设计任务1.1 设计背景数字信号处理是关于数字信号的获取、处理和应用的学科,广泛应用于通信、图像处理、音频处理等领域。
随着现代通信技术的发展,数字信号处理的应用越来越广泛,因此数字信号处理技术的研究和应用已经成为了当前的热点和难点问题。
本次数字信号处理课程设计旨在通过实践,使学生深入了解数字信号处理技术,并且掌握数字信号处理的基本原理与方法。
同时,通过此课程设计的实践环节,学生将运用所学的数字信号处理知识,针对某一具体问题进行深入分析,设计相应的算法,并进行实验验证,培养学生的实践能力。
1.2 设计任务本次数字信号处理课程设计任务为:通过 MATLAB 对音频信号进行数字信号处理,实现音频信号数字化、本地化、校准、滤波、平滑等操作,并设计出相应的算法。
具体任务包括:1.对输入的音频信号进行数字化:将模拟信号输入到 A/D 转换器中,将其转换为数字信号。
2.实现音频信号的本地化:通过本地化处理,实现对音频信号的空间定位。
3.针对音频信号的校准问题,设计相应的校准算法。
4.实现音频信号的滤波和平滑处理:通过低通滤波、高通滤波等方法,实现对音频信号的滤波和平滑处理。
二、实验流程2.1 实验器材本实验采用的主要器材为:1.电脑2.MATLAB 软件3.音频设备2.2 实验流程本实验的主要流程如下所示:1.设置音频输入输出设备,并初始化参数% 设置音频输入输出设备audioInput = audioDeviceReader(44100, 16, 1); audioOutput = audioDeviceWriter(44100, 16, 1);% 初始化参数blockSize = 1024;overlap = 512;sampleRate = 44100;2.进行音频信号采集与播放while true% 采集音频数据audioData = audioInput();% 对音频数据进行数字信号处理processedData = processAudioData(audioData, blockSize, overlap, sampleRate);% 播放处理后的音频数据audioOutput(processedData);end3.设计音频数据处理算法function processedData = processAudioData(audioData, blockSize, overlap, sampleRate)% 数字化处理audioData = double(audioData);% 本地化处理processedData = doLocalization(audioData);% 校准算法processedData = doCalibration(processedData);% 滤波和平滑处理processedData = doFiltering(processedData, sampleRate);% 返回处理后的音频数据processedData = single(processedData);end4.对音频数据进行本地化处理function localizationData = doLocalization(audioData) % 实现音频信号的本地化localizationData = audioData;end5.设计校准算法,使音频数据满足一定标准function calibrationData = doCalibration(processedDat a)% 校准算法calibrationData = processedData;end6.设计滤波和平滑处理算法function filteredData = doFiltering(processedData, sa mpleRate)% 低通滤波lowPassFilter = designfilt('lowpassfir', 'FilterOrder', 70, 'CutoffFrequency', 5000, 'SampleRate', sampleRate); filteredData = filtfilt(lowPassFilter, processedData);% 高通滤波highPassFilter = designfilt('highpassfir', 'FilterOrde r', 70, 'CutoffFrequency', 500, 'SampleRate', sampleRat e);filteredData = filtfilt(highPassFilter, filteredData);% 平滑处理smoothedData = smoothdata(filteredData, 'movmean', 50);% 返回处理后的数据filteredData = smoothedData;end三、实验结果及分析3.1 实验结果通过对 MATLAB 下进行数字信号处理的实验,得到了如下所示的实验结果:1.输入音频信号Input AudioInput Audio2.经过数字化、本地化、校准、滤波、平滑等处理后的音频信号Processed AudioProcessed Audio3.2 结果分析通过实验结果可以看出,经过数字信号处理后的音频信号具有了更好的音质和更好的稳定性。
虚拟仪器信号发生器课程设计

基于LabVIEW的虚拟仪器——信号的产生和处理设计摘要基于LabVIEW的虚拟仪器,简要地介绍了虚拟仪器和LabVIEW的概念及特点,并应用虚拟仪器技术LabVIEW软件开发平台的设计特点结合常规信号发生器的功能设计实现了----虚拟信号发生器,此次设计的虚拟信号发生器的设计结果不仅可以输出正弦波、三角波、方波和锯齿波等基本函数波形,还可以利用公式选择输出公式波形,及通过选择噪声类型输出多种噪声波形,该虚拟信号发生器界面友好,通过操作前面板上的按钮,就可以执行完成相应的信号处理要求,系统操作简便,适用于教学、科研等领域。
虚拟仪器是在仪器仪表领域中应用计算机技术所形成的一种新型的、富有生命力的仪器种类。
基于LabVIEW的虚拟仪器系统是一种实用的虚拟仪器系统,由于它的可行性和优越性,因此基于LabVIEW虚拟仪器系统的虚拟实验是我国普通高校和远程教学的实验教学中可以推广的模式。
关键词:LabVIEW, 虚拟仪器, 智能仪器, 函数波形, 虚拟信号目录1 虚拟仪器和LabVIEW (1)1.1 虚拟仪器简介 (1)1.2 LabVIEW简介 (1)2 虚拟信号发生器原理分析 (2)3 虚拟信号发生器的设计 (3)3.1前面板设计 (3)3.2 程序框图设计 (4)3.3 虚拟信号发生器器件 (4)4 虚拟信号发生器的子程序—子VI设计 (7)4.1 滤波器窗口子VI (8)4.2 获取信号程序子VI (9)4.3 更多信息子VI (12)5 虚拟信号发生器运行结果 (14)5.1 虚拟信号发生器前面板—矩形波与正弦波 (14)5.2 虚拟信号发生器前面板—三角波与矩形波 (15)5.3 虚拟信号发生器前面板—正弦波与三角波 (15)总结 (16)致谢 (17)参考文献 (18)1 虚拟仪器和LabVIEW1.1 虚拟仪器简介虚拟仪器的起源可以追溯到20世纪70年代,那时计算机测控系统在国防、航天等领域已经有了相当的发展。
数字信号处理课程设计

数字信号处理设计与仿真分析摘要:本文主要根据数字信号处理中所学内容来解决实际问题,在实际生活中,信号是信息的基本载体,而在互联网时代,信号更是遍布我们的日常,例如我们听到的声音,观看到的视频,互联网上传输的脉冲等都是信号。
但是由于环境等因素的影响,我们接受到的信号往往都含有噪声,噪声的加入导致原始的有用信号不能为我们所用,例如信息丢失,音频模糊等都是由于噪声的干扰导致,于是噪声的滤除本文要解决的问题。
首先是原始信号和噪声的产生,随机产生原始信号和噪声并将其相加来模拟我们日常接收到的真实信号,然后分别在时域和频域上对原始信号,噪声和合成信号进行分析,根据其频谱的特点设计多种不同类型的滤波器,并分析不同滤波器对合成信号中噪声的滤除效果,选出其中最好的滤波器,画出其信号流图,最终得到纯净的原始信号输出。
关键词:信号、滤波器、时域、频域一问题重述1、建立两个模拟信号的数学模型S a1(t)和S a2(t),其中S a1(t)为有用信号, S a2(t)为干扰信号。
两个信号的中心频率,信号带宽等参数由学生自己选定,要求两个信号的频率不重叠,S a2(t)的幅度比S a1(t)的幅度高20dB,两个信号时域叠加得到合成信号X a(t),即X a(t)= S a1(t)+ S a2(t),设计计算机程序仿真产生以上三个信号,分别画出三个模拟信号的时域波形和频谱图。
2、根据X a(t)的中心频率和带宽,按照奈奎斯特采样定理选择采样频率fs,分别对三个信号进行时域采样,得到离散信号S1(n), S2(n), x(n)。
利用FFT算法分析离散信号的频谱,分别画出三个离散信号的时域波形和频谱图。
3、设计数字滤波器H(z),要求该滤波器对干扰信号S2(n)的衰减大于40dB.提出滤波器的设计指标,并设计滤波器,给出滤波器的设计结果,绘制滤波器的幅频特性和相频特性曲线,验证滤波器的设计结果是否达到设计指标要求。
4、选择实现数字滤波器H(z)的结构,画出结构信号流图5、将合成信号x(n)输入数字滤波器H(z),按照所选择的滤波器结构,设计计算机程序计算滤波器的输出响应y(n),画出y(n)的时域波形和频谱图6、分析,总结设计结果,提交课程设计报告。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
燕山大学课程设计说明书题目:虚拟信号发生器的设计学院(系):电气工程学院年级专业:自动化仪表学号: 100103020002学生姓名:王思琪指导教师:谢平杜义浩教师职称:教授讲师课程名称:“单片机原理及应用——数字信号处理”课程设计基层教学单位:自动化仪表系指导教师:张淑清谢平说明:1、此表一式四份,系、指导教师、学生各一份,报送院教务科一份。
2、学生那份任务书要求装订到课程设计报告前面。
电气工程学院教务科目录(信号处理要求)第一章摘要 (3)第二章总体设计方案 (4)第三章 GUIDE预备理论 (5)第四章信号发生器基本原理 (6)4.1含变量的波形函数的生成 (6)4.2 时域向频域的转换 (7)第五章 GUIDE源程序的设计 (9)第六章程序显示结果与调试 (14)第七章心得及总结 (15)参考文献 (16)附录 (16)第一章摘要信号发生器是指产生所需参数的电测试信号的仪器。
按信号波形可分为正弦信号、函数(波形)信号、脉冲信号和随机信号发生器等四大类。
信号发生器又称信号源或振荡器,在生产实践和科技领域中有着广泛的应用。
各种波形曲线均可以用三角函数方程式来表示。
能够产生多种波形,如三角波、锯齿波、矩形波(含方波)、正弦波的电路被称为函数信号发生器。
在有些实验测量中,我们需要用到信号发生器,传统的信号发生器其功能完全靠硬件实现,功能单一,而且费用较高,一个传统实验室很难拥有多类信号发生器,然而基于虚拟仪器技术的信号发生器则能够实现这一要求。
此报告论述了一个基于虚拟仪器技术的任意波形发生器模块的实现。
第二章总体设计方案首先我们进行的是单片机部分的设计,课设的前两天,熟悉了单片机个模块的设计例程,而后我们挑选了合适的例程为我们的所需要的信号发生器模块所用。
在这之中,我们用到了273输出模块,led显示模块,数码管显示模块,蜂鸣器模块,16*16点阵显示模块,串行通信模块。
在精心的学习之后,我们成功地完成了单片机部分的初步制作。
此后,我们开始了第三天的数字信号软件方面的制作,在guide设计教程及学长的指导下,我们设计了一个简洁方便的操作界面,并根据相应的按键功能编写程序,先收集了5种波形函数,而后编写了与之对应的变量函数。
于是我们便能将可变参数加入到函数中去,进行调试了。
其后,我们设计了傅里叶转换函数,将波形一一转换为频域波形,最后,我们在学长的指导下完成了串行发送的按钮设计。
信号处理部分也制作完毕。
最后是单片机部分与信号部分的连接调试,我们将matlab 发送的波形参数与单片机的数码管,led,蜂鸣器的信号同步。
成功的做出了两者相结合的虚拟信号发生器。
第三章 GUIDE预备理论本实验内容主要是阐述虚拟信号发生器的前面板和程序框图的设计。
设计完的信号发生器的功能包括能够产生正弦波、方波、三角波、锯齿波高斯白噪声信号波形;波形的频率、幅值、相位、及采样频率等参数由前面板控件实时可调。
虚拟信号发生器是基于MATLAB仿真软件进行编程的,它使用的是图形化编程语言。
要完成一个虚拟信号发生器首先要进行GUI面板的设计,根据信号发生器所要实现的功能,在控件选板中选择相应的控件,放在前面板相应的位置上,摆放要使前面板看起来比较协调。
图形用户界面概念:图形用户界面或图形用户接口(Graphical User Interface,GUI)是指采用图形方式显示的计算机操作环境用户接口。
与早期计算机使用的命令行界面相比,图形界面对于用户来说更为简便易用。
GUIDE是Matlab提供的图形用户界面开发环境,提供了一系列用于创建图形用户界面的工具,从而简化界面布局和编程工作。
设计GUI程序时首先要分解任务,把待设计任务分割成几个大的模块,然后把大的模块再分解为一系列的功能,甚至可以分解到要用哪些函数的程度;然后是寻找例程,参考例程可以避免重复前人做过的工作。
我们在学长的帮助下获得了部分波形及将波形从时域傅里叶转换为频域波形的函数,以及串行口发送数据的模板,得以顺利的将函数套用在GUI界面下,并顺利的与单片机相连。
第四章信号发生器基本原理4.1含变量的波形函数的生成本次课设中我们设方波信号:y=a*square(2*pi*f*t+4*p/f,50)其中a为幅值,f为频率,t为时间,p为相位,生成类似如下波形其中a,f,p和采样频率e分别有4个滑块控制,如下其变换值显示在图中方框中。
4.2时域向频域的转换若将该方波变换为频域波形,则使用如下傅里叶函数Nf=length(y);f=0:fs/(Nf-1):fs;x=abs(fft(y));波形变换如下:同理,本次课设的其他4中波形也可如此生成:正弦波:y=a*sin(2*pi*f*t+p*2*pi)锯齿波:y=a*sawtooth(pi*f*t+4*p/f,1)三角波:y=a*sawtooth(pi*f*t+4*p/f,0.5)白噪声:y=a*randn(size(t))他们的波形如下第五章GUIDE源程序的设计本次实验中,我们将界面程序的设计分为多块,并小组合作完成: 1.按键初始化程序略;对滑块部分赋值的程序设计如下:j=get(handles.slider1,'value');k=get(handles.slider2,'value');l=get(handles.slider3,'value');m=get(handles.slider4,'value');再由滑块对文本框赋值:set(handles.edit1,'string',num2str(j));set(handles.edit2,'string',num2str(k));set(handles.edit3,'string',num2str(l));set(handles.edit4,'string',num2str(m)); 再将波形函数变量赋值并显示在波形框内a=str2num(get(handles.edit1,'string'));f=str2num(get(handles.edit2,'string'));p=str2num(get(handles.edit3,'string'));e=str2num(get(handles.edit4,'string'));fs=e;t=0:1/fs:30;t=0:1/fs:30;y=a*sin(2*pi*f*t+p*2*pi);set(gcf,'CurrentAxes',handles.axes2);plot(t,y);axis([0,8*pi,-5.2,5.2]);grid on;之后在进行傅里叶变换转化为频域图形:Nf=length(y);f=0:fs/(Nf-1):fs; %频谱横坐标x=abs(fft(y));set(gcf,'CurrentAxes',handles.axes1);plot(f,x);title('Frequency content of y')xlabel('frequency (Hz)');以上为正弦波形的设计同理可得其他波形波形选择函数:while 1if p1==1t=0:1/e:8*pi;y=a*sin(2*pi*f*t+p*2*pi);plot(t,y);grid on;axis([0,8*pi,-5.2,5.2]);end;if p2==1t=0:1/e:6;y=a*square(2*pi*f*t+4*p/f,50); plot(t,y);grid on;axis([0,6,-5.2,5.2]);end;if p3==1t=0:1/e:20;y=a*sawtooth(pi*f*t+4*p/f,1);plot(t,y);grid on;axis([0,20,-5.2,5.2]);end;if p4==1t=0:1/e:20;y=a*sawtooth(pi*f*t+4*p/f,0.5);plot(t,y);grid on;axis([0,20,-5.2,5.2]);end;if p5==1t=1:1/e:25;y=a*randn(size(t));plot(t,y);grid on;end;串行发送数据的函数设计function pushbutton10_Callback(hObject, eventdata, handles)ss=serial('COM1');ss.BaudRate=2400;ss.DataBits=8;ss.Parity='none';ss.StopBits=1;ss.TimeOut=60;ss.DataTerminalReady='off';ss.RequestToSend='off';ss.FlowControl='none';ss.InputBufferSize=1000;fopen(ss);清除数据按钮设计:set(handles.slider1,'value',0);set(handles.slider2,'value',0);set(handles.slider3,'value',0);s et(handles.slider4,'value',0);set(handles.edit1,'string',0);set(handles.edit2,'string',0);set(handles.edit3,'string',0);set(handles.edit4,'string',0);关闭按钮:function pushbutton9_Callback(hObject, eventdata, handles)close;我们还添加了若干工具栏设计,但是个别按钮功能未添加完整,不具备实用性第六章程序显示结果与调试完成guide界面后,我们连接了串行口并发送了数据。
但因为硬件限制,为发送数码管我们将发送的数据都做了取整处理,发送的均为个位整数,并成功与单片机协同合作完成了参数在单片机上的正确显示。
至此信号处理部分完成。
最终调试结果如下:第七章心得与总结经过长达一星期不间断的单片机及信号处理的课程设计,我再一次加强了对单片机硬件和信号处理Matlab的软件的认识,Matlab这样的软件强大的开发功能与灵活的编程手段勾起了我对信号处理浓厚的兴趣,并最终实现了虚拟信号发生器的设计,可以看出虚拟仪器给用户提供了一个充分发挥自己的才能和想象力的空间,可根据用户自己的设想及要求,通过编程来设计,组建自己的仪器系统,他的灵活、开放,技术更新周期短,可随着计算机技术的发展和用户的需求进行仪器与系统的升级,在性能维护和灵活组态等方面有着传统仪器无法比拟的优点。