示例#1
0
def getOutFromData(data):
	amplitude = []
	fi = []
	for d in data:
		(aI,fI) = smath.calcFi(d['i_csin'], d['i_ccos'])
		(aQ,fQ) = smath.calcFi(d['q_csin'], d['q_ccos'])
		amplitude.append(aI/aQ)
		fi.append(fixFi(fI-fQ))
	return (amplitude, fi)
示例#2
0
def scanFreqHard():
    freq = getFreq()
    IArray = []
    QArray = []
    FIarray = []
    fsin = []

    for i in range(2):
        setFreq(freq[0])  # , levelFreq(f))
        time.sleep(0.2)
        data = samplingAndCalculate()

    for f in freq:
        setFreq(f)  # , levelFreq(f))
        time.sleep(0.02)
        data = samplingAndCalculate()
        result_freq = data[0]
        result_q_cconst = data[1]
        result_q_csin = data[2]
        result_q_ccos = data[3]
        result_q_sqr = data[4]
        result_i_cconst = data[5]
        result_i_csin = data[6]
        result_i_ccos = data[7]
        result_i_sqr = data[8]
        result_time = data[9]

        print("f=", f, "fmax=", result_freq)

        # IArray.append(result_i_sqr)
        # QArray.append(result_q_sqr)

        (Iamplitude, Ifi) = sm.calcFi(result_i_csin, result_i_ccos)
        (Qamplitude, Qfi) = sm.calcFi(result_q_csin, result_q_ccos)
        IArray.append(Iamplitude)
        QArray.append(Qamplitude)
        FIarray.append(Ifi - Qfi)
        print("Iamplitude=", Iamplitude, "Qamplitude=", Qamplitude)
        print("fi=", Ifi - Qfi)
        pass

    jout = {}
    jout["freq"] = freq
    jout["I"] = IArray
    jout["Q"] = QArray
    jout["fsin"] = fsin
    jout["fi"] = FIarray
    f = open("freq.json", "wt")
    f.write(json.dumps(jout))
    f.close()
    pass
示例#3
0
def plotTestPhase():
	fig, ax = plt.subplots()

	N = 256
	freq = 1111
	I = [0]*N
	timeList = makeTimeList(I, 0, sm.STEP)
	phase = 1
	amp = 1.2
	I = amp*np.sin(2*math.pi*freq*np.array(timeList)+phase)

	(c0,csin, ccos) = sm.calcSinCosMatrix(I, freq, sm.STEP)
	(amplitude, fi) = sm.calcFi(csin, ccos)
	print("c0=", c0)
	print("phase=", phase, "delta=", fi-phase)
	print("amplitude=", amplitude)

	Q = csin*np.sin(2*math.pi*freq*np.array(timeList))+ccos*np.cos(2*math.pi*freq*np.array(timeList))+c0

	#freq = 1000

	ax.plot(timeList, I, color='red')
	ax.plot(timeList, Q, color='blue')

	plt.show()
示例#4
0
def scanFreq():
    freq = getFreq()
    IArray = []
    QArray = []
    FIarray = []
    fsin = []
    for f in freq:
        print("f=", f)
        (ISampes, QSampes) = getSamplesByFreq(f)
        I = sqrMean(ISampes)
        Q = sqrMean(QSampes)
        print("getSqrByFreq=", I, Q)
        IArray.append(I)
        QArray.append(Q)

        # freqDelta = 1
        # freqCenter = 1000
        freqDelta = 0.5
        freqCenter = 999.6
        count = 101
        (freqArr, Fmath) = sm.arrayFreq(QSampes, freqCenter - freqDelta, freqCenter + freqDelta, sm.STEP, count)
        fmax = sm.findFreqMax(freqArr, Fmath)
        fsin.append(fmax)
        (Ic0, Isin, Icos) = sm.calcSinCosMatrix(ISampes, fmax, sm.STEP)
        (Qc0, Qsin, Qcos) = sm.calcSinCosMatrix(QSampes, fmax, sm.STEP)
        (Iamplitude, Ifi) = sm.calcFi(Isin, Icos)
        (Qamplitude, Qfi) = sm.calcFi(Qsin, Qcos)
        FIarray.append(Ifi - Qfi)
        print("fmax=", fmax, "fi=", Ifi - Qfi)
        pass

    jout = {}
    jout["freq"] = freq
    jout["I"] = IArray
    jout["Q"] = QArray
    jout["fsin"] = fsin
    jout["fi"] = FIarray
    f = open("freq.json", "wt")
    f.write(json.dumps(jout))
    f.close()
    pass