def METHOD_NAME(bits, op_data):
    """Does the SNR Analysis and plots FFT"""
    adc_amplitude_adj = 2 ** (bits - 1)  # x**y is same as x^y
    adc_amplitude_peak = max(op_data) - min(op_data)
    mag_adj = adc_amplitude_peak / (2 * adc_amplitude_adj)
    mag_adj_db = 20 * np.log10(mag_adj)
    """SNR Analysis"""
    harmonics, snr, thd, sinad, enob, sfdr, floor = sp.sin_params(op_data)
    f1_freq = (harmonics[1][1]) * (fs / N)
    sig_amp = np.sqrt(abs(harmonics[1][0]))
    fund_dbfs = 20 * np.log10(sig_amp / 2 ** (bits - 1))
    f2 = 20 * np.log10((np.sqrt(abs(harmonics[2][0]))) / adc_amplitude_adj)
    f3 = 20 * np.log10((np.sqrt(abs(harmonics[3][0]))) / adc_amplitude_adj)
    f4 = 20 * np.log10((np.sqrt(abs(harmonics[4][0]))) / adc_amplitude_adj)
    f5 = 20 * np.log10((np.sqrt(abs(harmonics[5][0]))) / adc_amplitude_adj)
    floor += fund_dbfs
    max_code = max(op_data)
    min_code = min(op_data)
    bin_width = fs / N
    snr_adj = snr - fund_dbfs
    thd_calc = 10 * np.log10(
        (10 ** (f2 / 10)) + (10 ** (f3 / 10)) + (10 ** (f4 / 10)) + (10 ** (f5 / 10))
    )
    sinad_calc = -10 * np.log10((10 ** (-snr_adj / 10)) + (10 ** (thd_calc / 10)))
    enob_calc = (sinad_calc - 1.76) / 6.02
    sfdr_adj = sfdr - fund_dbfs
    """ Print the actual and calculated parameters"""
    print("Binwidth = ", bin_width)
    print("SNR (dB) = ", snr)
    print("SNR of Adjacent chan (dB) =", snr_adj)
    print("thd = " + str(thd) + " calculated thd = " + thd_calc)
    print("sfdr = " + str(sfdr) + " adjacent chan sfdr = " + sfdr_adj)
    print("ENOB = " + str(enob) + " calculated ENOB = " + enob_calc)
    print("sinad = " + str(sinad) + " calculated sinad = " + sinad_calc)
    print("Max code = " + str(max_code) + "Min code = " + str(min_code))
    print("Lent of each captured array =", len(op_data))