我正在使用 USRP E310 开发 GNU-radio。我以文件格式记录了 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 编程很陌生。欢迎任何建议。谢谢你。