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