US English (US)
JP Japanese
CN Chinese
KR Korean

Contact Us

If you still have questions or prefer to get help directly from an agent, please submit a request.
We’ll get back to you as soon as possible.

Please fill out the contact form below and we will reply as soon as possible.

  • Knowledge Base Home
  • Contact Us
Japanese
US English (US)
JP Japanese
CN Chinese
KR Korean
  • Home
  • Python API

Python スペクトラム アナライザの「最大ホールド」機能

Python での「Max Hold」の実装

Written by Paul Cracknell

Updated at April 9th, 2025

Contact Us

If you still have questions or prefer to get help directly from an agent, please submit a request.
We’ll get back to you as soon as possible.

Please fill out the contact form below and we will reply as soon as possible.

  • Moku:Lab
    Moku:Lab に関するよくある質問 Moku:Labロジックアナライザ/パターンジェネレータ Moku:Lab時間および周波数アナライザー Moku:Labスペクトラムアナライザー Moku:Lab PID コントローラ Moku:Labオシロスコープ Moku:Lab位相計 Moku:Labレーザーロックボックス Moku:Labデジタルフィルターボックス Moku:Lab任意波形ジェネレータ Moku:Lab波形ジェネレーター Moku:Lab周波数応答アナライザー Moku:Lab FIR フィルター ビルダー Moku:Labロックインアンプ Moku:Labデータロガー
  • Moku:Go
    Moku:Goに関するよくある質問 Moku:Goロックインアンプ Moku:Goロジックアナライザ & パターンジェネレータ Moku:Goオシロスコープ & 電圧計 Moku:Goスペクトラムアナライザー Moku:Go波形ジェネレータ Moku:Go時間・周波数アナライザー Moku:Goデジタルフィルターボックス Moku:Go FIR フィルター ビルダー Moku:Goレーザーロックボックス Moku:Go任意波形ジェネレータ Moku:Go周波数応答アナライザー Moku:Goデータロガー Moku:Go計 Moku:Go電源 Moku:Go
  • Moku:Pro
    Moku:Proに関するよくある質問 Moku:Pro波形発生器 Moku:Proタイム&周波数アナライザ Moku:Proロジックアナライザ/パターンジェネレーター Moku:Proレレーザーロックボックス Moku:Proロックインアンプ Moku:Proスペクトラムアナライザ Moku:Proデータロガー Moku:Pro任意波形発生器 Moku:Proマルチ機器モード Moku:Pro位相計 Moku:Pro FIRフィルタービルダー Moku:Pro PIDコントローラー Moku:Proオシロスコープ Moku:Pro周波数応答アナライザ Moku:Proデジタルフィルターボックス
  • Python API
  • MATLAB API
  • 任意波形発生器
  • データロガー
  • デジタルフィルターボックス
  • FIR フィルタ ビルダー
  • 周波数応答アナライザー
  • レーザーロックボックス
  • ロックインアンプ
  • オシロスコープ
  • 位相計
  • PIDコントローラー
  • スペクトラムアナライザー
  • 時間と周波数アナライザー
  • 波形発生器
  • ロジックアナライザ/パターンジェネレーター
  • マルチ機器モード
  • Mokuクラウドコンパイル
  • Mokuに関するよくある質問
  • LabVIEW API
+ More

Mokuのスペクトラム アナライザーで Python で「Max Hold」を作成するにはどうすればよいでしょうか

Mokuのスペクトル アナライザーには、iPad アプリと Windows アプリの両方に数学チャンネルが含まれています。この数学チャンネルには便利な「最大値保持」機能があります。

添付の Python スクリプトは、スペクトラム アナライザー機器を展開し、周波数をスイープしてこのデータを Python にキャプチャします。次に、Python 内で「最大ホールド」トレースを計算して表示します。

#
# Moku example: Plotting Spectrum Analyzer - Max Hold
#
# This example demonstrates how you can configure the Spectrum Analyzer
# instrument and plot ad Max Hold of its spectrum data in real-time. 
#
# (c) 2023 Liquid Pty. Ltd.
#
from moku.instruments import SpectrumAnalyzer
import matplotlib.pyplot as plt

# Launch Spectrum Analyzer and connect to your device via IP
i = SpectrumAnalyzer('192.168.###.###', force_connect=True)

try:
    # Set spectrum analyzer configuration
    i.set_defaults()
    i.set_span(70e6, 130e6)
    i.set_rbw('Auto')  # Auto-mode

    # Configure ADC inputs
    i.set_frontend(1, "50Ohm", "AC", "400mVpp")
    i.set_frontend(2, "50Ohm", "AC", "400mVpp")

    # Set up basic plot configurations
    line1, = plt.plot([])
    line2, = plt.plot([])
    plt.ion()
    plt.show()
    plt.grid()
    plt.ylim([-200, 100])
    plt.autoscale(axis='x', tight=True)

    # Get an initial frame of data to set any frame-specific plot parameters
    frame = i.get_data()

    # Format the x-axis as a frequency scale
    ax = plt.gca()  
    counter = 0

    # Get and update the plot with new data
    while True:
        frame = i.get_data()
        plt.pause(0.0001)
        fc1 = frame['ch1']
        spectrum_length = len(fc1)
        # Set the frame data for each channel plot
        line1.set_ydata(fc1)
        if counter == 0:
            current_max = fc1
        else:
            for x in range(0,spectrum_length):
                if fc1[x]>current_max[x]:
                    current_max[x] = fc1[x]
        line2.set_ydata(current_max)        
        # Frequency axis shouldn't change, but to be sure
        line1.set_xdata(frame['frequency'])
        line2.set_xdata(frame['frequency'])
        # Ensure the frequency axis is a tight fit
        ax.relim()
        ax.autoscale_view()


        # Redraw the lines
        plt.draw()
        counter = counter + 1
        
except Exception as e:
    print(f'Exception occurred: {e}')
    
finally:
    # Close the connection to the Moku device
    # This ensures network resources are released correctly
    i.relinquish_ownership()

Was this article helpful?

Yes
No
Give feedback about this article

Related Articles

  • Pythonを使用して出力信号を観察しながら任意の波形を生成する
  • Mokuロックインアンプの復調信号の位相を変更する方法
  • ディープメモリモードでのデータ収集
  • 「pkg_resources という名前のモジュールがありません」というエラーを修正
  • PythonのインストールとMokuパッケージを確認する

Sitemap

  • Moku:Lab
  • Instruments
  • Software
  • Company
  • Support
  • Store
  • Terms & Conditions
  • Privacy Policy

Offices

United States
+1 (619) 332-6230
12526 High Bluff Dr
Suite 150
San Diego, CA 92130

Australia
+61 2 6171 9730
243 Northbourne Avenue
Suite 2
Lyneham, ACT 2602

Australia
+61 03 7073 3594
700 Swanston Street
Suite 5E, Level 5
Carlton, VIC 3053

Follow us

Youtube LinkedIn

官方微信

Contact us
© 2025 Liquid Instruments. All rights reserved.

Knowledge Base Software powered by Helpjuice

Definition by Author

0
0
Expand