<p style="padding:0 0 0 0; margin:0 0 0 0;">já do tohohle moc nešťoural, tak mohu jen zkopírovat co má k tomu student v dp a přiložit příslušný python kód.</p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"> </p>

<p style="padding:0 0 0 0; margin:0 0 0 0;">našel jsem ty fft spektra v příloze dp, přidal jsem na <a href="https://maglab.fel.cvut.cz/proton-mag-dalsi-pokusy/">https://maglab.fel.cvut.cz/proton-mag-dalsi-pokusy/</a> </p>

<p style="padding:0 0 0 0; margin:0 0 0 0;">asi by šlo použít jen 400k vzorků místo 4M a nějak to interpolovat.. asi vyzkoušíme</p>

<p style="padding:0 0 0 0; margin:0 0 0 0;">v.</p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"> </p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"> </p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"> </p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"> </p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">K analýze měřených dat se také velmi často využívá analytického signálu, který je reprezentován</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">pomocí komplexních čísel. Reálnou část tvoří skutečná naměřená data a imaginární část Hilbertova</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">transformace naměřených dat. Matematicky lze takový signál vyjádřit pomocí vztahu:</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">𝑠𝑎 (𝑡) = 𝐴(𝑡)𝑒𝑗𝜑(𝑡) = 𝐴(𝑡) ⋅ cos(𝜑(𝑡)) + 𝐴(𝑡) ⋅ 𝑗 sin(𝜑(𝑡)). (2.6)</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">Pro bližší představu můžeme na obrázku 2.3 vidět grafické znázornění tří period harmonického signálu</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">převedeného na analytický signál. Zkonstruvaný signál si tedy lze představit jako pohyb popisující</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">jednotkovou kružnici v čase. Díky tomu můžeme snadno určit okamžitou amplitudu a frekvenci, a právě</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">proto se této techniky využívá při frekvenční analýze [7]. V našem případě je možné tuto metodu využít</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">k určení průměrné frekvence a následně magnetické indukce odpovídající měřenému precesnímu</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">signálu.</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;"><br />
</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">[7] B. Boashash, „Estimating and interpreting the instantaneous frequency of a signal. I. Fundamentals,“</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">Proceedings of the IEEE, sv. 80, č. 4, pp. 520 - 538, 1992 .</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;"><br />
</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;"><br />
</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">def computeFrequencyWithHilbertTransform(signal, startSample, endSample, fs):</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">    selectedSignal = []</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">    d_angle = []</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">    d_freq = []</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">    skippedEnd = 50</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">    hilbertSignalLength = endSample - startSample - skippedEnd</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">    n = endSample - startSample - skippedEnd - 1</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">    for k in range(len(signal)):   </span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        if((k >= startSample) and (k < endSample)):</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">            selectedSignal.append(signal[k] - 32768) #shift signal to 0</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">    analytic_signal = hilbert(selectedSignal)</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;"><br />
</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">    #omit last 50samples of analytic signal</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">    selectedSignal = selectedSignal[:len(selectedSignal)-skippedEnd]</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">    analytic_signal = analytic_signal[:len(analytic_signal)-skippedEnd]</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">    #d_angle = np.unwrap(np.angle(analytic_signal))</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">    #determine instantenous angle</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">    </span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">    skippedBegining = 20</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">    for k in range(len(analytic_signal)-1):</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        if(k > skippedBegining):  </span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">            d_angle.append(np.angle(analytic_signal[k+1]/analytic_signal[k]))</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;"><br />
</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">    #determine instantenous frequency</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">    for k in range(len(d_angle)):  </span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        d_freq.append(d_angle[k] / (1/fs)/(2*math.pi))</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">    d_angle = np.cumsum(d_angle)</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;"><br />
</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">    # dtermine average frequency</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">    diff_d_angle = max(d_angle) - min(d_angle)</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">    tau=2 * math.pi * ((n-skippedBegining)/fs) / diff_d_angle</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">    f_average = 1/tau         </span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;"><br />
</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">    #plot - hilbert transform</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;"><br />
</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">    if(enablePlot_hilbert):</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        fig = plt.figure(figsize=(30, 12))</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.subplot(2, 1, 1) </span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.plot(signal, label='Signál')</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.plot(np.imag(analytic_signal), label='Hilbertova transformace naměřených dat')</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.xlabel("Vzorky")</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.ylabel("Amplituda")                </span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.legend()         </span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.title(graphTitle + " Hilbertova transformace") </span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;"><br />
</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.subplot(2, 4, 5)</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.xlim(0, 400)</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.plot(signal)</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.plot(np.imag(analytic_signal))</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.xlabel('step') </span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.ylabel('Amplitude')</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;"><br />
</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.subplot(2, 4, 6)</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.xlim(hilbertSignalLength/3 - 200, hilbertSignalLength/3 + 200)</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.plot(signal)</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.plot(np.imag(analytic_signal))</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.xlabel('step') </span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.ylabel('Amplitude')</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;"><br />
</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.subplot(2, 4, 7)</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.xlim(hilbertSignalLength/3 * 2 - 200, hilbertSignalLength/3 * 2 + 200)</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.plot(signal)</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.plot(np.imag(analytic_signal))</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.xlabel('step') </span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.ylabel('Amplitude')</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;"><br />
</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.subplot(2, 4, 8)</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.xlim(hilbertSignalLength - 400, hilbertSignalLength)</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.plot(signal)</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.plot(np.imag(analytic_signal))</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.xlabel('step') </span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.ylabel('Amplitude')</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;"><br />
</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        fig.savefig('generatedFiles/figures/' + graphTitle + '_hilbert.png', dpi=fig.dpi)</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.close(fig)</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        # print("        measured signal and hilbert transform")</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;"><br />
</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">    # plot reconstructed signal vs measured signal</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;"><br />
</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">    if(enablePlot_reconstructed):</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        #create reconstructed signal with detemined frequency</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        reconstructedSig = np.zeros(endSample- startSample)</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        amplitude =max(np.abs(signal)*0.5)</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        #omit also last 50 samples</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        for k in range(endSample- startSample):   </span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">            reconstructedSig[k] = (amplitude*math.cos(2*math.pi*f_average*(k)/fs))</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        #plot</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        fig = plt.figure(figsize=(30, 12))</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.subplot(2, 1, 1) </span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.plot(selectedSignal, label='Naměřený signál')</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.plot(reconstructedSig, label='Zrekonstruovaný signál')</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.xlabel("Vzorky")</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.ylabel("Amplituda")                </span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.legend()         </span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.title(graphTitle + " Rekonstrukce signálu") </span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;"><br />
</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.subplot(2, 4, 5)</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.xlim(0, 400)</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.plot(selectedSignal)</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.plot(reconstructedSig)</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.xlabel('step') </span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.ylabel('Amplitude')</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;"><br />
</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.subplot(2, 4, 6)</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.xlim(hilbertSignalLength/3 - 200, hilbertSignalLength/3 + 200)</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.plot(selectedSignal)</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.plot(reconstructedSig)</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.xlabel('step') </span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.ylabel('Amplitude')</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;"><br />
</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.subplot(2, 4, 7)</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.xlim(hilbertSignalLength/3 * 2 - 200, hilbertSignalLength/3 * 2 + 200)</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.plot(selectedSignal)</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.plot(reconstructedSig)</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.xlabel('step') </span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.ylabel('Amplitude')</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;"><br />
</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.subplot(2, 4, 8)</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.xlim(hilbertSignalLength - 400, hilbertSignalLength)</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.plot(selectedSignal)</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.plot(reconstructedSig)</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.xlabel('step') </span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.ylabel('Amplitude')</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;"><br />
</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        fig.savefig('generatedFiles/figures/' + graphTitle + '_reconstructed.png', dpi=fig.dpi)</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.close(fig)</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        # print("        measured signal and reconstructed signal")</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;"><br />
</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;"><br />
</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;"><br />
</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;"><br />
</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">    # plot instantaneous angle</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">    if(enablePlot_instantaneousAngle):</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;"><br />
</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        fig = plt.figure(figsize=(30, 12))</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.subplot(2, 1, 1) </span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.plot(d_angle)</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.xlabel("Vzorky")</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.ylabel("Úhel [rad]")   </span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.title(graphTitle + " Okamžitý úhel") </span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;"><br />
</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.subplot(2, 4, 5)</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.xlim(0, 400)</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.plot(d_angle)</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.xlabel("Vzorky")</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.ylabel("Úhel [rad]")  </span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;"><br />
</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.subplot(2, 4, 6)</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.xlim(hilbertSignalLength/3 - 200, hilbertSignalLength/3 + 200)</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.plot(d_angle)</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.xlabel("Vzorky")</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.ylabel("Úhel [rad]")  </span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;"><br />
</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.subplot(2, 4, 7)</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.xlim(hilbertSignalLength/3 * 2 - 200, hilbertSignalLength/3 * 2 + 200)</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.plot(d_angle)</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.xlabel("Vzorky")</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.ylabel("Úhel [rad]")  </span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;"><br />
</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.subplot(2, 4, 8)</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.xlim(hilbertSignalLength - 400, hilbertSignalLength)</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.plot(d_angle)</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.xlabel("Vzorky")</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.ylabel("Úhel [rad]")  </span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;"><br />
</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        fig.savefig('generatedFiles/figures/' + graphTitle + '_instantaneousAngle.png', dpi=fig.dpi)</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.close(fig)</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        # print("        instantaneous angle")</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;"><br />
</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;"><br />
</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;"><br />
</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">    # plot instantaneous frequency</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">    if(enablePlot_instantaneousFrequency):</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        fig = plt.figure(figsize=(30, 12))</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.subplot(2, 1, 1) </span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.plot(d_freq)</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.ylim(1800, 2400)</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.xlabel("Vzorky")</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.ylabel("Frekvence [Hz]")   </span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;"><br />
</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.subplot(2, 4, 5)</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.xlim(0, 400)</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.ylim(1800, 2400)</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.plot(d_freq)</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.xlabel("Vzorky")</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.ylabel("Frekvence [Hz]")   </span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;"><br />
</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.subplot(2, 4, 6)</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.xlim(hilbertSignalLength/3 - 200, hilbertSignalLength/3 + 200)</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.ylim(1800, 2400)</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.plot(d_freq)</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.xlabel("Vzorky")</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.ylabel("Frekvence [Hz]")   </span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;"><br />
</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.subplot(2, 4, 7)</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.xlim(hilbertSignalLength/3 * 2 - 200, hilbertSignalLength/3 * 2 + 200)</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.ylim(1800, 2400)</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.plot(d_freq)</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.xlabel("Vzorky")</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.ylabel("Frekvence [Hz]")   </span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;"><br />
</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.subplot(2, 4, 8)</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.xlim(hilbertSignalLength - 400, hilbertSignalLength)</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.ylim(1800, 2400)</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.plot(d_freq)</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.xlabel("Vzorky")</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.ylabel("Frekvence [Hz]")   </span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        fig.savefig('generatedFiles/figures/' + graphTitle + '_instantaneousFreq.png', dpi=fig.dpi)</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;"><br />
</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">        plt.close(fig)                </span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;"><br />
</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">    return f_average</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"> </p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"> </p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"> </p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"> </p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"> </p>

<p style="padding:0 0 0 0; margin:0 0 0 0;">______________________________________________________________<br />
> Od: "balu" <balu@k-net.fr><br />
> Komu: hw-list@list.hw.cz<br />
> Datum: 30.05.2021 12:05<br />
> Předmět: Re: protonovy magnetometr, slaby signal<br />
></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;">Este jedna otazka k tomu Hilbertovi. Da sa strucne popisat ta metoda, aby som si urobil predstavu? </p>

<p style="padding:0 0 0 0; margin:0 0 0 0;">Podobny typ problemu riesim na 1 Gb/s signaloch z LHC, mozno by sa dalo nieco aplikovat aj na toto.</p>

<p style="padding:0 0 0 0; margin:0 0 0 0;">b.</p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"> </p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"> </p>

<div class="moz-cite-prefix">On 30/05/2021 11:53, Vojtěch Petrucha wrote:</div>
<blockquote cite="mid:20210530115311.92FC1B25@volny.cz">
<p style="padding: 0 0 0 0; margin: 0 0 0 0;">zdravim,</p>

<p style="padding: 0 0 0 0; margin: 0 0 0 0;">ideálně se hledá jeden bin s maximální hodnotou, přičemž přibližná frekvenční hodnota toho binu může být známá (z měření frekvence komparátorem..), možná by šlo použít i data třeba z okolních binů toho maximálního a ještě to interpolovat..  </p>

<p style="padding: 0 0 0 0; margin: 0 0 0 0;"> </p>

<p style="padding: 0 0 0 0; margin: 0 0 0 0;">student používal na pc skript v python a knihovnu scipy.fft..  a předpokládám že ve výsledku prostě hledal maximum, nějak to tam teď nevidím, musím se zeptat.. </p>

<p style="padding: 0 0 0 0; margin: 0 0 0 0;"> </p>

<p style="padding: 0 0 0 0; margin: 0 0 0 0;">v.</p>

<p style="padding: 0 0 0 0; margin: 0 0 0 0;"> </p>

<p style="padding: 0 0 0 0; margin: 0 0 0 0;"> </p>

<p style="padding: 0 0 0 0; margin: 0 0 0 0;"> </p>

<p style="padding: 0 0 0 0; margin: 0 0 0 0;">______________________________________________________________<br />
 > Od: "balu" <a href="mailto:balu@k-net.fr"><balu@k-net.fr></a><br />
 > Komu: <a href="mailto:hw-list@list.hw.cz">hw-list@list.hw.cz</a><br />
 > Datum: 29.05.2021 17:12<br />
 > Předmět: Re: protonovy magnetometr, slaby signal<br />
 ></p>

<p style="padding: 0 0 0 0; margin: 0 0 0 0;">v spektre sa hlada jedna dominantna ciara, ktorej frekvenciu priblizne pozname? Alebo je to vseobecne spektrum, ktore moze obsahovat hocico?</p>

<p style="padding: 0 0 0 0; margin: 0 0 0 0;">b.</p>

<p style="padding: 0 0 0 0; margin: 0 0 0 0;"> </p>

<div class="moz-cite-prefix">On 29/05/2021 14:20, Vojtěch Petrucha wrote:</div>
<blockquote cite="mid:20210529142019.5E920CB7@volny.cz">
<p style="padding: 0 0 0 0; margin: 0 0 0 0;">zdravim,</p>

<p style="padding: 0 0 0 0; margin: 0 0 0 0;"> </p>

<p style="padding: 0 0 0 0; margin: 0 0 0 0;">tak jsme našli ještě trochu času a asi už to funguje, viz poslední obrázky na <a href="https://maglab.fel.cvut.cz/proton-mag-dalsi-pokusy/">https://maglab.fel.cvut.cz/proton-mag-dalsi-pokusy/</a></p>

<p style="padding: 0 0 0 0; margin: 0 0 0 0;"> </p>

<p style="padding: 0 0 0 0; margin: 0 0 0 0;">změřili jsme zánik proudu pro různé hodnoty toho tlumícího rezistoru, pro 1k to vypadalo velmi rozumně, tak jsme zkrátili dobu kdy je sepnutý, aby více zbytečně netlumil, vyběhli před  FEL na trávník a signál prakticky totožný s tím s přepináním pomocí relé...</p>

<p style="padding: 0 0 0 0; margin: 0 0 0 0;"> </p>

<p style="padding: 0 0 0 0; margin: 0 0 0 0;">takže moc díky za pomoc</p>

<p style="padding: 0 0 0 0; margin: 0 0 0 0;"> </p>

<p style="padding: 0 0 0 0; margin: 0 0 0 0;">chtěl bych zkusit to zjišťování frekvence pomocí fft, výsledky vypadaly zajímavě. k dispozici 30-40k vzorků při 44.1kSa/s , potřeba alespoň 0.01 Hz rozlišení, to vede na 4M (2^22) délku fft, ale předpokládám že výpočet lze nějak zjednodušit, když by 99% byly nuly... ideální by bylo počítat přímo v mcu  (stm32f767vi, 512kByte ram...) v době následující polarizační fáze - 3s k dispozici...  ale i připlácnutí raspberry pi zero by asi také šlo...</p>

<p style="padding: 0 0 0 0; margin: 0 0 0 0;"> </p>

<p style="padding: 0 0 0 0; margin: 0 0 0 0;">v.</p>

<p style="padding: 0 0 0 0; margin: 0 0 0 0;"> </p>

<p style="padding: 0 0 0 0; margin: 0 0 0 0;"> </p>

<p style="padding: 0 0 0 0; margin: 0 0 0 0;"> </p>

</blockquote>
<br />
 <br />
 ----------<br />
 <br />
 _______________________________________________<br />
 HW-list mailing list  -  sponsored by <a href="http://www.HW.cz">www.HW.cz</a><br />
 <a href="mailto:Hw-list@list.hw.cz">Hw-list@list.hw.cz</a><br />
 <a href="http://list.hw.cz/mailman/listinfo/hw-list">http://list.hw.cz/mailman/listinfo/hw-list</a><br />
 <br />
<fieldset class="mimeAttachmentHeader"></fieldset>
<pre class="moz-quote-pre">_______________________________________________
HW-list mailing list  -  sponsored by <a href="http://www.HW.cz">www.HW.cz</a>
<a href="mailto:Hw-list@list.hw.cz">Hw-list@list.hw.cz</a>
<a href="http://list.hw.cz/mailman/listinfo/hw-list">http://list.hw.cz/mailman/listinfo/hw-list</a>
</pre>
</blockquote>
<br />
 <br />
 ----------<br />
 <br />
 _______________________________________________<br />
 HW-list mailing list  -  sponsored by www.HW.cz<br />
 Hw-list@list.hw.cz<br />
 <a href="http://list.hw.cz/mailman/listinfo/hw-list">http://list.hw.cz/mailman/listinfo/hw-list</a><br />