第一章 信号系统基础:信号分类与系统特性
各位同学,咱们今天聊聊信号系统里最基础的东西。说实话,这部分内容看起来有点枯燥,但我在实际项目中吃过不少亏,才真正理解它的分量。你想想看,连信号是啥、系统有啥脾气都没摸清,后面设计通信网络肯定要栽跟头。
1.1 信号的分类
信号这东西,说白了就是信息的载体。我习惯先把它分成两大类:连续信号和离散信号。
1.1.1 连续信号与离散信号
连续信号,就是时间上不间断的信号。比如你说话时的声波,或者模拟电话线上的电压变化。我在做早期程控交换系统时,天天跟这些模拟信号打交道。连续信号用数学表达式 x(t) 表示,t 是连续的时间变量。
离散信号呢,只在某些离散时刻有定义。比如数字录音每隔 44.1kHz 采一个样,这就是离散信号。我建议你记住:离散信号通常用 x[n] 表示,n 是整数序号。
实战经验:有一次我在调试卫星通信链路时,发现接收端信号质量很差。排查了半天,原来是模数转换器的采样率设置不对,把连续信号当离散信号处理了。嗯,这种低级错误,犯过一次就再也不会忘了。
1.1.2 周期信号与非周期信号
这个分类更直观。周期信号就是每隔一段时间 T 重复自己,比如 x(t) = x(t + T)。我当年做电力线载波通信时,50Hz 的工频信号就是个典型的周期信号。
非周期信号则没有这种规律。比如一次突发噪声,或者你随便说的一句话。我记得有一次在项目验收时,甲方非要我们证明系统能处理非周期信号。我当时就用了一个简单的脉冲响应测试,把对方说服了。
| 信号类型 | 数学表示 | 实际例子 |
|---|---|---|
| 连续周期 | x(t) = x(t + T) | 正弦波、方波 |
| 连续非周期 | 无重复性 | 语音信号、噪声 |
| 离散周期 | x[n] = x[n + N] | 数字正弦序列 |
| 离散非周期 | 无重复性 | 随机采样数据 |
小技巧:判断一个信号是否周期,我习惯先看它的频谱。周期信号的频谱是离散的,非周期信号是连续的。这招在工程上特别实用。
1.2 系统特性
系统特性这块,我当年考试时背得滚瓜烂熟,但真正理解是在工作以后。咱们一个一个说。
1.2.1 线性
线性系统满足两个条件:齐次性和叠加性。说白了就是:输入放大 k 倍,输出也放大 k 倍;两个输入叠加,输出也叠加。
我曾经在做一个多路复用器项目时,发现系统输出总是不对。检查了半天,原来是某个放大器进入了非线性区。嗯,线性系统在现实中其实很少见,但我们经常用线性模型去近似。
// 线性系统验证示例
// 输入 x1 得到 y1,输入 x2 得到 y2
// 如果输入 a*x1 + b*x2,输出应该是 a*y1 + b*y2
function isLinearSystem(T, x1, x2, a, b) {
let y1 = T(x1);
let y2 = T(x2);
let y_combined = T(a * x1 + b * x2);
let expected = a * y1 + b * y2;
return Math.abs(y_combined - expected) < 1e-10;
}
1.2.2 时不变性
时不变性,就是系统的特性不随时间变化。你今天输入一个信号得到某个输出,明天输入同样的信号,输出应该完全一样。
我个人习惯用这个特性来检验系统是否稳定可靠。有一次在基站设计中,我发现某个滤波器在不同时间段的响应不一样。查到最后,是温度变化导致电容值漂移了。这就是典型的时变系统,在工程中要特别小心。
避坑指南:我曾经在 5G 基站的数字预失真模块中,忽略了功放的时变特性。结果在高温环境下,系统性能急剧下降。从那以后,我设计系统时一定会留出时变性的余量。
1.2.3 因果性
因果性,就是系统的输出只取决于当前和过去的输入,不依赖未来的输入。这听起来像废话,对吧?但在数字信号处理中,还真有非因果系统。
比如一个理想低通滤波器,它的冲激响应在 t < 0 时非零,这就是非因果的。实际中我们只能近似实现。我建议你在设计实时系统时,一定要检查因果性,否则系统根本无法物理实现。
1.2.4 稳定性
稳定性,说白了就是输入有界时,输出也有界。这个特性在通信系统中至关重要。你想想看,如果输入信号稍微大一点,系统就崩溃了,那还怎么用?
我记得在做一个卫星地面站项目时,接收机前端放大器在强信号下自激了。这就是不稳定的典型表现。后来我们加了自动增益控制,才解决了问题。
核心要点:判断系统稳定性,我常用两个方法:一是看冲激响应是否绝对可积(连续系统)或绝对可和(离散系统);二是看系统函数的极点是否都在左半平面(连续)或单位圆内(离散)。
1.3 各特性的工程意义
说了这么多理论,咱们聊聊实际中怎么用。我个人觉得,这些特性就是系统的「身份证」。设计一个通信系统时,我会先问自己几个问题:
- 这个系统是线性的吗?如果不是,非线性失真怎么补偿?
- 时不变吗?如果器件会老化,系统性能怎么保证?
- 因果吗?实时处理时有没有用到未来数据?
- 稳定吗?最坏情况下会不会自激或发散?
你想想看,如果这些问题都答不上来,那这个系统设计就是盲人摸象。我在带团队时,要求每个新项目必须先做系统特性分析,这是基本功。
个人经验:实际系统中,完全线性的系统几乎不存在。但我们可以用负反馈来近似线性化。同样,完全时不变的系统也很难,但我们可以通过温度补偿、老化校准来逼近。工程嘛,就是在理想和现实之间找平衡。
好了,这一章的内容就到这里。信号分类和系统特性是后续所有内容的基础。我建议你多找几个实际信号和系统练练手,比如手机里的音频信号、WiFi 的射频信号,试着分析它们的类型和系统特性。下一章咱们聊傅里叶变换,那才是真正好戏开始的地方。