clear
%% 程序配置
global fs
global trail
global fff
global fdb
fs = 44100;
trail = 0/15;
% 长唢呐频谱
fff = [261.67 523.34 785.39 1046.10 1307.76 1569.43 1829.18 1991.25 2354.05 2615.72 2881.42 3140.21 2881.42 3140.21 4446.82 4712.33 4978.61 5227.98 5748.43 5498.49 6009.90 6277.73 6532.09 6797.02 7073.50 7320.36 7585.49 7843.70 6110.36 8370.49]/261.67/2;
fdb = [51.28 52.31 62.08 55.41 65.65 68.68 52.87 24.65 52.07 52.74 45.30 42.53 45.30 42.53 24.42 21.94 3.23 30.96 34.02 24.02 35.18 39.96 35.23 26.23 26.35 28.98 21.86 21.72 18.58 11.85];
%% 卡农
% 完整版
ka_nong = [[1480,1250];[1319,1250];[1175,1250];[1109,1250];[988,1250];[880,1250];[988,1250];[1109,1250];[1175,1250];[1109,1250];[988,1250];[880,1250];[784,1250];[740,1250];[784,1250];[659,1250];[1175,313];[1109,313];[1175,313];[587,313];[554,313];[880,313];[659,313];[740,313];[587,313];[1175,313];[1109,313];[988,313];[1109,313];[1480,313];[1760,313];[1976,313];[1568,313];[1480,313];[1319,313];[1568,313];[1568,313];[1480,313];[1175,313];[1109,313];[988,313];[880,313];[784,313];[740,313];[659,313];[784,313];[740,313];[659,313];[587,313];[659,313];[740,313];[784,313];[880,313];[659,313];[880,313];[784,313];[740,313];[988,313];[880,313];[784,313];[880,313];[784,313];[740,313];[659,313];[587,313];[494,313];[988,313];[1109,313];[1175,313];[1109,313];[988,313];[880,313];[784,313];[740,313];[659,313];[988,313];[880,313];[988,313];[880,313];[784,313];[740,625];[1480,625];[1319,1250];[1175,1250];[1319,1250];[1175,625];[1480,625];[1319,625];[1568,625];[1760,313];[1480,156];[1568,156];[1760,313];[1480,156];[1568,156];[1760,156];[880,156];[988,156];[1109,156];[1175,156];[1319,156];[1480,156];[1568,156];[1480,313];[1175,156];[1319,156];[1480,313];[740,156];[784,156];[880,156];[988,156];[880,156];[784,156];[880,156];[740,156];[784,156];[880,156];[784,313];[988,156];[880,156];[784,313];[740,156];[659,156];[740,156];[659,156];[587,156];[659,156];[740,156];[784,156];[880,156];[988,156];[784,313];[988,156];[880,156];[988,313];[1109,156];[1175,156];[880,156];[988,156];[1109,156];[1175,156];[1319,156];[1480,156];[1568,156];[1760,156];[1480,313];[1175,156];[1319,156];[1480,313];[1319,156];[1175,156];[1319,156];[2217,156];[1175,156];[1319,156];[1480,156];[1319,156];[1175,156];[1109,156];[1175,313];[988,156];[1109,156];[1175,313];[587,156];[659,156];[740,156];[784,156];[740,156];[659,156];[740,156];[1175,156];[1109,156];[1175,156];[988,313];[1175,156];[1109,156];[988,313];[880,156];[784,156];[880,156];[784,156];[740,156];[784,156];[880,156];[988,156];[1109,156];[587,156];[988,313];[1175,156];[1109,156];[1175,313];[1109,156];[988,156];[1109,156];[1175,156];[1319,156];[1175,156];[1109,156];[1175,156];[988,156];[1109,156];[1480,313];[740,313];[784,313];[740,313];[659,313];[1319,313];[1480,313];[1319,313];[1175,313];[740,313];[587,313];[988,313];[880,313];[440,313];[392,313];[440,313];[494,313];[988,313];[1109,313];[988,313];[1109,313];[440,313];[392,313];[440,313];[494,313];[988,313];[880,313];[988,313];[1109,313];[1109,313];[988,313];[1109,313];[587,313];[1175,313];[1319,313];[1175,313];[1109,313];[554,313];[587,313];[554,313];[494,313];[988,313];[880,313];[988,313];[1109,313];[554,313];[740,313];[659,313];[587,313];[1175,313];[1319,313];[1568,313];[1480,313];[740,313];[880,313];[1480,313];[1175,313];[1568,313];[1480,313];[1568,313];[1319,313];[880,313];[784,313];[880,313];[740,313];[1175,156];[1109,156];[1175,313];[740,313];[880,313];[880,156];[988,156];[1109,313];[880,313];[740,313];[1175,156];[1319,156];[1480,313];[1175,313];[1480,313];[1480,156];[1319,156];[1175,313];[1109,313];[988,313];[988,156];[880,156];[988,313];[1109,313];[1175,313];[1480,156];[1319,156];[1175,313];[1480,313];];
% 高潮部分
ka_nong_0 = [[1760,313];[1480,156];[1568,156];[1760,313];[1480,156];[1568,156];[1760,156];[880,156];[988,156];[1109,156];[1175,156];[1319,156];[1480,156];[1568,156];[1480,313];[1175,156];[1319,156];[1480,313];[740,156];[784,156];[880,156];[988,156];[880,156];[784,156];[880,156];[740,156];[784,156];[880,156];[784,313];[988,156];[880,156];[784,313];[740,156];[659,156];[740,156];[659,156];[587,156];[659,156];[740,156];[784,156];[880,156];[988,156];[784,313];[988,156];[880,156];[988,313];[1109,156];[1175,156];[880,156];[988,156];[1109,156];[1175,156];[1319,156];[1480,156];[1568,156];[1760,156];[1480,313];[1175,156];[1319,156];[1480,313];[1319,156];[1175,156];[1319,156];[2217,156];[1175,156];[1319,156];[1480,156];[1319,156];[1175,156];[1109,156];[1175,313];[988,156];[1109,156];[1175,313];[587,156];[659,156];[740,156];[784,156];[740,156];[659,156];[740,156];[1175,156];[1109,156];[1175,156];[988,313];[1175,156];[1109,156];[988,313];[880,156];[784,156];[880,156];[784,156];[740,156];[784,156];[880,156];[988,156];[1109,156];[587,156];[988,313];[1175,156];[1109,156];[1175,313];[1109,156];[988,156];[1109,156];[1175,156];[1319,156];[1175,156];[1109,156];[1175,156];[988,156];[1109,156];[1480,313];[740,313];[784,313];[740,313];[659,313];[1319,313];[1480,313];[1319,313];[1175,313];[740,313];[587,313];[988,313];[880,313];[440,313];[392,313];[440,313];[494,313];[988,313];[1109,313];[988,313];[1109,313];[440,313];[392,313];[440,313];[494,313];[988,313];[880,313];[988,313];[1109,313];[1109,313];[988,313];[1109,313];[587,313];[1175,313];[1319,313];[1175,313];[1109,313];[554,313];[587,313];[554,313];[494,313];[988,313];[880,313];[988,313];[1109,313];[554,313];[740,313];[659,313];[587,313];[1175,313];[1319,313];[1568,313];[1480,313];[740,313];[880,313];[1480,313];[1175,313];[1568,313];[1480,313];[1568,313];[1319,313];[880,313];[784,313];[880,313];[740,313];[1175,156];[1109,156];[1175,313];[740,313];[880,313];[880,156];[988,156];[1109,313];[880,313];[740,313];[1175,156];[1319,156];[1480,313];[1175,313];[1480,313];[1480,156];[1319,156];[1175,313];[1109,313];[988,313];[988,156];[880,156];[988,313];[1109,313];[1175,313];[1480,156];[1319,156];[1175,313];[1480,313];];%% 运行
MusicData()
% y = get_y(ka_nong, 0);
y = get_y(ka_nong_0, 0);
sound(y, fs);%% 主程序
function out = get_y(data, ooo)y = [];for i = 1:length(data)if i == 1y0 = gen_wave(data(i,1)*2^ooo, data(i,2));elsey0 = gen_wave(data(i,1)*2^ooo, data(i,2), y1(y1(length(y1))+1 : length(y1)-1));endy1 = y0;if i == length(data)y = [y, y0(1:length(y0)-1)];elsey = [y, y0(1:y0(length(y0)))];endendout = y/max(y);
end%% 函数1
function out = gen_wave(f, t, tra)global fsglobal trailglobal fffglobal fdbnum1 = round(fs*t/1000.0);num2 = round(fs*t/(1-trail)/1000.0);x = linspace(0, 2*pi*t/1000.0, num2);out = 0 * x;for i = 1:length(fff)out = out +  fdb(i) * sin(fff(i)*f*x);endout = out .* envelope(x);out = [out, num1];if nargin == 3difn = length(out) - length(tra);tra = [tra, zeros(1, difn)];out = out + tra;end
end%% 函数2
function out = envelope(x)len = length(x);x1 = 0; y1 = 0;px2 = round(len * 1/5); x2 = x(px2); y2 = 1.5;px3 = round(len * 1/3); x3 = x(px3); y3 = 1;px4 = round(len * 2/3); x4 = x(px4); y4 = 1;px5 = round(len * 1);   x5 = x(px5); y5 = 0;k1 = (y2-y1)/(x2-x1);  b1 = y1 - k1*x1;k2 = (y3-y2)/(x3-x2);  b2 = y2 - k2*x2;k3 = (y4-y3)/(x4-x3);  b3 = y3 - k3*x3;k4 = (y5-y4)/(x5-x4);  b4 = y4 - k4*x4;out1 = k1 * x(0+1:px2) + b1;out2 = k2 * x(px2+1:px3) + b2;out3 = k3 * x(px3+1:px4) + b3;out4 = k4 * x(px4+1:px5) + b4;out = [out1, out2, out3, out4];
end

matlab演奏《卡农》代码相关推荐

  1. 天空之城 matlab,[转载]matlab演奏《天空之城》代码

    %matlab演奏<天空之城>代码 l_dao=262; %将"l_dao"宏定义为低音"1"的频率262Hz l_re =286; %将" ...

  2. matlab演奏七里香,沈员外,起风了,未闻花名,卡农

    %%%%%%----MATLAB演奏七里香-----%%%%% fs = 44100; dt = 1/fs; T16 = 0.2; t16 = [0:dt:T16];[temp k] = size(t ...

  3. 如何用matlab演奏《偏爱》

    文章目录 前言 一.效果演示 二.如何唱 1.原理 2.代码 总结 前言 之前学了点matlab,看朋友圈有人做了<追光者>,学了几天,兴致勃勃写了个<偏爱>,后忘记记录了,现 ...

  4. 用matlab演奏周杰伦的《七里香》

    问题描述 前几天在学习matlab的时候,发现了一篇用matlab演奏音乐的文章,不禁感叹matlab居然还能这么玩!于是我就学着用matlab演奏我最喜欢听的一首歌--周杰伦的<七里香> ...

  5. 【音乐】基于matlab演奏《过火》【含Matlab源码 1875期】

    一.获取代码方式 获取代码方式1: [音乐]基于matlab演奏<过火>[含Matlab源码 1875期] 获取代码方式2: 通过订阅紫极神光博客付费专栏,凭支付凭证,私信博主,可获得此代 ...

  6. 【音乐】基于matlab演奏《青花瓷》【含Matlab源码 1873期】

    一.获取代码方式 获取代码方式1: [音乐]基于matlab演奏<青花瓷>[含Matlab源码 1873期] 获取代码方式2: 通过订阅紫极神光博客付费专栏,凭支付凭证,私信博主,可获得此 ...

  7. 基于matlab的64QAM,通信调制体制设计之64QAM性能分析MATLAB仿真及代码

    通信调制体制设计之64QAM性能分析MATLAB仿真及代码 通信调制体制设计之64QAM性能分析MATLAB仿真及代码 任务背景 弗雷泽岛旅游经理在审查您之前建立无线链路任务的解决方案时,正在研究使用 ...

  8. 基于小波变换的图像边缘检测(matlab祖传代码注释)

    基于小波变换的图像边缘提取应用展示 上图为针对png格式无背景原图的边缘检测,对比各种边缘检测算子,小波变化的优势体现并不明显. 上图为针对含背景图片的边缘检测,小波变化的优势这里体现的比较明显. m ...

  9. 基于蝙蝠算法优化BP神经网络的数据分类算法及其MATLAB实现-附代码

    基于蝙蝠算法优化BP神经网络的数据分类算法及其MATLAB实现-附代码 文章目录 基于蝙蝠算法优化BP神经网络的数据分类算法及其MATLAB实现-附代码 1 蝙蝠算法与BP神经网络分类模型 1.1 蝙 ...

  10. 【图像处理】双三次插值(Bicubic interpolation)原理及matlab简易版代码

    先简单写下. 双线性插值:缩放后图像矩阵(简称TI)像素坐标映射到原图像矩阵(简称OI)中得坐标点P(x,y),P点临近四个坐标点像素值的线性加权求和即P点像素值. "双"指的图像 ...

最新文章

  1. 基于U-Net图像分割的划痕缺陷分割(课程设计)
  2. ​NeurIPS 2020 | 面向张量分解知识图谱补全的对偶诱导正则
  3. RocketMQ的Producer详解之顺序消息(原理)
  4. android listview mapview,RelativeLayout和并列ListView/MapView
  5. 【BZOJ4205】卡牌配对 最大流
  6. 【Flink】Flink 报错 flink 1.12.5 启动作业报 partition not found
  7. android优雅的一个侧滑
  8. 聚焦开源技术 第八届开源云黑客松活动举办在即
  9. 大数运算:Barrett And Montgomery
  10. 图新地球为什么很模糊,白球、看图、下载问题深度剖析
  11. mb860 刷机教程
  12. ClickHouse在各大厂的最佳实践
  13. The error may exist in /com/bjpowernode/dao/StudentDao.xml ### Cause: org.apache.ibatis.builder.Buil
  14. python怎么打印字典_Python中的字典
  15. 学前教育本科实践有计算机没,H学院学前教育本科专业“全实践”教学体系的优化.pdf...
  16. vue: Invalid prop: type check failed for prop “action“. Expected String with valu
  17. 授权dns(CloudXNS)的学习使用
  18. Win32 API概述
  19. Redis 间歇性抖动<集群下mget的性能问题>
  20. 微信小程序-转盘抽奖

热门文章

  1. 好客租房160-css-in-js的说明
  2. c++ 制作贪吃蛇游戏 完整版
  3. 苹果呼叫转移设置不了_不改装!不用双卡神器!亲测用苹果老机型实现“单卡双号”效果...
  4. 用C++模拟KFC点餐系统
  5. Java 开发岗面试知识点大全解析
  6. PLC 200 Smart
  7. MindSpore框架TBE算子开发全流程
  8. OpenJDK 源代码阅读之 TimSort
  9. Linux实战-升级Git版本
  10. 好用的翻译软件copytranslator