Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在python中读取复杂的二进制文件(.fc32)?_Python_Python 3.x_Numpy_Gnuradio_Gnuradio Companion - Fatal编程技术网

如何在python中读取复杂的二进制文件(.fc32)?

如何在python中读取复杂的二进制文件(.fc32)?,python,python-3.x,numpy,gnuradio,gnuradio-companion,Python,Python 3.x,Numpy,Gnuradio,Gnuradio Companion,我正在与USRP E310合作制作GNU收音机。我以文件格式记录了500MHz信号,扩展名为.fc32。下面是我知道的有关生成文件的一些详细信息 它是一个复杂的二进制文件。浮点数据流以32位的形式依次保存在文件中。复数信号的实部为32位,虚部为32位。读回复数意味着读入32位,将其保存到复数数据结构的实部,然后读入下一个32位作为数据结构的虚部 将整个文件读入numpy数组的一行Python命令是: f = scipy.fromfile(open("loopback1.fc32"), dtype

我正在与USRP E310合作制作GNU收音机。我以文件格式记录了500MHz信号,扩展名为
.fc32
。下面是我知道的有关生成文件的一些详细信息

它是一个复杂的二进制文件。浮点数据流以32位的形式依次保存在文件中。复数信号的实部为32位,虚部为32位。读回复数意味着读入32位,将其保存到复数数据结构的实部,然后读入下一个32位作为数据结构的虚部

将整个文件读入numpy数组的一行Python命令是:

f = scipy.fromfile(open("loopback1.fc32"), dtype=scipy.complex64)
我试着写下基本代码,但我希望改进它,这样我可以绘制记录的信号(振幅、时间),并使用它进行进一步分析。如果有人能分享编辑过的代码,那将非常有帮助

import numpy, scipy
import os
import matplotlib.pyplot as plt

path = r'D:\FilePath\2016425'
os.chdir(path)

samples = scipy.fromfile(open("loopback1.fc32"), dtype=scipy.complex64)

digital_power_of_samples = numpy.abs(samples)**2
mean_power = digital_power_of_samples.mean()
max_power = max(digital_power_of_samples)

print (mean_power, max_power)
print (numpy.var(samples.real), numpy.var(samples.imag))

real = numpy.real(samples)
imag = numpy.imag(samples)
plt.ylim([-1,1])
plt.xlim([-1,1])
plt.plot(real, imag)
plt.show()
对于上述程序,我收到
real imag

0.00623067 0.0075818
0.00312979 0.00310087

我对Python编程相当陌生。欢迎提出任何建议。谢谢。

嗨,布山,我也很高兴在这里见到你!因此,当涉及到问题时,StackOverflow通常非常精确。你真的应该解释你看到了什么,你想看到什么,以及这是怎么回事@马库斯穆勒也很高兴见到你!!非常感谢你的建议。我已经解决了这个问题。下次我会考虑你的建议。如果你已经解决了这个问题,在这里加上一个答案是礼貌的。在StackOverflow上,强烈鼓励您回答自己的问题。让你不再关心的问题站在周围是不可能的。