1. 信号系统概述:信号的定义与分类、系统的定义与分类、信号与系统在工程中的应用场景
大家好,我是老张。干信号系统这行快十五年了,今天咱们来聊聊第一章——信号与系统的基本概念。说实话,很多刚入行的工程师觉得这章太基础,翻翻就过去了。但我得提醒你,基础不牢,后面做滤波器设计、采样率选择时,你准得回来翻书。
1.1 信号的定义与分类
信号是什么?说白了,信号就是信息的载体。你说话的声音、手机屏幕上的图像、雷达回波,这些都是信号。我习惯把信号理解成「一个随时间或空间变化的物理量」。
信号怎么分类?咱们从三个维度来看:
1.1.1 按时间特性分
- 连续时间信号:时间轴上每个点都有定义。比如模拟麦克风输出的电压波形。
- 离散时间信号:只在离散的时间点上取值。比如ADC采样后的数字序列。
嗯,这里要注意:连续信号不一定就是模拟信号,离散信号也不一定就是数字信号。我见过不少新人把这两个概念搞混。
1.1.2 按取值特性分
- 模拟信号:幅值连续变化。比如温度传感器的输出。
- 数字信号:幅值量化成有限个等级。比如你手机里的音频文件。
重要概念:一个信号可以是「连续时间 + 模拟」的,也可以是「离散时间 + 数字」的。交叉组合共有四种情况,做系统设计时一定要先搞清楚你面对的是哪种。
1.1.3 按确定性分
- 确定性信号:可以用数学表达式精确描述。比如正弦波、方波。
- 随机信号:无法精确预测,只能用统计特性描述。比如噪声、语音信号。
我在项目中遇到过一件事:有个同事设计滤波器时,拿确定性信号的思路去处理随机噪声,结果滤波效果一塌糊涂。后来我帮他改成基于功率谱密度的设计方法,问题才解决。所以,分清信号类型是第一步。
1.2 系统的定义与分类
系统是什么?系统就是处理信号的「黑盒子」。你给它一个输入信号,它给你一个输出信号。我经常跟团队说:系统就是输入到输出的映射关系。
1.2.1 系统的分类
| 分类维度 | 类型 | 特点 | 工程例子 |
|---|---|---|---|
| 线性/非线性 | 线性系统 | 满足叠加性和齐次性 | RC低通滤波器 |
| 非线性系统 | 不满足叠加性 | 二极管检波器 | |
| 时变/时不变 | 时不变系统 | 参数不随时间变化 | 固定系数的数字滤波器 |
| 时变系统 | 参数随时间变化 | 自适应均衡器 | |
| 因果/非因果 | 因果系统 | 输出只依赖当前和过去输入 | 实时信号处理系统 |
| 非因果系统 | 输出依赖未来输入 | 离线数据平滑 |
你想想看,为什么我们总强调LTI(线性时不变)系统?因为LTI系统可以用卷积、傅里叶变换这些漂亮工具来分析。我刚开始做硬件选型时,总想用非线性器件来省成本,结果分析起来特别痛苦。后来我学乖了:能用线性系统解决的问题,绝不引入非线性。
1.3 信号与系统在工程中的应用场景
讲到这里,你可能觉得有点抽象。咱们来点实际的。
1.3.1 通信系统
手机通信就是信号与系统的典型应用。发射端:语音信号→编码→调制→放大→天线发射。接收端:天线接收→滤波→解调→解码→语音输出。每一步都涉及信号处理。
选型提示:做通信系统硬件选型时,我建议先确定信号带宽和动态范围。这两个参数决定了ADC、放大器、滤波器的大致规格。我曾经因为没算清楚动态范围,选了个12位的ADC,结果信号被量化噪声淹没了,后来换成16位的才搞定。
1.3.2 控制系统
工业机器人、无人机飞控、汽车ESP系统,这些都是控制系统。传感器采集信号(位置、速度、角度),控制器处理信号(PID算法、状态观测器),执行器输出控制量。
我记得有个项目是做电机伺服控制。一开始我直接用连续域设计,然后离散化,结果系统总是不稳定。后来我意识到:采样率、量化精度、延迟这些离散系统特有的问题,必须在设计初期就考虑进去。
1.3.3 生物医学工程
心电图(ECG)、脑电图(EEG)、医学影像,这些都是信号处理的应用。生物信号的特点是:幅度小、噪声大、非平稳。
避坑指南:我曾经在处理ECG信号时,直接用50Hz陷波器去工频干扰,结果把QRS波群的某些频率分量也滤掉了。后来我改用自适应滤波,效果才好。所以,处理生物医学信号时,一定要先了解信号的频谱分布,再设计滤波器。
1.3.4 音频与语音处理
降噪耳机、语音助手、音乐播放器,这些产品都离不开信号处理。核心操作包括:采样、量化、滤波、压缩、特征提取。
举个简单的例子:语音信号的采样率通常是8kHz(电话)或16kHz(宽带),而音乐CD是44.1kHz。为什么?因为语音的有效带宽是300Hz~3.4kHz,而音乐需要覆盖20Hz~20kHz。采样定理告诉我们:采样率至少是信号最高频率的两倍。
// 一个简单的数字低通滤波器实现(C语言)
// 截止频率:1kHz,采样率:10kHz
float lowpass_filter(float input, float *prev_output) {
float alpha = 0.2; // 滤波器系数
float output = alpha * input + (1 - alpha) * (*prev_output);
*prev_output = output;
return output;
}
这段代码看着简单,但实际工程中要注意:定点数实现时,alpha的量化精度会影响滤波效果。我建议用Q15格式做定点化,能兼顾精度和计算速度。
1.4 小结
这一章我们聊了信号的定义与分类、系统的定义与分类,以及几个典型的应用场景。说白了,信号与系统就是工程世界的「语法」和「逻辑」。你掌握了它,后面学滤波器设计、FFT、数字信号处理,都会轻松很多。
下一章我们讲傅里叶分析——信号处理最核心的工具。到时候我会分享一些我在项目中用FFT踩过的坑,敬请期待。
核心要点回顾:
- 信号是信息的载体,按时间/取值/确定性三个维度分类
- 系统是输入到输出的映射,LTI系统是分析基础
- 工程应用前,先搞清楚信号类型和系统特性
- 采样定理是数字信号处理的基石,永远不要违反
公众号:蓝海资料掘金营,微信deep3321