3、Python信号处理环境搭建:NumPy、SciPy、Matplotlib安装与配置、Jupyter Notebook使用

说实话,做雷达信号处理这么多年,我见过太多人一上来就啃算法,结果连个波形都画不出来。为啥?环境没搭好。你想想看,工具都不趁手,怎么干活?

这一章,咱们就把吃饭的家伙事儿备齐。别嫌基础,我当年刚入行时,光装个库就折腾了一下午——后来发现是Python版本没对上。嗯,这种坑,咱们今天一并填上。

3.1 为什么是这三个库?

做蝙蝠仿生雷达,说白了就是跟数组、数学公式和图形打交道。NumPy管数组,SciPy管算法,Matplotlib管可视化。这三兄弟缺一不可。

  • NumPy:所有数据的基础容器。雷达回波信号本质就是个一维数组,没有NumPy你寸步难行。
  • SciPy:信号处理的工具箱。滤波、傅里叶变换、小波分析,全在里头。我习惯叫它「瑞士军刀」。
  • Matplotlib:画图用的。你总得看看波形长什么样吧?

核心逻辑:NumPy装数据 → SciPy做处理 → Matplotlib看结果。一条流水线,清清楚楚。

3.2 安装前的准备工作

我个人建议,别直接往系统Python里装库。为啥?项目一多,版本冲突能让你崩溃。我曾经同时维护三个项目,一个要NumPy 1.19,一个要1.24,结果全乱套了。

所以,先装个虚拟环境管理工具。推荐用Anaconda,省心。

3.2.1 检查Python版本

打开终端或命令提示符,敲下面这行:

python --version

输出应该是 Python 3.8 以上。低于3.7的,建议升级。我遇到过用Python 2.7跑SciPy的,那叫一个痛苦——好多新函数都不支持。

3.2.2 创建虚拟环境(推荐)

conda create -n bat_radar python=3.9
conda activate bat_radar

环境名叫 bat_radar,你换成自己喜欢的也行。激活后,终端前面会出现 (bat_radar) 字样,说明环境生效了。

小技巧:每次打开新终端,记得先 conda activate bat_radar。我习惯在项目根目录放个 .env 文件提醒自己。

3.3 安装三大库

3.3.1 使用pip安装

最直接的方式:

pip install numpy scipy matplotlib

等进度条跑完就行。如果网速慢,可以加个国内镜像:

pip install numpy scipy matplotlib -i https://pypi.tuna.tsinghua.edu.cn/simple

3.3.2 使用conda安装(推荐)

如果你用的Anaconda,我更推荐用conda装:

conda install numpy scipy matplotlib

conda会自动处理依赖关系,不容易出幺蛾子。我在项目里遇到过pip装SciPy报错,换成conda一次过。

3.3.3 验证安装

装完别急着走,先验证一下。打开Python交互环境:

python
>>> import numpy as np
>>> import scipy
>>> import matplotlib
>>> print(np.__version__)
>>> print(scipy.__version__)
>>> print(matplotlib.__version__)

没有报错,说明安装成功。如果报错,八成是环境没激活,或者Python版本不匹配。

注意:如果出现 ImportError: No module named 'numpy',先检查你当前在哪个环境里。我曾经在系统环境里装了半天,结果项目用的是虚拟环境——白忙活。

3.4 Jupyter Notebook:交互式开发的利器

做信号处理,我特别喜欢用Jupyter Notebook。为啥?你可以一段一段地跑代码,随时看中间结果。调试雷达波形时,这功能太香了。

3.4.1 安装Jupyter

conda install jupyter

或者:

pip install jupyter

3.4.2 启动Jupyter Notebook

在终端里敲:

jupyter notebook

浏览器会自动打开一个页面,地址一般是 http://localhost:8888。如果没自动打开,手动复制地址进去也行。

3.4.3 新建一个Notebook

点击右上角的「New」→「Python 3」,就创建了一个新的Notebook。你可以把它重命名为「chapter_03_env_setup」。

在第一个单元格里输入:

import numpy as np
import scipy.signal as signal
import matplotlib.pyplot as plt

print("环境搭建成功!")

按 Shift+Enter 运行。看到输出,说明一切正常。

我的习惯:每个Notebook开头都放一个「环境检查」单元格,把常用的库全import一遍。这样后面写代码时,不会突然发现某个库没装。

3.5 知识体系总览

下面这张图,把本章的核心逻辑串起来了。你一看就明白:

Python信号处理环境搭建 - 知识体系 NumPy 数组操作、矩阵运算 SciPy 信号处理、滤波、FFT Matplotlib 数据可视化、波形绘制 数据 结果 安装方式 pip install / conda install → 推荐使用conda管理依赖 Jupyter Notebook 交互式开发环境 · 逐段运行 · 实时查看波形 验证流程 import → 打印版本号 → 运行简单示例 → 确认无报错

3.6 快速测试:画个正弦波

环境搭好了,咱们跑个简单的例子试试手。在Jupyter里新建一个单元格,输入:

import numpy as np
import matplotlib.pyplot as plt

# 生成时间轴
t = np.linspace(0, 1, 1000)
# 生成正弦波(模拟蝙蝠叫声的简化版)
f = 20000  # 20kHz,蝙蝠常用频率
y = np.sin(2 * np.pi * f * t)

# 画图
plt.figure(figsize=(10, 4))
plt.plot(t[:200], y[:200])  # 只画前200个点,看得清楚些
plt.title("20kHz 正弦波 - 环境测试")
plt.xlabel("时间 (秒)")
plt.ylabel("幅度")
plt.grid(True)
plt.show()

如果看到一条漂亮的正弦曲线,恭喜你——环境搭建成功!

避坑指南:如果图形显示不出来,检查一下Matplotlib的后端设置。在代码开头加一行:

import matplotlib
matplotlib.use('TkAgg')

我曾经在服务器上折腾了半天,最后发现是后端没配好。

3.7 本章小结

咱们今天干了三件事:

  1. 装了NumPy、SciPy、Matplotlib三个核心库
  2. 配好了Jupyter Notebook交互环境
  3. 跑通了第一个信号处理示例

工具齐了,后面就可以真刀真枪地干雷达信号处理了。记住:环境搭得好,调试少烦恼。我当年要是有人告诉我这些,能少走多少弯路啊。

一句话总结:NumPy装数据,SciPy做处理,Matplotlib看结果,Jupyter串起来。这套组合拳,够你用整个课程。


公众号:蓝海资料掘金营,微信deep3321