奈奎斯特说两倍多采样就可以还原信号,为什么采出来是锯齿波?
奈奎斯特采样定理(奈奎斯特-香农定理)明确:若连续信号x(t)的最高频率(带宽)为Fc,且采样率Fs>2Fc,则信号可通过采样值无失真地重建原信号。对此,不管是真明白还是假明白,我们都深信不已。
但看着ADC采集的那一串数字信号,你有没有觉得它们不是原信号“亲生的”?比如,模拟世界中的原信号是漂亮又平滑的波形,采集出来的为什么是“张牙舞爪”的锯齿波,有没有种魔童转世的感觉?
图1 原始信号VS离散采样信号
若“温太医”拍着胸脯告诉您,这个数字信号就是原信号“亲生的”,那我们应该怎样来“脑补”这个数字信号?怎样科学地在我们脑中重建这个信号呢?
其实,锯齿波(连折线)我们直观而想当然的重建方法,奈奎斯特采样定理对应的信号重建方法是 sinc函数插值(理想低通滤波重建)——这是数学上唯一能实现“无失真还原”的方法,也是所有工程化重建方案的理论基础。
要理解重建方法,需先明确采样与重建的对应关系:
01
采样过程
本质是用“冲激串”对连续信号x(t)进行调制,得到离散采样值x(nTs) ( Ts=1/Fs为采样周期)。在频域上,采样会使原信号频谱以Fs为周期重复(形成“镜像频谱”),这一点我们在《奈奎斯特采样定理和带通采样定理是一回事吗?》中说了不少;
02
重建核心
需从离散采样值中“还原”原始连续频谱,关键是滤除所有镜像频谱,只保留基波频段(-Fc~Fc)——而能完美实现这一目标的,正是“理想低通滤波器”,其脉冲响应恰好是sinc函数,这一点,我们在《奇妙的sinc,从博通公司商标到雷达脉冲分析》中说了不少。

图 2 Sinc函数的波形
2.1 重建公式(采样定理的逆应用)
根据奈奎斯特-香农定理的逆定理,连续信号x(t)可由其采样值x(nTs)唯一重建,公式为:

其中:

这就是理想sinc插值公式。
2.2 为什么是sinc函数?——时域+频域的双重适配
sinc函数的独特气质,使其成为“无失真重建”的唯一选择,可从两个维度理解:
(1)时域视角:采样点“锚定”,中间点“平滑补全”
对于原有采样点(t = nTs) :

而其他采样点对应的:

因此公式简化为:

即:原始采样点完全保留,不产生失真;
对于中间点(t≠Ts):每个点由周围所有采样点通过sinc函数“加权求和”得到——sinc函数的权重随时间距离衰减(符合信号的时域相关性),就像用无数个“钟形曲线”(sinc波形)以采样点为中心叠加,最终形成平滑连续的原始信号,补全的波形无锯齿、无畸变。
(2)频域视角:理想低通,精准滤除镜像
sinc函数的傅里叶变换是矩形窗(理想低通滤波器的频率响应):

这意味着:
理想低通滤波器的截止频率 Fc=Fs/2(恰好是奈奎斯特频率),能完美保留-Fc~Fc内的原始信号频谱;
采样产生的镜像频谱(±Fs±Fc,±2Fs±Fc,…)均在截止频率之外,被完全抑制——从频域上实现了“频谱净化”,确保重建信号与原始信号频谱一致。

图3 Sinc函数时频关系对应示例
2.3 直观示例:正弦信号的sinc插值重建
一、matlab示例:
对一个2Hz正弦波,用5Hz采样,对比采样后的波形与原始波形,然后再用sinc函数插值,重建波形,再对比插值后的波形与原始波形:

图4 用sinc函数插值重建波形实例
通过上图我们看到,虽然离散采样点的折线图看起来非常“难看”,我们很难直观地认为它完全代表了原始连续信号。
但通过对离散采样点进行sinc插值后,我们可以看到:插值结果神奇地“拟合”出了原始信号的样子,抛开两端因卷积数据中断带来的较大误差,中间段插值的误差降到了极低的水平。
验证源代码如下:
% SINC卷积插值示例
clear; clc; close all;
% 1. 生成原始连续信号参数
f0 = 2; % 信号频率(Hz)
fs = 5; % 采样频率(Hz),满足fs > 2*f0
T = 5; % 信号时长(s)
t_continuous = 0:0.001:T; % 高密度时间轴,用于绘制"真实"连续信号
% 2. 生成原始连续信号和离散采样信号
x_continuous = sin(2*pi*f0*t_continuous); % 原始连续信号
% 离散采样
t_sampled = 0:1/fs:T; % 采样时间点
x_sampled = sin(2*pi*f0*t_sampled); % 离散采样值
% 3. SINC卷积插值
% 定义插值时间点(比原始采样点更密集)
interp_factor = 10; % 插值密度因子
t_interp = 0:1/(fs*interp_factor):T; % 插值时间点
x_interp = zeros(size(t_interp)); % 初始化插值结果
% 对每个插值点计算SINC加权和[4](@ref)
for i = 1:length(t_interp)
t_current = t_interp(i);
% 计算当前时间点与所有采样点的SINC权值
% 注意:MATLAB中的sinc函数定义为sinc(x) = sin(πx)/(πx)
sinc_weights = sinc((t_current - t_sampled) * fs);
% 计算插值点数值(离散采样值与对应SINC权值的点积)
x_interp(i) = sum(x_sampled .* sinc_weights);
end
% 4. 结果可视化
figure('Position', [100, 100, 1200, 800]);
% 绘制原始连续信号
subplot(3,1,1);
plot(t_continuous, x_continuous, 'b-', 'LineWidth', 2);
hold on;
plot(t_sampled, x_sampled, 'r-', 'LineWidth', 2);
title('原始连续信号与离散采样点');
xlabel('时间 (s)'); ylabel('幅度');
legend('原始连续信号', '离散采样点', 'Location', 'northeast');
grid on;
% 绘制插值结果与原始信号对比
subplot(3,1,2);
plot(t_continuous, x_continuous, 'b-', 'LineWidth', 1.5);
hold on;
plot(t_interp, x_interp, 'ro-', 'MarkerSize', 3, 'LineWidth', 1);
stem(t_sampled, x_sampled, 'k', 'filled', 'MarkerSize', 5);
title('SINC插值结果对比');
xlabel('时间 (s)'); ylabel('幅度');
legend('原始连续信号', 'SINC插值结果', '离散采样点', 'Location', 'northeast');
grid on;
% 绘制插值误差
subplot(3,1,3);
% 在插值时间点处的原始连续信号值
x_continuous_at_interp = sin(2*pi*f0*t_interp);
error = x_interp - x_continuous_at_interp;
plot(t_interp, error, 'g-', 'LineWidth', 1.5);
title('插值误差 (插值结果 - 原始连续信号)');
xlabel('时间 (s)'); ylabel('误差');
grid on;
% 计算并显示均方根误差(RMSE)
rmse = sqrt(mean(error.^2));
fprintf('插值均方根误差(RMSE): %.6f\n', rmse);
☞上述代码框可上下滑动!
二、示波器应用
上述过程在哪儿可以直接应用呢?对,示波器!
作为时域测量的扛把子,泰克示波器产品线中,从入门级的TDS1000B 到高端的DPO70000系列,几乎所有数字示波器系列都支持Sinc插值功能。

图5 泰克示波器经济型示波器也支持Sinc插值
罗德与施瓦茨RTO6系列同时搭配线性插值、采样和保持这两种插值方式,用户可根据测量的信号类型灵活选择合适模式,适配不同场景下的波形还原需求。

图6 R&S RTO6支持包括Sinc在内的多种插值方式
理想sinc插值在数学上完美,但无法直接工程实现,核心问题有两个:
无限长特性:公式n取±∞,意味着重建一个点需要用到所有采样点(包括未来的采样点),这在物理上是“非因果”的(无法预测未来信号);
收敛速度慢:sinc函数的尾部衰减速度为1/x,截断后会产生“吉布斯现象”(频谱旁瓣泄漏),导致重建信号出现微小失真。
工程中所有无失真重建方案,本质都是理想sinc插值的近似,核心思路是“有限长截断+窗函数优化”,最常用的是有限长sinc-FIR滤波器,步骤如下:
截断sinc函数:将无限长sinc函数截断为N个抽头(N为奇数,围绕n=0对称,如N=64、128),仅用附近N个采样点参与插值(因果性实现);
窗函数加权:用汉明窗、汉宁窗或布莱克曼窗对截断后的sinc函数加权,抑制吉布斯现象(旁瓣泄漏),提升镜像抑制比;
FIR滤波器实现:将加权后的有限长sinc序列作为FIR滤波器的脉冲响应,离散采样值通过该滤波器后,直接输出连续(或高采样率离散)的重建信号——这就是DAC、DUC中常用的“插值滤波一体”方案。
奈奎斯特采样定理的“无失真重建”,其数学本质是sinc函数插值(理想低通滤波)——通过sinc函数的时域加权补全和平滑特性,以及频域的理想低通滤波特性,完美还原原始连续信号。
工程实践中,由于理想sinc函数无法实现,采用有限长sinc-FIR滤波器进行近似,本质是用“可实现的硬件结构”逼近“理想重建效果”。无论是DAC的信号重建、DUC的插值滤波,还是软件无线电(SDR)的信号恢复,其核心原理都源于此。
简言之:奈奎斯特定理的“无失真”,是由sinc插值保证的;工程中的“高保真”,是sinc插值的工程化落地结果。下次再看见那个“张牙舞爪”的锯齿波,不要怀疑是不是亲生的啦,脑补一个sinc函数插值吧。

关于祯仪
祯仪科技,专业从事宽频段无线电信号接收,适用于无线电管理、信号侦查与分析、通用频谱分析、卫星导航监测、低空复杂电磁环境感知等。
Recommend
-
-
QQ Zone
-
Sina Weibo
-
Renren.com
-
Douban
