Exemplo n.º 1
0
    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):
Exemplo n.º 2
0
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.")
Exemplo n.º 3
0
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)')
Exemplo n.º 4
0
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: