我正在使用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编程的新手。欢迎任何建议。谢谢。