数字信号处理课程设计虚拟电子琴概论

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数字信号处理课程设计

题目:虚拟电子琴设计

学院:电气工程

班级:

学号:

指导老师:

教师职称:教授讲师

电气工程学院《课程设计》任务

课程名称:“单片机原理及应用——数字信号处理”课程设计

基层教学单位:电气工程学院指导教师:谢平杜义昊

目录

第1章摘要 (4)

第2章系统总体设计方案 (5)

2.1 参数 (5)

2.2 正弦信号的实现 (6)

2.3 设计过程 (7)

2.4 控制界面设计...........................7.

2.5 matlab编程.........................................................

第3章实际应用 (13)

第7章课设心得及总结 (14)

参考文献 (14)

一.摘要

随着社会的发展进步,音乐逐渐成为我们生活中很重要的一部分,有人曾说喜欢音乐的人不会向恶。我们都会抽空欣赏世界名曲,作为对精神的洗礼。本论文设计一个基于单片机的简易电子琴。我们对于电子琴如何实现其功能,如声音强弱控制、节拍器、自动放音功能等等也很好奇。

电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。它在现代音乐扮演着重要的角色,单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。

本文的主要内容是用MCS51单片机为核心控制元件,利用Matlab设计基于虚拟琴键的信号发生器设计一个电子琴。以单片机作为主控核心,,在主控模块上设有7个按键和扬声器。用matlab设计操作界面,借助串口与单片机模块联系起来,控制单片机蜂鸣器发出七个音,并对音阶各项参数进行分析。本系统运行稳定,其优点是硬件电路简单,软件功能完善,控制系统可靠,性价比较高等,具有一定的实用和参考价。特别是新型智能手机就可以运用此款功能。

二.系统总体设计方案

2.1 参数

均值:

对于一个随机变量来说,均值是一个很重要的数值特征。粗略的说,就是来描述一个群体的平均水平。其严格的数学定义非常的简单,就是一个随机变量关于概率测度的积分。这样的积分在测度轮或者实分析里是没有什么直观的解释的。而在概率论里却成为了一个群体的主要指标。在此处,均值表示肌电信号的平均水平。

标准差:

标准差(Standard Deviation),也称均方差(mean square error),是各数据偏离平均数的距离的平均数,它是离均差平方和平均后的方根,用σ表示。标准差是方差的算术平方根。标准差能反映一个数据集的离散程度。平均数相同的,标准差未必相同。其求解公式如下:

最大值:D=max(data);

最小值:E=min(data);

方差:

方差是各个数据与平均数之差的平方的平均数。在概率论和

数理统计中,方差(英文Variance )用来度量随机变量和其数学期望(即均值)之间的偏离程度。在许多实际问题中,研究随机变量和均值之间的偏离程度有着很重要的意义。其求解公式如下:

峰峰值:

在定的时间范围内,正向与负向峰值之差。

2.2、正弦信号的实现

Matlab 程序提供了常用的各种基本信号的生成函数。本设计中主要应用正弦信号,直接调用matlab 提供的函数。

正弦信号的数学表达式如下(2.1)所示

)2sin(ϕπ+=ft A y (2.1)

其中:A 为幅值;f 为频率;ϕ为相位。

在matlab 中,将时间变量离散化并构成一个一维数组,如下式(2.2)所示

0.1:1

:0s

f t = (2.2)

其中:s f 为采样频率。

相应的正弦波信号的数字信号表达式如下(2.3)

)2sin()(ϕπ+∆=∆t fn A t n y

2.3设计过程

第一,设计7种不同频率的信号发生器对应七种不同的音调;

第二,对这七种不同频率的信号进行时域和频域分析,计算一些参数值进行对比;

第三,使用GUI 界面,设计虚拟电子琴界面,其中包括时域和频域图形显示模块,频率,幅值等参数显示模块,虚拟琴键模块等。

2.4控制界面设计

主要分成三部分:第一为波形显示区,显示相应音频信号的时域和频域波形;第二为按键区,用于虚拟琴键实际操作;第三为参数显示区,通过调用matlab 中函数,计算相应的参数值,进行分析和对比。

虚拟琴键的信号发生器设计界面如下

点相应的键,会产生频域时域波形和相应的技术指标

2.5matlab编程

当GUI界面创建完成之后,点击运行即可自动生成包含各个控件回调函数在内的m文件。Matlab对于编辑文本,按钮等空间的相应都是通过自动调用相应的回调函数来实现的。回调函数即在一定的操作下自动执行的指令代码。

1 matlab对串行口编程控制主要分为四个步骤。

1)创建串口设备对象并设置其属性

2)打开串口设备对象

3)读/写串口操作

4)关闭并清除设备对象

function []=dtmf_series(Key)

ss=serial('com1'); %创建串口1设备对象ss

ss.BaudRate=2400;%波特率为2400b/s

ss.DataBits=8;%通讯数据格式为8位数据位

ss.Parity='none';%无奇偶校验位

ss.StopBits=1;%1位停止位

ss.TimeOut=60;%设置一次读或写操作最大完成时间60s

ss.DataTerminalReady='off';%数据终端准备

ss.RequestToSend='off';%请求发送

ss.FlowControl='none';%流量控制

相关文档
最新文档