第1章:开发环境搭建——Anaconda与Python环境配置、MATLAB安装要点、Simulink工具箱选择、虚拟环境管理与依赖隔离

各位同学好,我是老张。做信号处理这行快十五年了,从早期的DSP汇编一路干到现在的Python+MATLAB混合仿真。今天咱们聊聊开发环境搭建这件事。

说实话,很多新手甚至工作两三年的工程师,都容易在环境配置上栽跟头。我见过太多人花三天装环境,写代码只花两小时。嗯,这其实挺亏的。所以第一章,咱们就把地基打牢。

1.1 Anaconda与Python环境配置

Python现在在信号处理领域越来越火。为什么?因为生态好。NumPy做矩阵运算,SciPy做滤波器设计,Matplotlib画频谱图,一条龙搞定。

我个人习惯用Anaconda来管理Python。它自带了很多科学计算包,省得你一个一个pip install。你想想看,要是每个包都手动装,版本冲突能让你怀疑人生。

安装要点:

  • 去官网下载Anaconda,选Python 3.9以上版本(别用2.7了,早该淘汰了)
  • 安装时勾选「Add Anaconda to my PATH environment variable」
  • 安装路径不要有中文和空格,我习惯放 D:\Anaconda3

装完之后,打开命令行验证一下:

python --version
conda --version

看到版本号就说明装好了。我在项目中遇到过有人装完Anaconda,结果系统里还有另一个Python,两个打架。所以建议把系统自带的Python先卸掉,或者用conda管理好环境变量。

1.2 MATLAB安装要点

MATLAB在信号处理领域依然是老大哥。尤其是做滤波器设计、频谱分析、时频分析这些,工具箱太全了。

安装MATLAB时,有几点我得提醒你:

避坑指南:

  • 我曾经装MATLAB R2020a,选了全部工具箱,结果硬盘直接爆了。所以别贪心,按需安装。
  • 安装路径同样不要有中文,否则Simulink跑模型时会报奇奇怪怪的错
  • 建议装最新版,但别追太新。R2022b之后对旧版Simulink模型兼容性有点问题

我个人习惯装MATLAB时只选这几个核心工具箱:

工具箱名称 用途 是否必装
Signal Processing Toolbox 滤波器设计、频谱分析 必装
DSP System Toolbox 数字信号处理算法 推荐
Simulink 系统级仿真 必装
Wavelet Toolbox 小波分析 按需
Communications Toolbox 通信系统仿真 按需

装完之后,记得在MATLAB里运行 ver 命令,看看工具箱是否都加载成功。我遇到过工具箱装上了但license没激活的情况,跑 fdatool 直接报错,折腾了半天才发现是授权问题。

1.3 Simulink工具箱选择

Simulink做信号系统仿真,说白了就是搭积木。但积木太多,你得知道哪些是常用的。

做信号处理仿真,我建议至少装这几个:

  • Simulink:核心平台,不装没法玩
  • DSP System Toolbox:数字滤波器、FFT、频谱分析仪都在这里
  • Signal Processing Toolbox:和DSP System Toolbox配合使用
  • Simulink Control Design:如果你要做闭环系统,这个很有用

小技巧: 我个人习惯在Simulink里用「Library Browser」搜索模块。比如搜「Digital Filter」就能找到数字滤波器模块。别一个个翻目录,太慢了。

为什么强调工具箱选择?因为装多了拖慢启动速度,装少了又不够用。我一般先装核心的,后面缺什么再补装。MATLAB支持增量安装,不用重装整个软件。

1.4 虚拟环境管理与依赖隔离

这个点我特别想多说两句。很多项目做到一半,发现依赖冲突,那叫一个头疼。

举个例子:项目A需要numpy 1.19,项目B需要numpy 1.24。你要是装在一个环境里,总有一个项目跑不起来。怎么办?用虚拟环境隔离。

Python这边,我推荐用conda创建虚拟环境:

# 创建环境
conda create -n signal_proc python=3.9

# 激活环境
conda activate signal_proc

# 安装包
conda install numpy scipy matplotlib

# 退出环境
conda deactivate

每个项目一个环境,互不干扰。我曾经接手一个老项目,里面用了scipy 0.19,而我已经装了1.8。要是没有虚拟环境,光解决依赖冲突就得花一天。

MATLAB这边呢?它没有原生的虚拟环境管理。但你可以用不同版本的MATLAB来实现隔离。比如R2020a做旧项目,R2023b做新项目。或者用MATLAB的「Project」功能来管理依赖。

注意: MATLAB的Toolbox版本和MATLAB版本是绑定的。你不能在R2020a里装R2023b的工具箱。所以升级MATLAB版本时,工具箱也得跟着升。

还有个实用技巧:用 conda list --export 导出环境依赖列表,方便别人复现你的环境:

conda list --export > requirements.txt
conda create -n new_env --file requirements.txt

这样你发给同事的代码,他直接一条命令就能把环境搭好,省心省力。

小结

好了,第一章就聊这么多。环境搭建看着琐碎,但真出了问题,排查起来特别费时间。我建议你花半天时间,把Anaconda和MATLAB装好,虚拟环境配好,后面写代码就顺畅了。

下一章咱们聊聊信号处理的基础——采样定理和离散时间信号。到时候我会用Python和MATLAB分别演示,看看两种工具各自的优势在哪里。

有什么问题,欢迎在课程群里交流。我是老张,咱们下章见。

本章要点回顾:

  • Anaconda安装时勾选PATH,路径不要有中文
  • MATLAB按需安装工具箱,别贪多
  • Simulink核心工具箱:DSP System + Signal Processing
  • 用conda创建虚拟环境,每个项目隔离依赖
  • 导出requirements.txt方便环境复现

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