importtimeimportscipy.signal as signallimportnumpy as npimportmatplotlibimportmatplotlib.pyplot as plt
y_axis_last=np.linspace(0.0, 0.0, 21120)
plt_x=0
plt_arr=np.random.rand(1024, 1)defparse_output(start_freq, stop_freq,step ,donser_now_lable,donser, num_now, min_freq):"""Parse data from soapy_power"""
#define size
x_axis = np.linspace(start_freq, stop_freq, round((stop_freq -start_freq)))
y_axis= np.linspace(0.0, 0.0, round((stop_freq -start_freq) ))#print(len(x_axis))
donser_now_lable=donser_now_lable+len(x_axis)#y_axis deal
globaly_axis_last , plt_x , plt_arr
i=0
temp_lab=0for num in range(donser_now_lable+1,len(donser),1):if num>=len(donser):
y_axis[i]=0
temp_lab=len(donser)-donser_now_lableif num_now==1:
y_axis[i]=donser[num]else:
y_axis[i]=(donser[num]*0.65+y_axis_last[i]*0.35)
i=i+1
if i==len(x_axis):breaky_axis_last=y_axis
time_stop=time.time()#FFT change
if temp_lab!=0:return -1wave_data1=y_axis[0:len(x_axis)]#print(len(x_axis))
wave_data2 = wave_data1 *signall.hann(len(x_axis))
c=np.fft.fft(wave_data2[0:len(x_axis)])*2/len(x_axis)#print(len(c))
d=int(len(c)/2)
y_axis=abs(c[0:d])
x_axis.resize(d)
min=100max=0for i in range(0,len(y_axis),1):if y_axis[i]>max:
max=y_axis[i]if y_axis[i]
min=y_axis[i]#print(max)
#print(min)
#x_axis y_axis to buffer & update buffer
if min_freq isNone:
min_freq=start_freqif start_freq ==min_freq:
databuffer= {"timestamp": time_stop,"x": list(x_axis),"y": list(y_axis)}else:
databuffer["x"].extend(x_axis)
databuffer["y"].extend(y_axis)if stop_freq >0:#data_storage.update(databuffer)
#self.plt_arr=np.random.rand(1024)
#self.plt_x=0
#print(self.plt_x)
if plt_x==0:
plt_arr=y_axis
plt_arr.resize(len(y_axis) ,1)print("first time")else:
plt_temp=y_axis
plt_temp.resize(len(y_axis) ,1)
plt_arr=np.concatenate((plt_arr,plt_temp ), axis=1)#print(self.plt_arr)
if plt_x%1000==0:print(plt_x)if plt_x%1000==0:
cm=‘hot‘norm= matplotlib.colors.Normalize(vmin=min, vmax=max)
map=plt.imshow(plt_arr,interpolation=‘nearest‘,cmap=cm,norm=norm, origin=‘upper‘)
plt.xticks([])
plt.yticks([])
plt.axis(‘off‘)#plt.colorbar(mappable=map,ax=None,shrink=0.5, pad=0)
plt.savefig("filename.png", dpi=1320)#plt.show()
print("-------------------------->")print(plt_x)
plt_x+=1temp_str=str(num_now)returndonser_now_labledefmain():
num_now=1donser_now_lable=0
sys_start_freq= 87000000.0 #start fre 87MHZ
sys_stop_freq = 108127168.0 #stop fre 108MHZ
step = 10316#5158 # 2579.0 #Bin size 1KHZ new (108127168-87000000)/8192
bins = 2048 #4096 #8192 #21120# 10560 #sampling number MHZ
#time_s = 1 # ?times
stop_freq = sys_start_freq #init
min_freq =None
plt_x=0#donser=np.fromfile("C:\\Users\\Administrator\\Desktop\\bins\\123.b_le.bin", dtype=np.int16 )
donser=np.fromfile("C:\\Users\\Administrator\\Desktop\\bins\\1.b_le.bin", dtype=np.int16 ,count=629145600) #600M 629145600
while 1:#time_start = time.time()
start_freq =stop_freqif start_freq>=sys_stop_freq:breakstop_freq= start_freq+bins#print("Start:", start_freq)
#print("Stop :", stop_freq)
donser_now_lable=parse_output(start_freq,stop_freq, step,donser_now_lable,donser, num_now, min_freq)
num_now=num_now+1
if donser_now_lable>=len(donser) :break
if __name__ == "__main__":
main()