help='begin scan here, in Hertz') parser.add_argument('--stop', type=int, default=108000000, help='stop scan here, in Hertz') parser.add_argument('--step', type=int, default=100000, help='step size for scan, in Hertz') args = parser.parse_args() model = load_model('fourthModel.h5') sdr = RtlSdr() sdr.sample_rate = sample_rate = 2400000 sdr.err_ppm = 56 sdr.gain = 'auto' #model.save('fourthModel.h5') train_path = 'training_data' correct_predictions = 0 classes = [ d for d in os.listdir(train_path) if os.path.isdir(os.path.join(train_path, d)) ] num_classes = len(classes) freq = args.start while freq <= args.stop: samples = []
plt.xticks(np.linspace(-sample_rate / 2e3, sample_rate / 2e3, 7)) plt.xlim(-sample_rate / 2e3, sample_rate / 2e3) # draw it plt.show() def randomword(length): letters = string.ascii_lowercase return ''.join(random.choice(letters) for i in range(length)) sdr = RtlSdr() sdr.sample_rate = sample_rate = 2400000 dec_rate = 48 sdr.err_ppm = 56 # change it to yours sdr.gain = 20 # change it to yours, it is better to obtain samples at different gain levels # collect "other" class training data # for example here we are scanning ether from 110M to 144M assuming there are no interesting signals (it's not true) freq = 114000000 while freq <= 144000000: print(' reading at', freq) iq_samples = read_samples(sdr, freq) iq_samples = signal.decimate(iq_samples, dec_rate, zero_phase=None) filename = "training_data/other/samples-" + randomword(16) + ".npy" np.save(filename, iq_samples) freq += 50000 # collect "wfm" class traininig data for i in range(0, 1000):
process(samples, rtl_sdr_obj) parser = argparse.ArgumentParser( formatter_class=argparse.ArgumentDefaultsHelpFormatter) parser.add_argument('--ppm', type=int, default=0, help='ppm error correction') parser.add_argument('--gain', type=int, default=20, help='RF gain level') parser.add_argument('--freq', type=int, default=92900000, help='frequency to listen to, in Hertz') parser.add_argument('--verbose', action='store_true', help='mute audio output') args = parser.parse_args() sdr = RtlSdr() sdr.rs = 1024000 sdr.fc = args.freq sdr.gain = args.gain sdr.err_ppm = args.ppm sdr.read_samples_async(read_callback, int(sdr.get_sample_rate()) // 16)