numpy 如何使用.txt文件中的二进制输入绘制PCM波形

6pp0gazn  于 2022-12-26  发布在  其他
关注(0)|答案(1)|浏览(153)

在我的例子中,我将有一个PCM.txt文件,其中包含PCM数据的二进制表示,如下所示。
[1.一、一、一、二、三、四、五、六、六、七、七、八、七、七、八、八、八、九、九、九、九、九、九、九、九、九、九、九、九、九、九、九、九、九、九、九、九、九、九、九、九、九、九、九、九、九、九、九、九、九、九、九、九、九、九、九、九、九、九、九、九、九、九、九、九、九、九、九、九、九、九、九、九、九、九、九、九、九、九、九、九、九、九、九、九、九、九、九、九、九、九、九、九、九、九、九、九、九、九、九、九、九、九、九、九、九、九、九、九、九、九、九、九、九、九、九、九、九、九、九、九、九、九、九、九、1.本公约适用于所有国家和地区,但不限于此。]

    • 1表示二进制1**
    • 0表示二进制0**

这不过是100个数据样本。
1.有没有可能实现一个python代码,它将读取这个PCM.txt作为输入,并使用matplotlib绘制这个PCM数据。你能给我一些实现这个场景的技巧吗?
1.这个图看起来像方波吗?

ocebsuys

ocebsuys1#

我觉得你想要这个:

import matplotlib.pyplot as plt 
import numpy as np

x = np.arange(100)
y = [1.,1.,0.,1.,0.,1.,1.,1.,1.,1.,0.,1.,1.,1.,1.,1.,1.,1.,0.,1.,1.,1.,0.,1.,0.,1.,0.,1.,0.,0.,1.,0.,0.,0.,0.,0.,1.,0.,0.,0.,0.,0,0.,0.,1.,0.,0.,1.,0.,1.,0.,1.,0.,1.,0.,1.,1.,1.,1.,1.,0.,1.,1.,1.,1.,1.,1.,1.,0.,1.,1.,1.,0.,1.,0.,1.,0.,1.,0.,0.,1.,0.,0.,0.,0.,0.,1.,0.,0.,0.,0.,0.,0.,0.,1.,0.,0.,1.,0.,1.]

plt.step(x, y)
plt.show()

如果你在阅读文件时遇到困难,你可以使用正则表达式来查找看起来像数字的东西:

import matplotlib.pyplot as plt 
import numpy as np
import re

# Slurp entire file
with open('data') as f:
    s = f.read()

# Set y to anything that looks like a number
y = re.findall(r'[0-9.]+', s)

# Set x according to number of samples found
x = np.arange(len(y))

# Plot that thing
plt.step(x, y)
plt.show()

相关问题