In [1]:
sys.path.append("..")
from sensing.utils import fam
In [2]:
from PIL import Image
def imshow2(x, *args, **kwargs):
ax = gca()
fig = gcf()
bbox = ax.get_window_extent().transformed(fig.dpi_scale_trans.inverted())
w = bbox.width * fig.dpi
h = bbox.height * fig.dpi
if x.shape[0] > h or x.shape[1] > w:
x2 = asarray(Image.fromarray(x).resize((int(w), int(h)), Image.ANTIALIAS))
else:
x2 = x
imshow(x2, *args, **kwargs)
In [3]:
def get_scf(path, Np):
x = load(path)
N = x.shape[0]/1000
x0 = x[10*N:11*N]
L = Np/4
return fam(x0, Np, L)
In [4]:
def plot_scf(path, Np, fs):
scf = get_scf(path, Np)
scf[scf==0] = float('nan')
# for printing
#figure()
##imshow2(abs(scf), cmap='gray_r', aspect='auto', origin='lower', vmin=0, vmax=2.1e-9, extent=[-fs,fs,-.5*fs,.5*fs])
#imshow2(abs(scf), cmap='jet', aspect='auto', origin='lower', vmin=0, vmax=2.1e-9, extent=[-fs,fs,-.5*fs,.5*fs])
#grid(color='k')
# for notebook
figure(figsize=(10,8))
imshow2(abs(scf), cmap='jet', aspect='auto', origin='lower', vmin=0, extent=[-fs,fs,-.5*fs,.5*fs])
grid(color='w')
cb = colorbar()
#cb.set_label("linear scale")
xlabel(r"$\alpha$ [MHz]")
ylabel("$f$ [MHz]")
In [5]:
plot_scf("../samples-usrp_campaign_mic2/usrp_micsoft_fs1mhz_Ns25ks_off.npy", Np=256, fs=1)
title("SCF (USRP @ $f_s=1$MHz, $N_s=25$ksamples)");
In [6]:
plot_scf("../samples-usrp_campaign_mic2/usrp_micsoft_fs2mhz_Ns25ks_off.npy", Np=256, fs=2)
title("SCF (USRP @ $f_s=2$MHz, $N_s=25$ksamples)");
In [7]:
plot_scf("../samples-usrp_campaign_mic2/usrp_micsoft_fs10mhz_Ns100ks_off.npy", Np=256, fs=10)
title("SCF (USRP @ $f_s=10$MHz, $N_s=100$ksamples)");
Central spot is due to low-frequency noise.
In [8]:
Np = 256
scf = get_scf("../samples-usrp_campaign_mic2/usrp_micsoft_fs1mhz_Ns25ks_off.npy", Np=Np)
N = scf.shape[1]/2
fs = 1.
f = fs * arange(-Np/2, Np/2) / Np
plot(f, abs(scf[:,N]))
title("Power Spectral Density (USRP @ $f_s=1$MHz, $N_s=25$ksamples)");
xlabel("$f$ [MHz]")
grid()
In [9]:
plot_scf("../samples-usrp_campaign_mic2/usrp_micsoft_fs1mhz_Ns25ks_m71_0dbm.npy", Np=256, fs=1)
title("$S_x(\\alpha, f)$ (USRP @ $f_s=1$MHz, $N_s=25$ksamples)");
#savefig("scf-example.eps")
Out[9]:
In [10]:
Np = 512
scf = get_scf("../samples-usrp_campaign_mic2/usrp_micsoft_fs1mhz_Ns25ks_m71_0dbm.npy", Np=Np)
N = scf.shape[1]/2
figure(figsize=(10,8))
imshow2(abs(scf[Np/2:,N/2:3*N/2]), aspect='auto', origin='lower', vmin=0, extent=[-.5*fs,.5*fs,0,.5*fs])
grid(color='w')
cb = colorbar()
cb.set_label("linear scale")
xlabel(r"$\alpha$ [MHz]")
ylabel("$f$ [MHz]")
title("SCF (USRP @ $f_s=1$MHz, $N_s=25$ksamples)");
In [11]:
plot_scf("../samples-usrp_campaign_mic2/usrp_micsoft_fs2mhz_Ns25ks_m71_0dbm.npy", Np=256, fs=2)
title("SCF (USRP @ $f_s=2$MHz, $N_s=25$ksamples)");
In [12]:
plot_scf("../samples-usrp_campaign_mic2/usrp_micsoft_fs10mhz_Ns100ks_m71_0dbm.npy", Np=256, fs=10)
title("SCF (USRP @ $f_s=10$MHz, $N_s=100$ksamples)");
In [13]:
plot_scf("../samples-usrp_campaign_mic2/usrp_micsoft_fs10mhz_Ns100ks_m71_0dbm.npy", Np=256, fs=10)
title("SCF (USRP @ $f_s=10$MHz, $N_s=100$ksamples)");
In [14]:
plot_scf("../samples-usrp_campaign_mic2/usrp_micsoft_fs10mhz_Ns100ks_m71_0dbm.npy", Np=128, fs=10)
title("SCF (USRP @ $f_s=10$MHz, $N_s=100$ksamples)");
In [15]:
plot_scf("../samples-usrp_campaign_mic2/usrp_micsoft_fs10mhz_Ns100ks_m71_0dbm.npy", Np=64, fs=10)
title("SCF (USRP @ $f_s=10$MHz, $N_s=100$ksamples)");
In [16]:
plot_scf("../samples-usrp_campaign_mic2/usrp_micsoft_fs10mhz_Ns100ks_m71_0dbm.npy", Np=32, fs=10)
title("SCF (USRP @ $f_s=10$MHz, $N_s=100$ksamples)");
In [16]: