filtering stuff
This commit is contained in:
parent
48d559f084
commit
958d1f96d1
|
@ -170,8 +170,8 @@ n, wn = signal.buttord(
|
|||
analog=False,
|
||||
fs=sdr.sdr.sample_rate,
|
||||
)
|
||||
b, a = signal.butter(n, wn, "lowpass", analog=False, output="ba", fs=sdr.sdr.sample_rate)
|
||||
filt_data = signal.lfilter(b, a, ddc_data, axis=-1)
|
||||
sos = signal.butter(n, wn, "lowpass", analog=False, output="sos", fs=sdr.sdr.sample_rate)
|
||||
filt_data = signal.sosfiltfilt(sos, ddc_data, axis=-1)
|
||||
axs[0][0].plot(np.real(filt_data).T, label="FILT")
|
||||
axs[1][0].plot(np.imag(filt_data).T, label="FILT")
|
||||
filt_rel = filt_data[1] / filt_data[0]
|
||||
|
@ -220,21 +220,19 @@ ax.set_ylim(ax.get_xlim())
|
|||
fig.show()
|
||||
|
||||
# %% Plot in frequency
|
||||
f, Pxx_den = signal.periodogram(data, sdr.sdr.sample_rate, axis=-1, return_onesided=False)
|
||||
f_ddc, Pxx_den_ddc = signal.periodogram(ddc_data, sdr.sdr.sample_rate, axis=-1, return_onesided=False)
|
||||
f_filt, Pxx_den_filt = signal.periodogram(filt_data, sdr.sdr.sample_rate, axis=-1, return_onesided=False)
|
||||
f = np.fft.fftfreq(data.shape[-1], 1 / sdr.sdr.sample_rate)
|
||||
Pxx_den = np.fft.fft(data, axis=-1)
|
||||
Pxx_den_ddc = np.fft.fft(ddc_data, axis=-1)
|
||||
Pxx_den_filt = np.fft.fft(filt_data, axis=-1)
|
||||
fft_ddc_tone = np.fft.fft(ddc_tone, axis=-1)
|
||||
RX_BITS = 10
|
||||
Pxx_den = np.fft.fft(data, axis=-1) / (len(data) * 2 ** (2 * RX_BITS))
|
||||
Pxx_den_ddc = np.fft.fft(ddc_data, axis=-1) / (len(ddc_data) * 2 ** (2 * RX_BITS))
|
||||
Pxx_den_filt = np.fft.fft(filt_data, axis=-1) / (len(filt_data) * 2 ** (2 * RX_BITS))
|
||||
fft_ddc_tone = np.fft.fft(ddc_tone, axis=-1) / (len(ddc_tone))
|
||||
plt.figure()
|
||||
for cc, chan in enumerate(sdr.sdr.rx_enabled_channels):
|
||||
plt.plot(
|
||||
np.fft.fftshift(f),
|
||||
db20(np.fft.fftshift(Pxx_den[cc])),
|
||||
label=f"Channel {chan}",
|
||||
)
|
||||
# plt.plot(
|
||||
# np.fft.fftshift(f),
|
||||
# db20(np.fft.fftshift(Pxx_den[cc])),
|
||||
# label=f"Channel {chan}",
|
||||
# )
|
||||
plt.plot(
|
||||
np.fft.fftshift(f),
|
||||
db20(np.fft.fftshift(Pxx_den_ddc[cc])),
|
||||
|
@ -245,16 +243,16 @@ for cc, chan in enumerate(sdr.sdr.rx_enabled_channels):
|
|||
db20(np.fft.fftshift(Pxx_den_filt[cc])),
|
||||
label=f"Channel {chan}",
|
||||
)
|
||||
plt.plot(
|
||||
np.fft.fftshift(f),
|
||||
db20(np.fft.fftshift(fft_ddc_tone)),
|
||||
label="DDC Tone",
|
||||
)
|
||||
# plt.plot(
|
||||
# np.fft.fftshift(f),
|
||||
# db20(np.fft.fftshift(fft_ddc_tone)),
|
||||
# label="DDC Tone",
|
||||
# )
|
||||
plt.legend()
|
||||
# plt.ylim(1e-7, 1e2)
|
||||
plt.ylim(0)
|
||||
plt.ylim(-100, 0)
|
||||
plt.xlabel("Frequency [Hz]")
|
||||
plt.ylabel("PSD [$V^2/Hz$]")
|
||||
plt.ylabel("Power [dBfs]")
|
||||
plt.title(f"Fc = {sdr.sdr.rx_lo / 1e9} GHz")
|
||||
plt.gca().xaxis.set_major_formatter(EngFormatter())
|
||||
plt.grid(True)
|
||||
|
|
Loading…
Reference in New Issue
Block a user