Skip to content

Commit 7a30151

Browse files
committed
fixed issue with oversample
1 parent bdd0f51 commit 7a30151

2 files changed

Lines changed: 15 additions & 16 deletions

File tree

python_bladerf/pybladerf_tools/pybladerf_sweep.pyx

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -203,7 +203,9 @@ cpdef void pybladerf_sweep(frequencies: list = None, sample_rate: int = 61_000_0
203203
device = pybladerf.pybladerf_open()
204204
else:
205205
device = pybladerf.pybladerf_open_by_serial(serial_number)
206+
206207
run_available[device.serialno] = True
208+
device.pybladerf_enable_feature(pybladerf.pybladerf_feature.PYBLADERF_FEATURE_OVERSAMPLE, False)
207209

208210
if oversample:
209211
sample_rate = int(sample_rate) if MIN_SAMPLE_RATE * 2 <= int(sample_rate) <= MAX_SAMPLE_RATE * 2 else 122_000_000
@@ -242,15 +244,6 @@ cpdef void pybladerf_sweep(frequencies: list = None, sample_rate: int = 61_000_0
242244
if frequencies is None:
243245
frequencies = [int(PY_FREQ_MIN_MHZ - sample_rate // 2e6), int(PY_FREQ_MAX_MHZ + sample_rate // 2e6)]
244246

245-
if oversample:
246-
samples_dtype = np.int8
247-
if print_to_console:
248-
sys.stderr.write(f'call pybladerf_enable_feature({pybladerf.pybladerf_feature.PYBLADERF_FEATURE_OVERSAMPLE}, True)\n')
249-
device.pybladerf_enable_feature(pybladerf.pybladerf_feature.PYBLADERF_FEATURE_OVERSAMPLE, True)
250-
else:
251-
samples_dtype = np.int16
252-
device.pybladerf_enable_feature(pybladerf.pybladerf_feature.PYBLADERF_FEATURE_OVERSAMPLE, False)
253-
254247
if print_to_console:
255248
sys.stderr.write(f'call pybladerf_set_tuning_mode({pybladerf.pybladerf_tuning_mode.PYBLADERF_TUNING_MODE_FPGA})\n')
256249
device.pybladerf_set_tuning_mode(pybladerf.pybladerf_tuning_mode.PYBLADERF_TUNING_MODE_FPGA)
@@ -262,10 +255,16 @@ cpdef void pybladerf_sweep(frequencies: list = None, sample_rate: int = 61_000_0
262255
else:
263256
device.pybladerf_set_sample_rate(channel, sample_rate)
264257

265-
if not oversample:
258+
if oversample:
259+
if print_to_console:
260+
sys.stderr.write(f'call pybladerf_enable_feature({pybladerf.pybladerf_feature.PYBLADERF_FEATURE_OVERSAMPLE}, True)\n')
261+
device.pybladerf_enable_feature(pybladerf.pybladerf_feature.PYBLADERF_FEATURE_OVERSAMPLE, True)
262+
samples_dtype = np.int8
263+
else:
266264
if print_to_console:
267265
sys.stderr.write(f'call pybladerf_set_bandwidth({channel}, {baseband_filter_bandwidth / 1e6 :.3f} MHz)\n')
268266
device.pybladerf_set_bandwidth(channel, baseband_filter_bandwidth)
267+
samples_dtype = np.int16
269268

270269
if print_to_console:
271270
sys.stderr.write(f'call pybladerf_set_gain_mode({channel}, {pybladerf.pybladerf_gain_mode.PYBLADERF_GAIN_MGC})\n')

python_bladerf/pybladerf_tools/pybladerf_transfer.pyx

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -251,6 +251,7 @@ cpdef void pybladerf_transfer(frequency: int = None, sample_rate: int = 10_000_0
251251
device = pybladerf.pybladerf_open_by_serial(serial_number)
252252

253253
run_available[device.serialno] = True
254+
device.pybladerf_enable_feature(pybladerf.pybladerf_feature.PYBLADERF_FEATURE_OVERSAMPLE, False)
254255

255256
if oversample:
256257
sample_rate = int(sample_rate) if MIN_SAMPLE_RATE * 2 <= int(sample_rate) <= MAX_SAMPLE_RATE * 2 else 122_000_000
@@ -298,19 +299,18 @@ cpdef void pybladerf_transfer(frequency: int = None, sample_rate: int = 10_000_0
298299
else:
299300
frequency = DEFAULT_FREQUENCY
300301

301-
if oversample:
302-
if print_to_console:
303-
sys.stderr.write(f'call pybladerf_enable_feature({pybladerf.pybladerf_feature.PYBLADERF_FEATURE_OVERSAMPLE}, True)\n')
304-
device.pybladerf_enable_feature(pybladerf.pybladerf_feature.PYBLADERF_FEATURE_OVERSAMPLE, True)
305-
306302
if print_to_console:
307303
sys.stderr.write(f'call pybladerf_set_sample_rate({sample_rate / 1e6 :.3f} MHz)\n')
308304
if oversample:
309305
device.pybladerf_set_sample_rate(channel, sample_rate // 2)
310306
else:
311307
device.pybladerf_set_sample_rate(channel, sample_rate)
312308

313-
if not oversample:
309+
if oversample:
310+
if print_to_console:
311+
sys.stderr.write(f'call pybladerf_enable_feature({pybladerf.pybladerf_feature.PYBLADERF_FEATURE_OVERSAMPLE}, True)\n')
312+
device.pybladerf_enable_feature(pybladerf.pybladerf_feature.PYBLADERF_FEATURE_OVERSAMPLE, True)
313+
else:
314314
if print_to_console:
315315
sys.stderr.write(f'call pybladerf_set_bandwidth({channel}, {baseband_filter_bandwidth / 1e6 :.3f} MHz)\n')
316316
device.pybladerf_set_bandwidth(channel, baseband_filter_bandwidth)

0 commit comments

Comments
 (0)