MATLAB演奏音乐
演奏原理:sound(y,Fs) 以采样率 Fs 向扬声器发送音频信号 y。
Fs 指单位时间对音频信号采样的次数。采样频率的选择应该遵循奈奎斯特(Harry Nyquist)采样理论:如果对某一模拟信号进行采样,则采样后可还原的最高信号频率只有采样频率的一半,或者说只要采样频率高于输入信号最高频率的两倍,就能从采样信号系列重构原始信号。正常人听觉的频率范围大约在20Hz~20kHz之间,根据奈奎斯特采样理论,为了保证声音不失真,采样频率应该在40kHz左右。
y 一般指正弦波信号,对应的频率可以在网上找到数据。
由以上可写出自己喜欢的音乐的曲子了,以生日快乐歌为例,找到对应谱子
main.m
clear;clc;
Fs = 40000;
y = [yy(1,5,0.2),yy(1,5,0.2),yy(1,6,0.3),yy(1,5,0.3),yy(2,1,0.3),yy(1,7,0.3),zeros(1,2478),...yy(1,5,0.2),yy(1,5,0.2),yy(1,6,0.3),yy(1,5,0.3),yy(2,2,0.3),yy(2,1,0.3),zeros(1,2478),...yy(1,5,0.2),yy(1,5,0.2),yy(2,5,0.3),yy(2,3,0.3),yy(2,1,0.3),yy(1,7,0.2),yy(1,6,0.2),zeros(1,2478),...yy(2,4,0.2),yy(2,4,0.2),yy(2,3,0.3),yy(2,1,0.3),yy(2,2,0.3),yy(2,1,0.3)];
sound(y,Fs);
注:y构成一个行向量,sound按顺序演奏
yy.m
function y = yy(type,tone,rythm)
%type为1表示低音,为2表示中音,为3表示高音
%tone为音节序号,1为哆
%rythm为持续时间长短
%y为所输出声波信号所对应离散值Fs = 40000;freqs = zeros(3,7);freqs(1,:) = [220,246.94,277.19,293.67,329.63,370,415.31];freqs(2,:) = [440,493.88,554.37,587.33,659.33,739.99,830.61];freqs(3,:) = [880,987.76,1108.73,1174.66,1318.52,1479.98,1661.22];x = linspace(0, 2 * pi * rythm, floor(Fs * rythm));y = sin(freqs(type,tone) * x);
end
注:两个函数里的Fs应保持一致。
MATLAB演奏音乐相关推荐
- 《MATLAB PROJECT》用MATLAB演奏音乐
用MATLAB演奏音乐 (1) 采样率 (2) 十二平均律 (3) 声音强弱效果控制 (4) 声音播放时间控制 (5) 自定义音符函数 (6) <River Flows In You>演奏 ...
- matlab自带的音乐,MATLAB乐器(如何用matlab演奏音乐)
近期在家无聊,刷B站视频的时候发现有up上传了matlab制作的音乐,效果很是有趣.顺带吐槽一下,手机端的B站总是推荐莫名其妙的内容,但是通过搜索关键词,你又总能搜到不错的视频,我试了几个教学课程,视 ...
- MATLAB创建音乐《光年之外》
基于乐理和MATLAB自身sound函数,可以实现MATLAB演奏音乐,本文中以邓紫棋<光年之外>为例实现了该功能. 主函数代码为: Fs = 44100; y1=gen_wave2(3, ...
- 用matlab演奏周杰伦的《七里香》
问题描述 前几天在学习matlab的时候,发现了一篇用matlab演奏音乐的文章,不禁感叹matlab居然还能这么玩!于是我就学着用matlab演奏我最喜欢听的一首歌--周杰伦的<七里香> ...
- 【音乐】基于matlab演奏《过火》【含Matlab源码 1875期】
一.获取代码方式 获取代码方式1: [音乐]基于matlab演奏<过火>[含Matlab源码 1875期] 获取代码方式2: 通过订阅紫极神光博客付费专栏,凭支付凭证,私信博主,可获得此代 ...
- 【音乐】基于matlab演奏《青花瓷》【含Matlab源码 1873期】
一.获取代码方式 获取代码方式1: [音乐]基于matlab演奏<青花瓷>[含Matlab源码 1873期] 获取代码方式2: 通过订阅紫极神光博客付费专栏,凭支付凭证,私信博主,可获得此 ...
- matlab音乐合成卡农,matlab演奏《卡农》
[attach]matlab演奏<卡农>程序文件[/attach] % Cripple Pachebel's Canon on Matlab % Have fun fs = 44100; ...
- matlab合成和弦,基于Matlab实现音乐识别与自动配置和声的功能.pdf
基于Matlab实现音乐识别与自动配置和声的功能 杨若芳,等 基于Matlab实现音乐识别与自动配置和声的功能 1 2 杨若芳 ,项 顶 1 (甘肃兰州城市学院教育学院 甘肃兰州,730070) 2 ...
- 如何用matlab演奏《偏爱》
文章目录 前言 一.效果演示 二.如何唱 1.原理 2.代码 总结 前言 之前学了点matlab,看朋友圈有人做了<追光者>,学了几天,兴致勃勃写了个<偏爱>,后忘记记录了,现 ...
最新文章
- TCP/IP协议簇分层详解---转
- cpu和显卡瓶颈测试软件,《怪物猎人:世界》CPU测试:4核成瓶颈、6核才够用
- 【机器学习基础】朴素贝叶斯的算法实现
- VS2008如何添加 OLE/COM 对象查看器 .
- js实现数组对象去重
- 三星三层影像传感器提升拍摄能力 索尼压力倍增
- linux vim自动执行快捷键,Linux Vim快捷键操作命令整理
- hive load data外部表报错_生产SparkSQL如何读写本地外部数据源及排错
- 鸿蒙系统基础是云计算吗,国内两大系统横空出世,鸿蒙不算啥,这系统才叫牛...
- Ubuntu14.04下配置固定IP
- 【术语扫盲】CKD (全散件组装)
- oracle11g数据库登录01017,windows oracle11g数据库使用sqlplus登录的时候出现ora-01017报错...
- 微信小程序:we重师
- 阿里云盘 WebDAV升级
- 《辛雷学习方法》读书笔记——前言
- 内网渗透测试:域内权限维持思路总结
- qiankun+vue项目开发
- 2018年高教社杯全国大学生数学建模竞赛题目
- 高通Camera 软件工程师的成长之路
- R tidyverse学习01
热门文章
- QPushButton 实现保持按下效果(转载​​)
- Python 文件加密
- 电商运营基本常识你都知道哪些?
- Debian 下 mysql workbench 报 tables could not be fetched.
- DC report_timing 报告分析(STA)
- 计算机防火墙打不开0x6d9,win7防火墙出现0x6d9该怎么办
- Matlab含新能源(风电光伏)和多类型电动汽车配电网风险评估
- [IJCAI2016]Makeup Like a Superstar: Deep Localized Makeup Transfer Network
- 7.26 5 优化浪漫 恋爱中的经济学
- 如何在滴滴云 DC2 上搭建 MySQL 服务