init various python test scripts
This commit is contained in:
parent
b7cc09b8a9
commit
81453dcace
BIN
capture.bin
Normal file
BIN
capture.bin
Normal file
Binary file not shown.
35
main.py
Normal file
35
main.py
Normal file
@ -0,0 +1,35 @@
|
||||
import numpy as np
|
||||
import matplotlib.pyplot as plt
|
||||
|
||||
Fs = 1 # Hz
|
||||
N = 100 # number of points to simulate, and our FFT size
|
||||
|
||||
t = np.arange(N) # because our sample rate is 1 Hz
|
||||
s = np.sin(0.15*2*np.pi*t)
|
||||
#s = s * np.hamming(100)
|
||||
S = np.fft.fftshift(np.fft.fft(s))
|
||||
S_mag = np.abs(S)
|
||||
S_phase = np.angle(S)
|
||||
f = np.arange(Fs/-2, Fs/2, Fs/N)
|
||||
#plt.figure(0)
|
||||
#plt.plot(f, S_mag,'.-')
|
||||
#plt.figure(1)
|
||||
#plt.plot(f, S_phase,'.-')
|
||||
#plt.show()
|
||||
|
||||
|
||||
# simulate the signal above, or use your own signal
|
||||
|
||||
x = 20
|
||||
|
||||
fft_size = 1024
|
||||
sample_rate = 512
|
||||
num_rows = len(s) // fft_size # // is an integer division which rounds down
|
||||
spectrogram = np.zeros((num_rows, fft_size))
|
||||
for i in range(num_rows):
|
||||
spectrogram[i,:] = 10*np.log10(np.abs(np.fft.fftshift(np.fft.fft(x[i*fft_size:(i+1)*fft_size])))**2)
|
||||
|
||||
plt.imshow(spectrogram, aspect='auto', extent = [sample_rate/-2/1e6, sample_rate/2/1e6, len(s)/sample_rate, 0])
|
||||
plt.xlabel("Frequency [MHz]")
|
||||
plt.ylabel("Time [s]")
|
||||
plt.show()
|
20
rtl.py
Normal file
20
rtl.py
Normal file
@ -0,0 +1,20 @@
|
||||
from rtlsdr import RtlSdr
|
||||
import numpy as np
|
||||
import matplotlib.pyplot as plt
|
||||
|
||||
sdr = RtlSdr()
|
||||
sdr.sample_rate = 2.048e6 # Hz
|
||||
sdr.center_freq = 100e6 # Hz
|
||||
sdr.freq_correction = 60 # PPM
|
||||
print(sdr.valid_gains_db)
|
||||
sdr.gain = 49.6
|
||||
print(sdr.gain)
|
||||
|
||||
x = sdr.read_samples(4096)
|
||||
sdr.close()
|
||||
|
||||
plt.plot(x.real)
|
||||
plt.plot(x.imag)
|
||||
plt.legend(["I", "Q"])
|
||||
plt.savefig("../_images/rtlsdr-gain.svg", bbox_inches='tight')
|
||||
plt.show()
|
22
sec.py
Normal file
22
sec.py
Normal file
@ -0,0 +1,22 @@
|
||||
import numpy as np
|
||||
import matplotlib.pyplot as plt
|
||||
|
||||
sample_rate = 1e6
|
||||
|
||||
# Generate tone plus noise
|
||||
t = np.arange(1024*1000)/sample_rate # time vector
|
||||
f = 50e3 # freq of tone
|
||||
x = np.sin(2*np.pi*f*t)
|
||||
|
||||
# simulate the signal above, or use your own signal
|
||||
|
||||
fft_size = 1024
|
||||
num_rows = len(x) // fft_size # // is an integer division which rounds down
|
||||
spectrogram = np.zeros((num_rows, fft_size))
|
||||
for i in range(num_rows):
|
||||
spectrogram[i,:] = 10*np.log10(np.abs(np.fft.fftshift(np.fft.fft(x[i*fft_size:(i+1)*fft_size])))**2)
|
||||
|
||||
plt.imshow(spectrogram, aspect='auto', extent = [sample_rate/-2/1e6, sample_rate/2/1e6, len(x)/sample_rate, 0])
|
||||
plt.xlabel("Frequency [MHz]")
|
||||
plt.ylabel("Time [s]")
|
||||
plt.show()
|
Loading…
x
Reference in New Issue
Block a user