You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Python绘制单列及10列矩阵含噪ASCII数据的噪声频谱

依赖安装

首先安装所需依赖库:

pip install numpy matplotlib scipy
完整实现代码
import numpy as np
import matplotlib.pyplot as plt
from scipy.signal import welch

def plot_noise_spectrum(file_path, sampling_freq):
    """
    绘制ASCII数据的噪声频谱
    :param file_path: 数据文件路径
    :param sampling_freq: 数据采样频率(单位:Hz,需替换为你的实际采样率)
    """
    # 读取ASCII数据,自动适配单列/多列格式
    data = np.loadtxt(file_path)
    
    # 统一转换为二维数组格式处理
    if len(data.shape) == 1:
        data = data.reshape(-1, 1)
    
    # 使用Welch法计算功率谱密度,更适合噪声分析
    freqs, psd = welch(data, fs=sampling_freq, nperseg=1024)
    
    # 绘制频谱
    plt.figure(figsize=(10, 6))
    if psd.shape[1] == 1:
        plt.semilogy(freqs, psd[:, 0], label='单列数据噪声谱')
    else:
        for col_idx in range(psd.shape[1]):
            plt.semilogy(freqs, psd[:, col_idx], label=f'第{col_idx+1}列噪声谱')
    
    plt.xlabel('频率 (Hz)')
    plt.ylabel('功率谱密度 (PSD)')
    plt.title('噪声频谱分析')
    plt.grid(which='both', linestyle='--', alpha=0.7)
    plt.legend()
    plt.tight_layout()
    plt.show()

# 使用示例
if __name__ == '__main__':
    # 替换为你的实际文件路径和采样频率
    # 绘制单列文件频谱
    plot_noise_spectrum('single_column_data.txt', sampling_freq=100)
    # 绘制10列矩阵文件频谱
    plot_noise_spectrum('matrix_10col_data.txt', sampling_freq=100)
注意事项
  • 代码会自动识别输入文件是单列还是多列格式,无需手动指定
  • 必须将sampling_freq参数替换为你的实际数据采样频率,否则频率轴数值会有偏差
  • 可调整welch方法的nperseg参数平衡频谱分辨率和平滑度,数值越大频率分辨率越高
  • 若不需要对数坐标显示,将semilogy替换为plot即可使用线性坐标

内容的提问来源于stack exchange,提问作者manas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 18:24:03