主要原理就是将对应音符的频率以不同频率的正弦波输出播放:

clc
clear
y21=523;
y22=587;
y23=659;
y24=698;
y25=784;
y26=880;
y27=988;
%形成一段音乐 小星星乐谱
f1 = [y21,y21,y25,y25,y26,y26,y25,y24,y24,y23,y23,y22,y22,y21,y25,y25,y24,y24,y23,y23,y22,y25,y25,y24,y24,y23,y23,y22,y21,y21,y25,y25,y26,y26,y25,y24,y24,y23,y23,y22,y22,y21];
Fs = 8000; %采样频率
tp1 = 0.5.*ones(1,length(f1)); %每个音符持续时间,单位为s
am = randi([1,5],1,42);  %随机数产生弹奏钢琴时的强度
x1 = 0; %将音乐初始化为0,后面逐渐更新
for i = 1:length(f1)f = f1(i);tp = tp1(i);t = 0:1/Fs:tp-1/Fs;x = am(i)*sin(2*pi*f*t); %读取每个音符及持续时间x1 = [x1 x];
end
sound(x1,Fs)
% 设置文件名称
filename = 'wohewodezuguo.wav';
% 保存音乐至文件
audiowrite(filename,x1,Fs)
%绘制时域波形
t = 0:1/Fs:sum(tp1);
figure,subplot 211, plot(t,x1);
title('时域波形');ylabel('幅值'); xlabel('时间/s');
%时域转换到频域并绘图
% x1fft=dft(x1,Fs)
x1fft = fft(x1);
freq = ((1:length(x1fft)/2)-1)*Fs/length(x1fft);
subplot 212, plot(abs(x1fft(1:length(x1fft)/2)));
xlabel('频率/Hz');
title('频域波形');
ylabel('DFT幅值');

频谱图:按键强度的时域波形包络以及频域谱线,用到了6种音符,对应六根谱线。

MATLAB音乐合成——小星星相关推荐

  1. matlab音乐合成报告,matlab音乐合成报告.doc

    PAGE PAGE 24 MATLAB音乐合成综合实验 学院: 班级: 指导老师:吴宪祥 同做者: 二0一六年十二月 PAGE 3 PAGE 3 PAGE 24 摘 要 本实验共有三部分:1.简单的音 ...

  2. matlab音乐合成报告,matlab音乐合成报告

    资源描述: MATLAB音乐合成综合实验 学院 班级 指导老师吴宪祥 同做者 二0一六年十二月 摘 要 本实验共有三部分1.简单的音乐合成:2.用傅里叶变换分析音乐:3.基于傅里叶级数的音乐合成.一步 ...

  3. 哈理工电信MATLAB音乐合成包络谐波代码

    % 第零步:清场准备clc;clear all;close all;% 第一步:输入% 各音音高frequency(1*number_syllables的向量), g3_35=196.028; a3_ ...

  4. 基于matlab的音乐合成论文,基于matlab软件的音乐合成毕业论文.doc

    基于matlab软件的音乐合成毕业论文.doc 河北经贸大学毕业论文基于MATLAB软件的音乐合成专业名称电子信息工程班级201102学生姓名王雪指导老师章瑞平完成时间2015年5月河北经贸大学毕业论 ...

  5. matlab音乐键盘模拟,科学网—[原][Matlab][04] Midi音乐键盘 - 王楠的博文

    以前在网上读到一个用matlab播canon音乐的源码感觉很有意思,但声音还不够好. 于是想做个自己的音乐播放器,有键盘,有对应的钢琴声音,读取乐谱就能播.如下. (1)按键的音高与频率 从1到下一个 ...

  6. 【音乐合成】基于FPGA的音乐合成系统verilog实现

    1.软件版本 matlab2013b,quartusii12.1 2.系统FPGA实现 2.1频率选择 音乐的合成主要有几种频率,这里设置如下几组频率,在实际情况下,可以进行扩充. Fc = 261. ...

  7. matlab音乐键盘模拟,Matlab课程设计报告--MATLAB GUI的音乐键盘仿真

    Matlab课程设计报告--MATLAB GUI的音乐键盘仿真 < MATLAB 实践 > 课程设计 目 录 1.设计目的-------------------3 2.题目分析------ ...

  8. 【Win 10 应用开发】MIDI 音乐合成——音符消息篇

    在上一篇中,老周介绍了一些乐理知识,有了那些常识后,进行 MIDI 编程就简单得多了.尽管微软已经把 API 封装好,用起来也很简单,但是,如果你没有相应的音乐知识基础,你是无法进行 MIDI 编程的 ...

  9. 【音乐检索】基于matlab音乐检索系统【含Matlab源码 435期】

    一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[音乐检索]基于matlab音乐检索系统[含Matlab源码 435期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方式2: 付费专栏 ...

最新文章

  1. 智源杯天文数据算法挑战赛开赛,前沿AI技术助力天文科学研究
  2. 剑指offer二之替换空格
  3. 皮一皮:经历过的举手报道...
  4. c+还是python好-既然C+不如Java、Python,为什么还要学C+?
  5. 忠告28:奥纳西斯:处处留心皆学问
  6. python笔记:断言assert
  7. flask中的CBV , flask-session在redis中存储session , WTForms数据验证 , 偏函数 , 对象里的一些小知识...
  8. eos交易同步过程和区块生产过程源码分析
  9. Objecttive-C 创建多线程
  10. php面试题接口方面,php面试题6 - osc_xb4v1nhl的个人空间 - OSCHINA - 中文开源技术交流社区...
  11. 知识整理(你想要的Linux知识都在这里)
  12. springboot中的controller注解没有生效
  13. 万能免费信息采集软件-免费网站信息内容数据采集软件
  14. 测试开发工程师的学习之路---1--规划
  15. 元气骑士里面的超级计算机,元气骑士古大陆的神器神威大全
  16. 模块化笔记软件 Anytype 综合评测
  17. 杨涛:正解“街区制、密路网”
  18. Daz3d:如何使用景深
  19. 用约束规划+概率图模型(信念传播)+神经网络端到端求解组合优化问题
  20. Python生成自动化测试报告的两种方法

热门文章

  1. 家庭记账本开发记录(6)
  2. 【洛谷题解】P5734 【深基6.例6】文字处理软件(C语言)
  3. 电脑市场Ghost XP SP2装机版v3.0
  4. 时光轴三之 ExpandableListView版时光轴效果
  5. Python+Twisted+Autobahn实现Websocket(附完整demo)
  6. 200518更新校园卡最新小道消息
  7. 如何购买赛门铁克的代码数字签名?
  8. 比起京东、有赞的裁员,更让我头秃的是裁员的文章
  9. 什么是健身房管理系统
  10. Python 与 数学 【1】