elif (SNR < 37.455 and SNR > 30.5): distmin = 35 distmax = 45 elif (SNR < 30.5 and SNR > 25): distmin = 45 distmax = 100 return distmin, distmax #print(len(sys.argv)) #print(sys.argv[0]) #configuring the device sdr = RtlSdr(serial_number='0000103') sdr.sample_rate = 1.024e6 sdr.bandwidth = 512e3 if len(sys.argv) == 2: sdr.center_freq = sys.argv[1] else: sdr.center_freq = 462562500 print("Current Frequency: ", sdr.center_freq) sdr.freq_correction = 1 sdr.gain = 6 #time = 21 snr_vals = [] #num_samples = int(sdr.sample_rate*time) #print("Collecting ", num_samples, " samples") #while(1):
def main(): clear = lambda: os.system('clear') clear() print("\nFALCON-B Tracking and Monitoring Software v0.0.2.") print( "Created by Ian Carney, Michael Krzystowczyk, William Lee, and Frank Palermo." ) print("Louisiana Tech University") print( "This program is for technical demonstration only and is not for use\nin any commercial, industrial, or operational environments.\n" ) print( "Version Notes: Adds ability to coordinate direction with multiple antennas.\n" ) sdrgain = 27 #global snr1, snr2, snr3, snr4 if len(sys.argv) == 2: centerfreq = sys.argv[1] else: centerfreq = 150e6 #print(len(sys.argv)) #print(sys.argv[0]) #Configures SDR1 sdr1 = RtlSdr(serial_number='0000101') sdr1.sample_rate = 1.024e6 sdr1.bandwidth = 512e3 sdr1.center_freq = centerfreq #Configures SDR2 sdr2 = RtlSdr(serial_number='0000102') sdr2.sample_rate = 1.024e6 sdr2.bandwidth = 512e3 sdr2.center_freq = centerfreq sdr2.gain = sdrgain #Configures SDR3 sdr3 = RtlSdr(serial_number='0000103') sdr3.sample_rate = 1.024e6 sdr3.bandwidth = 512e3 sdr3.center_freq = centerfreq sdr3.gain = sdrgain #Configures SDR4 sdr4 = RtlSdr(serial_number='0000104') sdr4.sample_rate = 1.024e6 sdr4.bandwidth = 512e3 sdr4.center_freq = centerfreq sdr4.gain = sdrgain while (1): collect1 = Process(target=readValues, args=sdr1) #Returns Power of SDR1 collect2 = Process(target=readValues, args=sdr2) #Returns Power of SDR2 collect3 = Process(target=readValues, args=sdr3) #Returns Power of SDR3 collect4 = Process(target=readValues, args=sdr4) #Returns Power of SDR4 collect1.start() collect2.start() collect3.start() collect4.start() sdr1data = collect1.result() sdr2data = collect2.result() sdr3data = collect3.result() sdr4data = collect4.result() collect1.join() collect2.join() collect3.join() collect4.join() #sdr1data = readValues(sdr1) #Returns Power of SDR1 #sdr2data = readValues(sdr2) #Returns Power of SDR2 #sdr3data = readValues(sdr3) #Returns Power of SDR3 #sdr4data = readValues(sdr4) #Returns Power of SDR4 snr1 = np.float32(getSNR(sdr1data)) #Returns SNR of SDR1 snr2 = np.float32(getSNR(sdr2data)) #Returns SNR of SDR2 snr3 = np.float32(getSNR(sdr3data)) #Returns SNR of SDR3 snr4 = np.float32(getSNR(sdr4data)) #Returns SNR of SDR4 all_snr = [snr1, snr2, snr3, snr4] #Puts all SDR Data in an array print("All SNR: ") print(all_snr) all_snr.sort() print("Sorted SNR: ") print(all_snr) #reg_list = np.tolist(sorted_snr) highSNR = all_snr[-1] #Gets highest SNR secondSNR = all_snr[-2] #Gets second highest SNR print("High SNR: ", highSNR, "\n") print("Second SNR: ", secondSNR, "\n") if ((highSNR or secondSNR) != 0 and (highSNR or secondSNR) > 2): shortDist = getDist(highSNR) #Uses highest SNR to find distance longDist = getDist( secondSNR) #Gets distance from second highest antenna SNR print("Printing vals that go into findcase\n") print(highSNR, secondSNR) print(snr1, snr2, snr3, snr4) case, ceiling = findCase(highSNR, secondSNR, snr1, snr2, snr3, snr4) print("\n") print("Case Number: ", case) print("Ceiling: ", ceiling, " degrees") angle = dirFind(shortDist, longDist, ceiling) print("Signal Detected! There is a signal that is ", shortDist, " away at an angle of ", angle, " degrees.")
Created on Fri Jun 5 23:36:59 2020 @author: ord """ from rtlsdr import RtlSdr from matplotlib import pyplot as plt sdr = RtlSdr() #conigure device sdr.sample_rate = 2.048e6 #Hz sdr.center_freq = 105.5e6 #Hz sdr.freq_correction = 60 #ppm sdr.gain = 12.5 sdr.bandwidth = 10e3 #Hz #Las muestras vienen normalizadas a 127.5, samples = sdr.read_samples(100 * 1024) sample_time = 256 * 1024 sdr.close() psd, f = plt.psd(samples, NFFT=1024, Fs=sdr.sample_rate / 1e6, Fc=sdr.center_freq / 1e6, color='g') plt.title('Power spectral density') plt.xlabel('Frequency (MHz)') plt.ylabel('Relative power (dB)')
def main(): clear = lambda: os.system('clear') clear() print("\nFALCON-B Tracking and Monitoring Software v0.0.2.") print("Created by Ian Carney, Michael Krzystowczyk, William Lee, and Frank Palermo.") print("Louisiana Tech University") print("This program is for technical demonstration only and is not for use\nin any commercial, industrial, or operational environments.\n") sdrgain = 5 bw = 32e3 sampRate = 1.024e6 correction = 50 #global snr1, snr2, snr3, snr4 if len(sys.argv)==2: centerfreq = sys.argv[1] else: centerfreq = 462562500 #Configures SDR1 sdr1 = RtlSdr(serial_number='0000101') sdr1.sample_rate = sampRate sdr1.bandwidth = bw sdr1.center_freq = centerfreq print(sdr1.center_freq) sdr1.gain=5 sdr1.freq_correction = correction #Configures SDR2 sdr2 = RtlSdr(serial_number='0000102') sdr2.sample_rate = sampRate sdr2.bandwidth = bw sdr2.center_freq = centerfreq sdr2.gain=5 sdr2.freq_correction = correction #Configures SDR3 sdr3 = RtlSdr(serial_number='0000103') sdr3.sample_rate = sampRate sdr3.bandwidth = bw sdr3.center_freq = centerfreq sdr3.gain=5 sdr3.freq_correction = correction #Configures SDR4 sdr4 = RtlSdr(serial_number='0000104') sdr4.sample_rate = sampRate sdr4.bandwidth = bw sdr4.center_freq = centerfreq sdr4.gain=4 sdr4.freq_correction = correction _idx = 0 while(1): print("Collecting data...") sdr1data = readValues(sdr1, sampRate) #Returns Power of SDR1 sleep(0.1) sdr2data = readValues(sdr2, sampRate) #Returns Power of SDR2 sleep(0.1) sdr3data = readValues(sdr3, sampRate) #Returns Power of SDR3 sleep(0.1) sdr4data = readValues(sdr4, sampRate) #Returns Power of SDR4 snr1 = np.float32(getSNR(sdr1data)) #Returns SNR of SDR1 snr2 = np.float32(getSNR(sdr2data)) #Returns SNR of SDR2 snr3 = np.float32(getSNR(sdr3data)) #Returns SNR of SDR3 snr4 = np.float32(getSNR(sdr4data)) #Returns SNR of SDR4 all_snr = [snr1, snr2, snr3, snr4] #Puts all SDR Data in an array #print("All SNR: ") # print(all_snr) all_snr.sort() #print("Sorted SNR: ") highSNR = all_snr[-1] #Gets highest SNR secondSNR = all_snr[-2] #Gets second highest SNR if(highSNR == snr1): snr3 = 0 if(highSNR == snr2): snr4 = 0 if(highSNR == snr3): snr1 = 0 if(highSNR == snr4): snr2 = 0 all_snr2 = [snr1, snr2, snr3, snr4] #print(all_snr2) all_snr2.sort() highSNR2 = all_snr2[-1] secondSNR2 = all_snr2[-2] #print(all_snr2) #print("High SNR: ", highSNR,"\n") #print("Second SNR: ", secondSNR, "\n") if((highSNR2 or secondSNR2) != 0 and (highSNR2 or secondSNR2) > 2): shortDist = getDist(highSNR2) #Uses highest SNR to find distance #longDist = getDist(secondSNR2) #Gets distance from second highest antenna SNR # print(highSNR, secondSNR) #print(snr1, snr2, snr3, snr4) try: case, ceiling = findCase(highSNR2, secondSNR2, snr1, snr2, snr3, snr4) minDist, maxDist, colorZone = findZone(highSNR) locationMatrix = [case, colorZone] #print("The signal is between ", minDist, " feet away and ", maxDist, " feet away.") if(case==0): raise TypeError # print("\n") # print("Case Number: ", case) # print("Ceiling: ", ceiling, " degrees") #angle = dirFind(shortDist, longDist, ceiling) print("Signal Detected!") print "Distance: ", minDist, " to ", maxDist, " feet away." #print "Distance Zone: ", colorZone print "Direction Zone: ", case print "Ceiling: ", ceiling, " degrees to ", ceiling-45, " degrees" data_log = open("./webserver/data_log.txt","a+",0) data_log.write("Dist: {},Brng: {},Zone: {}.{},Idx: {},\n".format((minDist+maxDist)//2, ceiling, case, colorZone,_idx)) data_log.close() _idx += 1 #print("Signal Detected! There is a signal that is ", shortDist, " away at an angle of ", angle, " degrees.") for _ in range(2): print('\n') except: