【各种乐器波形图】笛子、二胡、钢琴、号角等乐器波形图研究

news2024/9/25 17:17:44

标题:不同乐器波形图

笛子的频率取决于其音高,不同音高的笛子频率也不同。以C调笛子为例,其最基本的频率为261.63 Hz(即中央C的频率)。而其他调号的笛子的基本频率则会有所不同。

笛子的波形图:

在这里插入图片描述

import numpy as np
import matplotlib.pyplot as plt
plt.rc("font",family='YouYuan')
plt.rcParams['axes.unicode_minus']=False
# 采样率
fs = 8000

# 表示时间的数组
t = np.arange(fs) / fs

# 笛子的频率
f0 = 261.63

# 笛子的波形
y = np.sin(2 * np.pi * f0 * t)

# 绘制波形图
plt.figure(figsize=(10, 5))
plt.plot(t, y)
plt.xlabel('Time(时间)/ (s)')
plt.ylabel('Amplitude(振幅)')
plt.title('Flute Waveform(长笛波形)')
plt.grid()
plt.show()

二胡的波形图:

二胡的标准音高为G,频率为392 Hz。但是在演奏中,由于需要进行调弦和进行音高变化,频率会有所不同。
在这里插入图片描述

import numpy as np
import matplotlib.pyplot as plt
plt.rc("font",family='YouYuan')
plt.rcParams['axes.unicode_minus']=False

import numpy as np
import matplotlib.pyplot as plt

# 采样率
fs = 8000

# 表示时间的数组
t = np.arange(fs) / fs

# 二胡的频率
f0 = 196

# 二胡的波形
y = np.sin(2 * np.pi * f0 * t) + np.sin(2 * np.pi * 2 * f0 * t) + \
    np.sin(2 * np.pi * 3 * f0 * t) + np.sin(2 * np.pi * 4 * f0 * t)

# 绘制波形图
plt.figure(figsize=(10, 5))
plt.plot(t, y)
plt.xlabel('Time(时间) /(s)')
plt.ylabel('Amplitude(振幅)')
plt.title('Erhu Waveform(二胡波形图)')
plt.grid()
plt.show()

钢琴的波形图:

在这里插入图片描述

import numpy as np
import matplotlib.pyplot as plt
plt.rc("font",family='YouYuan')
plt.rcParams['axes.unicode_minus']=False

# 采样率
fs = 44100

# 触键时间和松键时间
attack_time = 0.01 # 攻击时间
release_time = 0.2 # 松键时间

# 模拟钢琴音色的 ADSR 包络
adsr = np.concatenate([np.linspace(0, 1, int(fs * attack_time)),
                        np.linspace(1, 0.8, int(fs * release_time)),
                        np.linspace(0.8, 0, int(fs * release_time))])


adsr = np.concatenate([np.linspace(0, 1, int(fs * attack_time)),
                        np.linspace(1, 0.8, int(fs * release_time)),
                        np.linspace(0.8, 0, int(fs * release_time))])





# 钢琴的基音频率
f0 = 261.63 # C4

# 生成钢琴音色
note = np.sin(2 * np.pi * f0 * np.arange(fs) / fs)


# 使用 np.tile() 函数将 adsr 扩充到和 note 一样的长度
adsr = np.tile(adsr, int(np.ceil(len(note) / len(adsr))))

# 将音符乘以 ADSR 包络
note *= adsr[:len(note)]

# 绘制波形图
plt.figure(figsize=(10, 5))
plt.plot(note)
plt.xlabel('Time (samples) 时间采样')
plt.ylabel('Amplitude 振幅')
plt.title('Piano Waveform 钢琴波形')
plt.grid()
plt.show()

号角的波形图:

在这里插入图片描述

import numpy as np
import matplotlib.pyplot as plt
plt.rc("font",family='YouYuan')
plt.rcParams['axes.unicode_minus']=False

# 采样率
fs = 44100

# 触键时间和松键时间
attack_time = 0.01 # 攻击时间
release_time = 0.2 # 松键时间

# 模拟钢琴音色的 ADSR 包络
adsr = np.concatenate([np.linspace(0, 1, int(fs * attack_time)),
                        np.linspace(1, 0.8, int(fs * release_time)),
                        np.linspace(0.8, 0, int(fs * release_time))])


adsr = np.concatenate([np.linspace(0, 1, int(fs * attack_time)),
                        np.linspace(1, 0.8, int(fs * release_time)),
                        np.linspace(0.8, 0, int(fs * release_time))])


# 钢琴的基音频率
f0 = 261.63 # C4

# 生成钢琴音色
note = np.sin(2 * np.pi * f0 * np.arange(fs) / fs)


# 使用 np.tile() 函数将 adsr 扩充到和 note 一样的长度
adsr = np.tile(adsr, int(np.ceil(len(note) / len(adsr))))

# 将音符乘以 ADSR 包络
note *= adsr[:len(note)]

# 绘制波形图
plt.figure(figsize=(10, 5))
plt.plot(note)
plt.xlabel('Time (samples) 时间采样')
plt.ylabel('Amplitude 振幅')
plt.title('Piano Waveform 钢琴波形')
plt.grid()
plt.show()

import numpy as np
import matplotlib.pyplot as plt
plt.rc("font",family='YouYuan')
plt.rcParams['axes.unicode_minus']=False

# 采样率
fs = 44100

# 数字信号维度
n = np.arange(fs)

# 号角的基音频率
f0 = 220.0

# ADSR 包络
attack_time = 0.01
release_time = 0.3

adsr = np.concatenate([np.linspace(0, 1, int(fs * attack_time)),
                        np.linspace(1, 0.8, int(fs * release_time)),
                        np.linspace(0.8, 0, int(fs * release_time))])

# 号角音色
note = np.sin(2 * np.pi * f0 * n / fs)

# 添加上升和下降的音调特性
note *= np.cos(np.pi * np.power(n / fs, 0.5))

# 使用 np.tile() 函数将 adsr 扩充到和 note 一样的长度
adsr = np.tile(adsr, int(np.ceil(len(note) / len(adsr))))

# 将音符乘以 ADSR 包络
note *= adsr[:len(note)]


# 绘制波形图
plt.figure(figsize=(10, 5))
plt.plot(n, note)
plt.xlabel('Time (samples)')
plt.ylabel('Amplitude')
plt.title('Horn Waveform')
plt.grid()
plt.show()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/696256.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

有奖问卷 | 2023 中国软件研发效能调查问卷即将截止

中国信通院将根据问卷征集和企业调研结果,与业内专家共同撰写**《2023 中国软件研发效能调查报告》**,研判发展趋势,提供研发效能体系建设建议,并于 2023 年 7 月 7 日正式发布调查报告解读。 随着云计算应用的不断深入&#xff0…

微信小程序中使用echart、动态加载几条折线

一、示例 echart小程序示例 gitub地址:GitHub - ecomfe/echarts-for-weixin: Apache ECharts 的微信小程序版本 在小程序中放入 效果 二、 小程序代码 json 组件的位置取决于一示例中的的echart的位置 { "navigationStyle":"custom","…

STM32速成笔记—EEPROM(AT24C02)

文章目录 一、AT24C02简介二、AT24C02引脚三、AT24C02寻址四、AT24C02读/写操作4.1 AT24C02写操作4.2 AT24C02读操作 五、AT24C02程序六、应用实例七、拓展应用 一、AT24C02简介 AT24C01/02/04/08/16…是一个1K/2K/4K/8K/16K位电可擦除PROM,内部含有128/256/512/10…

数据中心供配电系统负荷的计算方法(三)

数据中心供配电系统是为机房内所有需要动力电源的设备提供稳定、可靠的动力电源支持的系统;是数据中心日常运维的重大支出之一,在数据中心,供配电系统相当于一个人的“心脏和血管”,负责把能量输送到系统的每一台设备。一旦供配电…

伦敦金价格实时查询

伦敦金是具有显著杠杆效应的投资品种,参与其中的投资者,往往需要时刻关注它的实时行情走势,以及自己交易账户内的情况,才能及时地兑现利润和控制交易的风险。所以对于每一位伦敦金投资者来说,实时的行情报价都是十分重…

stable-diffusion 预训练模型汇总

目前各个github上各个库比较杂乱,故此做些整理方便查询 Stable UnCLIP 2.1 New stable diffusion finetune (Stable unCLIP 2.1, Hugging Face) at 768x768 resolution, based on SD2.1-768. This model allows for image variations and mixing operations as d…

OA办公系统如何通过审批流程提高效率

企业的发展与管理离不开信息化,很多企业的信息化都会选择从OA信息化开始。一个成熟先进的OA办公系统流程审批也是核心功能关注的功能之一,今天小编举例有18年平台经验的天翎低代码平台OA系统,给大家分享一下如果提升流程审批效率:…

展会回顾|万应低代码重磅亮相2023全球人工智能产品应用博览会

6月25-27日,人工智能领域的行业盛会——第五届全球人工智能产品应用博览会(简称“全球智博会”)在苏州国际博览中心成功举行。大会由苏州市人民政府指导、苏州工业园区管理委员会支持、新一代人工智能产业技术创新战略联盟、苏州市人工智能协…

Qt 事件过滤器使用QPainter绘制温度

文章目录 【1】eventFilter使用简介【2】QPainter使用简介【3】QPainter绘制温度案例头文件源文件 【4】 UI界面设计【5】温度绘制图 【1】eventFilter使用简介 Qt的eventFilter是一个事件过滤器,可以用来捕获和处理Qt对象的事件。事件过滤器可以被安装到一个对象上…

【js30天挑战】第四天:数组操作

总结 filter(筛选条件为true的项) map(你想要输出的东西),进来多少个 出去多少个 sort(),默认可排字母顺序。sort(compareFn(a, b))其中compareFn(a, b)返回的值若大于0则a在b的后面。 reduce(),最复杂。reduce(func(){上一轮计算出的结果…

Vue 3 + vite技术架引入静态文件的问题(require和import方式)

Vue 3 vite技术架无法使用require()的方式引入静态文件 使用Vue 3 vite技术架开发过程中,引入静态资源时,习惯性使用require()引入,突然发现报错了。 研究了一下才发现,好像vite引入静态资源或者插件啥的,不用requi…

JAVA 二维码绘制,可定义背景图与在背景图种的位置,码点绘制避开logo区域10个像素点

效果图: 背景图: 直接看代码和代码说明: 方法drawQr() 为绘制核心,仅绘制出图上的二维码 方法createQr() 包含 读取背景图和 调用drawQr() 。绘制出完整的带有背景图的二维码 drawQr()方法参数说明: * param conten…

新星计划【数据结构与算法】赛道开启,欢迎报名!

前排提醒:这里是新星计划2023【数据结构与算法】学习方向的报名入口,一经报名,不可更换。 ↓↓↓报名方式:新星计划2023【数据结构与算法】学习方向报名入口!-CSDN社区 一、关于本学习方向导师 博客昵称:…

上海亚商投顾:沪指探底回升微跌 减速器概念股大涨

上海亚商投顾前言:无惧大盘涨跌,解密龙虎榜资金,跟踪一线游资和机构资金动向,识别短期热点和强势个股。 市场情绪 指数今日探底回升,三大股指盘中均跌超1%,随后跌幅逐渐收窄,沪指午后一度拉升翻…

Elasticsearch:使用 SIMD 指令加速向量搜索

作者:Chris Hegarty, Elastic Principal Engineer, Lucene PMC 翻译:杰瑞朱 多年来,Java 平台上运行的代码一直受益于自动向量化 —— HotSpot C2 编译器中的 superword 优化,将多个标量操作打包到 SIMD(单指令多数据…

CWDM粗波分复用和DWDM密集波分复用的区别?

WDM波分复用技术提供了一种经济高效的解决方案,无需在现有光纤网络中部署额外的光纤即可增加网络容量。 CWDM 和 DWDM 是两种主要的 WDM 技术,具有不同的波长模式、功能、成本和应用。 CWDM 代表粗波分复用,其中“Coarse” 是指通道之间的波…

分享一个内网的屏幕分享软件inletexemc

分享一个内网的屏幕分享软件inletexemc 参考文章:https://zhuanlan.zhihu.com/p/25912687 原本采用的一个叫veyon的电子教室管理软件,虽然可以实现这个效果,但是比较笨重,操作也比较繁琐,具体可参考:http…

对话商越苗峰:未来十年,采购数字化是ERP后最核心应用之一

“从创立开始,商越就非常清楚要做什么、不做什么,这个定位到现在没变,未来也不会变。” 作者|皮爷 出品|产业家 清晰、理智、坚定、条律分明,这是商越创始人苗峰给我的第一感觉。 在见到他之前,我曾想象过这家短短几…

来酷智生活,Type-C十二合一扩展坞来了

联想最新推出的“来酷智生活Type-C十二合一扩展坞”为用户带来更多接口选择,方便实用。 这款扩展坞包含12个接口,包括2个USB 3.2,2个USB 2.,2个HDMI接口,TF卡插槽,SD卡插槽,DP接口,P…

电压放大器在超声波检测中的应用

电压放大器是一种用于放大电压信号的电子设备,它具有低噪声、高增益、线性度高等特点,被广泛应用于各种电子设备中。在超声波检测中,电压放大器在信号的采集和处理中发挥着非常重要的作用。 超声波检测是一种通过声波的反射和传播来检测物体内…