Skip to content
Open
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
53 changes: 27 additions & 26 deletions test/dma_tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -418,12 +418,16 @@ def dds_two_tone(
raise Exception(e)
del sdr
tone_peaks, tone_freqs = spec.spec_est(data, fs=RXFS, ref=2 ** 15)
indx = heapq.nlargest(2, range(len(tone_peaks)), tone_peaks.__getitem__)
s1 = "Peak 1: " + str(tone_peaks[indx[0]]) + " @ " + str(tone_freqs[indx[0]])
s2 = "Peak 2: " + str(tone_peaks[indx[1]]) + " @ " + str(tone_freqs[indx[1]])
indx1 = min(range(len(tone_freqs)), key=lambda i: abs(tone_freqs[i] - frequency1))
s1 = f"Peak 1: {tone_peaks[indx1]} @ {tone_freqs[indx1]}"
print(s1)

# Find closest frequency match for frequency2
indx2 = min(range(len(tone_freqs)), key=lambda i: abs(tone_freqs[i] - frequency2))
s2 = f"Peak 2: {tone_peaks[indx2]} @ {tone_freqs[indx2]}"
print(s2)


if do_html_log:
pytest.data_log = {
"html": gen_line_plot_html(
Expand All @@ -435,29 +439,26 @@ def dds_two_tone(
)
}

if (abs(frequency1 - tone_freqs[indx[0]]) <= (frequency1 * 0.01)) and (
abs(frequency2 - tone_freqs[indx[1]]) <= (frequency2 * 0.01)
):
diff1 = np.abs(tone_freqs[indx[0]] - frequency1)
diff2 = np.abs(tone_freqs[indx[1]] - frequency2)
# print(frequency1, frequency2)
# print(tone_freqs[indx[0]], tone_freqs[indx[1]])
# print(tone_peaks[indx[0]], tone_peaks[indx[1]])
# print(diff1, diff2)
assert (frequency1 * 0.01) > diff1
assert (frequency2 * 0.01) > diff2
assert tone_peaks[indx[0]] > peak_min1
assert tone_peaks[indx[1]] > peak_min2
elif (abs(frequency2 - tone_freqs[indx[0]]) <= (frequency2 * 0.01)) and (
abs(frequency1 - tone_freqs[indx[1]]) <= (frequency1 * 0.01)
):
diff1 = np.abs(tone_freqs[indx[0]] - frequency2)
diff2 = np.abs(tone_freqs[indx[1]] - frequency1)
assert (frequency2 * 0.01) > diff1
assert (frequency1 * 0.01) > diff2
assert tone_peaks[indx[1]] > peak_min1
assert tone_peaks[indx[0]] > peak_min2

# Define tolerance
tolerance1 = frequency1 * 0.01
tolerance2 = frequency2 * 0.01

# Check frequency and peak values
if (abs(tone_freqs[indx1] - frequency1) <= tolerance1 and
abs(tone_freqs[indx2] - frequency2) <= tolerance2):

assert abs(tone_freqs[indx1] - frequency1) <= tolerance1
assert abs(tone_freqs[indx2] - frequency2) <= tolerance2
assert tone_peaks[indx1] > peak_min1
assert tone_peaks[indx2] > peak_min2

elif (abs(tone_freqs[indx1] - frequency2) <= tolerance2 and
abs(tone_freqs[indx2] - frequency1) <= tolerance1):

assert abs(tone_freqs[indx1] - frequency2) <= tolerance2
assert abs(tone_freqs[indx2] - frequency1) <= tolerance1
assert tone_peaks[indx1] > peak_min1
assert tone_peaks[indx2] > peak_min2

def nco_loopback(uri, classname, param_set, channel, frequency, peak_min):
"""nco_loopback: TX/DAC Test tone loopback with connected loopback cables.
Expand Down