将16bit的单声道或者双声道的16进制的pcm数据转成波形图片出来分析数据,

python脚本如下:

import numpy as np
import matplotlib.pyplot as plt# 1: 单声道,2:双声道
PCM_CHANNELS = 2# 你提供的十六进制数据
hex_str = """
00 00 00 00 a3 fe a3 fe 45 fd 45 fd 00 00 00 00
94 0b 94 0b 41 1b 41 1b db 24 db 24 fe 22 fe 22
0e 1b 0e 1b 14 13 14 13 0d 0d 0d 0d fb 06 fb 06
e9 00 e9 00 d6 fa d6 fa c3 f4 c3 f4 ba ee ba ee
bb e8 bb e8 c6 e2 c6 e2 e5 dc e5 dc 18 d7 18 d7
60 d1 60 d1 c6 cb c6 cb 4a c6 4a c6 ec c0 ec c0
b6 bb b6 bb a7 b6 a7 b6 c0 b1 c0 b1 08 ad 08 ad
80 a8 80 a8 29 a4 29 a4 08 a0 08 a0 1f 9c 1f 9c
6e 98 6e 98 fa 94 fa 94 c5 91 c5 91 cd 8e cd 8e
18 8c 18 8c a6 89 a6 89 77 87 77 87 8f 85 8f 85
ee 83 ee 83 93 82 93 82 81 81 81 81 b8 80 b8 80
39 80 39 80 03 80 03 80 17 80 17 80 76 80 76 80
1d 81 1d 81 0e 82 0e 82 49 83 49 83 ca 84 ca 84
93 86 93 86 a2 88 a2 88 f5 8a f5 8a 8c 8d 8c 8d
67 90 67 90 80 93 80 93 d8 96 d8 96 6f 9a 6f 9a
3e 9e 3e 9e
46 a2 46 a2 86 a6 86 a6 f7 aa f7 aa 99 af 99 af
6d b4 6d b4 69 b9 69 b9 8e be 8e be dc c3 dc c3
4a c9 4a c9 d7 ce d7 ce 84 d4 84 d4 46 da 46 da
1e e0 1e e0 0c e6 0c e6 06 ec 06 ec 0b f2 0b f2
1b f8 1b f8 2d fe 2d fe 40 04 40 04 54 0a 54 0a
5e 10 5e 10 5f 16 5f 16 56 1c 56 1c 3a 22 3a 22
0a 28 0a 28 c6 2d c6 2d 65 33 65 33 e6 38 e6 38
49 3e 49 3e 85 43 85 43 9a 48 9a 48 88 4d 88 4d
46 52 46 52 d5 56 d5 56 34 5b 34 5b 5d 5f 5d 5f
4e 63 4e 63 08 67 08 67 85 6a 85 6a c4 6d c4 6d
c5 70 c5 70 84 73 84 73 00 76 00 76 3a 78 3a 78
2d 7a 2d 7a d9 7b d9 7b 3e 7d 3e 7d 5b 7e 5b 7e
2e 7f 2e 7f b9 7f b9 7f fa 7f fa 7f f1 7f f1 7f
9d 7f 9d 7f 01 7f 01 7f 1b 7e 1b 7e ec 7c ec 7c
75 7b 75 7b b7 79 b7 79 b1 77 b1 77 68 75 68 75
db 72 db 72 0a 70 0a 70 fb 6c fb 6c ac 69 ac 69
1e 66 1e 66 58 62 58 62 59 5e 59 5e 21 5a 21 5a
b7 55 b7 55 1c 51 1c 51 4f 4c 4f 4c 59 47 59 47
3a 42 3a 42 f1 3c f1 3c 89 37 89 37 00 32 00 32
58 2c 58 2c 99 26 99 26 c4 20 c4 20 d8 1a d8 1a
e1 14 e1 14 dd 0e dd 0e cd 08 cd 08 bc 02 bc 02
a9 fc a9 fc 95 f6 95 f6 89 f0 89 f0 87 ea 87 ea
8d e4 8d e4 a7 de a7 de d4 d8 d4 d8 14 d3 14 d3
71 cd 71 cd ec c7 ec c7 84 c2 84 c2 42 bd 42 bd
27 b8 27 b8 33 b3 33 b3 6d ae 6d ae d7 a9 d7 a9
70 a5 70 a5 3f a1 3f a1 46 9d 46 9d 83 99 83 99
fd 95 fd 95 b5 92 b5 92 aa 8f aa 8f e1 8c e1 8c
5b 8a 5b 8a 17 88 17 88 1a 86 1a 86 63 84 63 84
f3 82 f3 82 cb 81 cb 81 ed 80 ed 80 57 80 57 80
0b 80 0b 80 09 80 09 80 52 80 52 80 e3 80 e3 80
be 81 be 81 e2 82 e2 82 4e 84 4e 84 02 86 02 86
fd 87 fd 87 3c 8a 3c 8a bf 8c bf 8c 86 8f 86 8f
8c 92 8c 92 d1 95 d1 95 56 99 56 99 13 9d 13 9d
0a a1 0a a1 3a a5 3a a5 9c a9 9c a9 30 ae 30 ae 
f6 b2 f6 b2 e6 b7 e6 b7 ff bc ff bc 42 c2 42 c2
a5 c7 a5 c7 29 cd 29 cd ce d2 ce d2 89 d8 89 d8
5b de 5b de 44 e4 44 e4 39 ea 39 ea 3b f0 3b f0
49 f6 49 f6 5a fc 5a fc 6d 02 6d 02 82 08 82 08
8f 0e 8f 0e 93 14 93 14 8e 1a 8e 1a 77 20 77 20
4d 26 4d 26 11 2c 11 2c b8 31 b8 31 42 37 42 37
af 3c af 3c f6 41 f6 41 17 47 17 47 12 4c 12 4c
de 50 de 50 7b 55 7b 55 ea 59 ea 59 23 5e 23 5e
25 62 25 62 f0 65 f0 65 7f 69 7f 69 d1 6c d1 6c
e5 6f e5 6f b8 72 b8 72 48 75 48 75 96 77 96 77
9e 79 9e 79 5f 7b 5f 7b da 7c da 7c 0d 7e 0d 7e
"""# 转成字节数组
data_bytes = bytes.fromhex(hex_str)# 按16位小端解析
pcm_data = np.frombuffer(data_bytes, dtype=np.int16)if PCM_CHANNELS == 2:# 双声道:偶数索引是左声道,奇数索引是右声道left = pcm_data[0::2]right = pcm_data[1::2]
elif PCM_CHANNELS == 1:# 单声道:左右声道数据相同left = pcm_dataright = pcm_data
else:raise ValueError(f"不支持的声道数: {PCM_CHANNELS}")# 绘制波形
plt.figure(figsize=(12, 6))plt.subplot(2, 1, 1)
plt.plot(left, label="Left Channel")
plt.legend()plt.subplot(2, 1, 2)
plt.plot(right, label="Right Channel", color='orange')
plt.legend()plt.suptitle("PCM Waveform (16-bit)")
plt.xlabel("Sample index")
plt.show()

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

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL的锁:

目录 锁的介绍: 并发事务访问相同数据可以分为以下几种情况: 都是进行读操作: 都是进行写操作: 有读操作也有写操作: 读锁、写锁: 读锁: 写锁: 按照锁粒度分类:…

一道同分排名的SQL题

1 概述遇到这样一道题:(1) 有一张学生课程分数表,字段有:ID、名称、性别、科目、分数。(名称换为学号更能标识唯一学生,但名称好阅读,故这里先认为名称可以唯一标识学生。)(2) 用一个SQL&#x…

ICCV 2025 | Reverse Convolution and Its Applications to Image Restoration

标题:Reverse Convolution and Its Applications to Image Restoration作者:Xuhong Huang, Shiqi Liu, Kai Zhang, Ying Tai, Jian Yang, Hui Zeng, Lei Zhang单位:Nanjing University, The Hong Kong Polytechnic University, OPPO Research…

mysql启动超时

mysql启动超时: 管理员打开CMD后允许net start MySQL57, 启动超时检查错误日志 MySQL 启动失败的具体原因通常记录在错误日志中。 日志路径(根据你的安装方式可能不同): 默认位置:C:\ProgramData\MySQL\MyS…

Flink Stream API 源码走读 - window 和 sum

本文核心观点 核心观点:WindowedStream 是一个"假流",它比 KeyedStream 更虚,只是一个 API 的过渡器,不是真正意义上的 DataStream,需要调用函数回归。 虚拟化时刻:从真实流到虚拟流 KeyedStream…

蓝牙 GFSK RX Core 架构解析

GFSK RX Core分为以下几个模块: 1.Frequency offset compensation CORDIC 2.A low pass filter 3.A power estimator for packet detection,RSSI and digital gaion computation for DPSK path 4.A demodulator implemented as Phase Shift Discriminator 5.A drequ…

微电网管控系统中python多线程缓存与SQLite多数据库文件连接池实践总结(含源码)

1. 引言 在分散的微电网能源管理场景中,系统采用集中式云平台模式,为100个独立微电网用户提供高并发数据写入服务面临三大挑战:用户数据隔离、I/O性能瓶颈、多线程安全性。本文揭示一种新式的分片锁+三级缓存+sqlite多数据库文件连接池架构,在保持SQLite轻量级优势的同时,…

InfluxDB 开发工具链:IDE 插件与调试技巧(一)

引言 ** 在当今数字化时代,时间序列数据的处理与分析在众多领域中都扮演着至关重要的角色。无论是物联网设备产生的海量传感器数据,还是金融市场中实时波动的交易数据,又或是服务器运维过程中不断产生的性能指标数据,这些都属于…

计算机网络-IPv6

1、IPv6基础IPv4与IPv6的对比:问题IPv4的缺陷IPv6的优势地址空间IPv4地址采用32比特标识,能提供的地址数量是43亿,分配很不均衡。针对IPv4的地址短缺问题,有几种解决方案:无类别域间路由CIDR(Classless Int…

整体设计 之“凝聚式中心点”原型 --整除:智能合约和DBMS的深层融合 之2

摘要(CSDN的AI助手自动生成的)本文提出了一种基于"整除"数学原型的智能合约与DBMS融合架构设计,将SQL查询语句的四个关键段(SELECT、FROM、WHERE、BY)分别映射到整除运算的四个要素(商、被除数、…

【赵渝强老师】TiDB表数据与键值对的映射关系

TiDB实例将表中的每一行数据映射成RocksDB中的键值对,则需要考虑如何构造Key和Value。首先,OLTP场景下有大量针对单行或者多行的增、删、改、查等操作,要求数据库具备快速读取一行数据的能力。因此,对应的Key最好有一个唯一ID&…

带操作系统的延时函数

delay.c:#include "delay.h"/*** brief 微秒级延时* param nus 延时时长,范围:0~233015* retval 无*/ void delay_us(uint32_t nus) {uint32_t ticks;uint32_t tcnt 0, told, tnow;uint32_t reload SysTick->LOAD; //重…

ES Module 和 CommonJS的区别

ES Module(ESM,ES6 模块系统)和 CommonJS 是 JavaScript 中两种主流的模块规范,分别用于现代前端和 Node.js 环境(早期),它们在语法、加载机制、特性等方面有显著区别。以下是详细对比&#xff…

猫头虎AI分享|一款智能量化交易系统:QuantCell,从数据收集到策略执行全流程自动化

猫头虎AI分享|一款智能量化交易系统:QuantCell,从数据收集到策略执行全流程自动化 在当今金融市场中,量化交易系统已经成为越来越多投资者和机构的重要选择。无论是股票、期货还是加密货币,自动化交易与人工智能的结合…

直播美颜SDK架构揭秘:动态贴纸功能的实现原理与性能优化

如今,美颜SDK 已经不再只是“磨皮、美白”的基础工具,而是逐渐进化为一个涵盖 人脸识别、实时特效、动态贴纸交互 的复杂技术体系。尤其是 动态贴纸功能 的加入,让主播与观众之间的互动更加生动有趣,也成为提升用户粘性与平台差异…

Docker安装CDC

Docker安装CDC拉取镜像离线形式安装上传文件并创建docker-compose.yml把镜像加载到docker中启动容器连接数据库创建账号,并给账号授权设置wal_level确认wal_level的值创建链接查询连接状态使用kafdrop消息中看不到修改之前的信息怎么办补充拉取镜像 docker pull co…

如何在win服务器中部署若依项目

一、安装jdk的环境: 这一步很简单,直接拿到安装包双击安装即可。 二、配置jdk的环境变量默认安装的路径为:C:\Program Files (x86)\Java\jdk1.7.0_51安装完成之后进行环境变量配置右击计算机(此电脑)点击属性点击高级系…

CSS从入门到精通完整指南

第一部分:CSS基础入门1.1 什么是CSSCSS(层叠样式表,Cascading Style Sheets)是用于描述HTML文档外观和格式的样式语言。CSS将内容与表现分离,让HTML专注于内容结构,CSS专注于视觉效果。1.2 CSS语法结构选择…

重温k8s基础概念知识系列二(Pod)

文章目录1、Pod概念2、K8s 中的 Pod 的两种用法3、定义Pod4、Pod的创建资源5、Pod 模板6、容器探针7、总结干货8、 K8s Pod 经典面试题速查表Pod是Kubernetes中最小的单元: 1、Pod概念 Pod 是可以在 Kubernetes中创建和管理的、最小的可部署的计算单元。它由一组、一…

设计模式之静态代理

一些个人理解 顾名思义,就是代理一个对象。 那么,既然要代理一个东西,就要传入它吧? 【1】所以将代理对象当作属性【【2】往往通过构造方法传入被代理的目标对象】。 既然要代理,那必然要和代理对象拥有相同的功能吧? 所以实现了…