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
Chinese
US English (US)
JP Japanese
CN Chinese
KR Korean
  • Home
  • Python API

Python 频谱分析仪‘最大保持’功能

Python 中“Max Hold”的实现

Written by Paul Cracknell

Updated at April 7th, 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 PID 控制器 Moku:Lab示波器 Moku:Lab激光锁频/稳频器 Moku:Lab相位表 Moku:Lab数字滤波器 Moku:Lab任意波形发生器 Moku:Lab波形发生器 Moku:Lab频率响应分析仪 Moku:Lab FIR 滤波器生成器 Moku:Lab锁相放大器 Moku:Lab常见问题解答 Moku:Lab数据记录器
  • 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:Go PID 控制器
  • 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常见问题解答 Moku:Pro数字滤波器
  • Python API
  • MATLAB API
  • 任意波形发生器
  • 数据记录器
  • 数字滤波器
  • FIR滤波器生成器
  • 频率响应分析仪
  • 激光锁频/稳频器
  • 锁相放大器
  • 示波器
  • 相位表
  • PID 控制器
  • 频谱分析仪
  • 时间间隔与频率分析仪
  • 波形发生器
  • 逻辑分析仪/码型发生器
  • 多仪器并行模式
  • Moku云编译
  • Moku常见问题解答
  • LabVIEW API
+ More

如何在Moku的频谱分析仪上使用 Python 创建“最大保持”

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