1. 课程导论与数字信号处理基础

1.1 去噪算法概述

各位同学,欢迎来到《去噪算法RTL设计从零开始》。我是你们的老朋友,一个在数字IC设计领域摸爬滚打了十几年的工程师。今天咱们正式开始第一讲。

先聊聊“去噪”这件事。说白了,就是信号在传输、采集、存储过程中,总会混进一些我们不想要的干扰。比如你打电话时的背景噪音,或者传感器采集到的电路热噪声。去噪算法的目标,就是把这些干扰尽可能滤掉,保留有用信号。

我刚开始做RTL设计时,接过一个雷达信号处理的项目。那会儿天真地以为,算法仿真通过了,硬件实现就水到渠成。结果呢?仿真里完美的滤波效果,一上FPGA就全乱套了。后来才发现,是量化噪声和有限字长效应在作祟。嗯,从那以后,我再也不敢小看数字信号处理的基础了。

核心观点: 去噪不是“一刀切”的滤波,而是要在保留信号特征和抑制噪声之间找到平衡点。RTL设计更是要把这种平衡用硬件语言精确表达出来。

1.2 数字信号处理基本概念

数字信号处理,英文叫DSP,咱们圈内人常说的“数字域”处理。它和模拟信号处理最大的区别是什么?你想想看,模拟信号是连续的,而数字信号是离散的——时间和幅度都离散了。

这里有几个关键概念,我建议你刻在脑子里:

  • 采样: 把连续时间信号变成离散时间信号。每隔一个固定时间间隔取一个样值。
  • 量化: 把连续幅度值变成有限个离散电平。比如用8位二进制数表示一个采样值,那就是256个电平。
  • 编码: 把量化后的电平值用二进制码表示出来。

这三个步骤,就是模数转换器(ADC)干的事。咱们做去噪RTL设计,处理的都是ADC送过来的数字信号。

个人经验: 我习惯在设计初期就把采样率和位宽定死。一旦开始写RTL,再改这些参数,那工作量可不是闹着玩的。尤其是位宽,牵一发而动全身。

1.3 采样定理

采样定理,也叫奈奎斯特采样定理。它的核心就一句话:采样频率必须大于等于信号最高频率的两倍。否则,就会发生混叠——高频信号伪装成低频信号混进来,你根本滤不掉。

为什么会这样?我简单解释一下。采样相当于在时域上对信号做“离散化”,在频域上就是周期延拓。如果采样率不够,延拓后的频谱就会重叠,混叠就发生了。

咱们做去噪设计时,采样定理是硬约束。比如你要处理一个最高频率为10kHz的音频信号,那采样率至少得20kHz。实际工程中,我通常会留出20%~30%的余量,比如取25kHz或更高。

采样率与信号频率关系 结果 工程建议
fs > 2 * fmax 无混叠,可完美重建 留余量,取fs ≥ 2.5 * fmax
fs = 2 * fmax 临界状态,理想情况 不推荐,实际有风险
fs < 2 * fmax 混叠,信号失真 必须避免,加抗混叠滤波器
避坑指南: 我曾经在一个项目中,为了节省资源,把采样率压到刚好两倍信号频率。结果FPGA跑起来后,高频噪声全混进了低频段,去噪算法越滤越乱。最后不得不重新改版,多花了两周时间。记住:采样率不是能省就省的参数。

1.4 量化噪声

量化噪声,是数字信号处理里绕不开的话题。ADC把连续幅度值映射到离散电平时,必然会产生误差。这个误差,就是量化噪声。

量化噪声的功率,和量化步长直接相关。量化步长越小,噪声越小。而量化步长,又取决于ADC的位宽。位宽每增加1位,量化信噪比(SQNR)大约提升6dB。

公式很简单:

SQNR ≈ 6.02 * N + 1.76 (dB)

其中 N 是ADC的位宽(有效位数)

举个例子:一个12位的ADC,理想SQNR大约是74dB。而8位的ADC,只有50dB左右。差了24dB,相当于信号幅度差了16倍。

咱们做去噪RTL设计时,量化噪声就是“底噪”。你设计的滤波器再牛,也不可能滤掉比量化噪声还小的信号。所以,位宽的选择,直接决定了去噪算法的性能上限。

关键认知: 量化噪声是加性噪声,和信号不相关。在RTL设计中,我们通常把它建模为白噪声。但要注意,当信号很小时,量化噪声会变得相对显著,甚至主导信噪比。

1.5 本章知识体系

为了让你更直观地理解本章的知识结构,我画了一张图。它把去噪算法、数字信号处理基础、采样定理和量化噪声之间的关系串起来了。

第1章 知识体系结构图 去噪算法RTL设计 数字信号处理基础 采样定理 量化噪声 采样 量化 编码 fs ≥ 2 * fmax 避免混叠 SQNR ≈ 6.02N + 1.76 位宽决定底噪 说明:三个基础模块共同支撑去噪算法的RTL实现 采样定理决定系统带宽,量化噪声决定性能上限,DSP基础决定实现方法

1.6 小结

这一章,咱们把去噪算法RTL设计的“地基”打了一遍。你记住三件事:

  1. 去噪的本质是在保留信号和抑制噪声之间做权衡。
  2. 采样定理是硬约束,采样率不够,一切白搭。
  3. 量化噪声是底噪,位宽决定了你能达到的信噪比上限。