抽样定理实验全解析:时域频域对偶、混叠现象与采样率设计 📅 发布时间:2026/9/17 17:43:50 👁 浏览次数: 简介华南理工大学信号与系统实验报告四面向修读信号与系统课程的本科学子也可供其他高校相关课程作为实验参考。报告以MATLAB为实验平台完整呈现时域抽样定理与频域抽样定理的核心验证过程采用50Hz抽样频率对不同频率正弦信号取样直观比较抽样率不足时产生的波形失真并给出提高抽样频率至400Hz和1000Hz的改进措施随后通过幅度调制信号、4cos(4πt)信号重建以及序列x[k]{1,3,2,-5}的频域抽样分析低通滤波恢复效果、频谱混叠现象与抽样点数N对时域恢复精度的影响帮助深入理解奈奎斯特准则和抗混叠方法。压缩包内含1个doc文档约276KB除实验目的、操作步骤、MATLAB代码和波形结果外还整理了多道思考题涵盖语音信号抽样频率选取、误差克服、带通信号欠抽样原理、内插函数特性等便于对照复习和撰写报告。已有727人学习下载适合需要深入理解采样与重建原理、完成实验作业或备考信号与系统的学生使用。1. 时域抽样与频域抽样这个实验到底在验证什么信号与系统里最容易被公式“骗过去”的知识点就是抽样定理。这个实验没有用复杂的语音或图像而是用三个频率翻倍的正弦波和一个长度只有四点的序列把时域抽样和频域抽样两个定理放到了同一张示波器上以 50Hz 采样率去采 10Hz、50Hz、100Hz 三个信号结果只有 10Hz 能被正确表达50Hz 恰好踩在临界点100Hz 则直接混叠成另一个低频信号。更值得琢磨的是第四步对序列{1,3,2,-5}的频谱做不同点数采样N 从 2 变到 5时域恢复结果呈现出完全可预测的周期延拓规律。整份实验其实在验证一对对偶现象时域抽样造成频谱周期化频域抽样造成时域周期化。适合正在啃信号与系统考研真题的人也适合做数据采集、语音处理入门的工程师——采样率边界和混叠长相这些代码能让你看得一清二楚。2. 时域抽样定理为什么 50Hz 采样挡不住 50Hz 的信号2.1 三个信号同一个采样率谁失真了实验第一步的物理场景很直接抽样频率fs 50Hz对应抽样间隔T 1/fs 0.02s观察区间取tp 0.1s。三个待抽样信号分别是 10Hz、50Hz、100Hz 的余弦波用同一个stem画抽样序列再用很细的时间网格把原信号曲线叠在一张图上抽样点是否落在原信号的节律上肉眼一扫就知道。原实验代码是这样的T 0.02; % 抽样间隔对应 fs50Hz tp 0.1; % 观察时长 t 0:T:tp; % 抽样时刻序列 t1 0:0.0001:0.1; % 画连续包络用的细网格 subplot(3,1,1); stem(t, cos(2*pi*10*t)); % 10Hz 信号的抽样序列 hold on; plot(t1, cos(2*pi*10*t1)); % 原信号连续曲线 hold off; subplot(3,1,2); stem(t, cos(2*pi*50*t)); % 50Hz 信号每周期只采一个点 hold on; plot(t1, cos(2*pi*50*t1)); hold off; subplot(3,1,3); stem(t, cos(2*pi*100*t)); % 100Hz 信号欠采样 hold on; plot(t1, cos(2*pi*100*t1)); hold off;代码逻辑上stem画离散样本plot画原始连续信号subplot把三段波形纵向排布。参数上t 0:T:tp决定了抽样点数0.1s 内 50Hz 采样只会产生 5 个样本点。对 10Hz 信号采样率远大于 2 倍信号频率5 个点虽然粗糙但大致能看出原信号的起伏对 50Hz 信号每个周期恰好采到一个相同相位点抽样序列变成常数波形信息完全丢失对 100Hz 信号采样点反而像在描一个低频余弦这就是教材里说的“混叠”。原实验报告写“采样频率小于等于信号频率”这个表述要修正采样定理的边界是fs 2fm50Hz 信号是临界状态100Hz 信号才是真正不满足条件。考试和面试时如果把这个边界说错基本会暴露概念不清。改进措施也很明确后两个信号要实现无失真恢复采样率必须分别大于 100Hz 和 200Hz实验后续给出的 400Hz 与 1000Hz 正是留出了工程余量的取值。2.2 调幅信号的频谱分析与采样率设计第二步引入一个幅度调制信号x(t) cos(2πt)·cos(200πt)。这类信号在通信系统里随处可见分析它的第一步是展开频谱用积化和差公式cos(A)cos(B) 1/2[cos(A-B) cos(AB)]代入A 2πt、B 200πt得到fs 800; % 抽样率 800Hz t0 0:0.001:0.1; % 连续曲线的时间网格步长 1ms t 0:1/fs:0.1; % 抽样时刻步长 1.25ms x_cont cos(2*pi*t0).*cos(200*pi*t0); x_sample cos(2*pi*t).*cos(200*pi*t); plot(t0, x_cont); % 原调幅信号 hold on; stem(t, x_sample, r, MarkerSize, 4); % 抽样序列 hold off;频谱展开后只有两个分量99Hz 和 101Hz信号最高频率fm 101Hz奈奎斯特频率是 202Hz。实验取fs 800Hz大约 4 倍于奈奎斯特率。这样抽样点足够密50Hz 以上的边带在周期延拓时不会和镜像频谱重叠。参数上要注意t0和t的步长不能搞混t0是画连续波形用的步长要远小于信号周期1ms 对应 0.1ms? 不对这里步长 1ms信号周期 1s 和 1/100s1ms 能大致画出高频分量t是真正的抽样时刻步长由1/fs决定。2.3 抽样率选择的工程冗余从上面两个小实验能提炼出一个工程结论奈奎斯特频率只是理论下限实际系统里几乎没有理想低通滤波器抗混叠滤波器在截止频率附近有过渡带所以抽样频率必须往上抬。做 DSP 时我一般这样定先找出信号最高频率fm理论下限取2fm然后根据滤波器过渡带留 1.22 倍余量如果后续还要做包络检测或频谱分析直接取(3~5)fm也是常见操作。实验里把 100Hz 信号的采样率定到 1000Hz就是为了让恢复出来的波形在肉眼层面无失真这个思路和语音信号处理中把 3400Hz 语音按 8kHz 采样的做法完全一致。3. 信号重建sinc 内插与混叠的边界3.1 从抽样序列到连续信号的数学桥第三步的关键不是“抽样”而是“重建”。抽样定理保证只要fs 2fm原带限信号就可以通过理想低通滤波从样本中恢复。理想内插的数学形式是每个样本乘一个归一化的 sinc 函数再叠加fm 10; % 抽样率 10Hz Ts 1/fm; % 抽样间隔 0.1s t0 0:0.001:1; % 原信号时间网格 t 0:Ts:1; % 抽样时刻 x cos(4*pi*t); % 抽样序列原始信号 2Hz tr 0:0.01:1; % 重建信号时间轴 xr zeros(size(tr)); % 存放重建结果 for k 1:length(x) xr xr x(k)*sinc((tr - (k-1)*Ts)/Ts); % 叠加内插核 end plot(t0, cos(4*pi*t0), b); hold on; stem(t, x, r); plot(tr, xr, g, LineWidth, 1.2); hold off; legend(原信号,抽样序列,重建信号);这段代码把每个样本点当成一个权值sinc((tr - k*Ts)/Ts)是中心在k*Ts、零点和整数倍抽样间隔对齐的内插核。sinc是 MATLAB 内置函数定义是sin(πx)/(πx)注意它和理论公式里的sinc(x)sin(x)/x差一个 π 因子写代码时直接用内置版本最省事。参数上fm10对应Ts0.1s重建时间轴步长取0.01s也就是每个抽样间隔里插 10 个点。for循环逐样本叠加比直接调用conv更直观也不会混淆卷积长度。原实验里写的是h sin(pi*t1*0.1)/(0.1*pi*t1); y conv(x,h);这个写法有两个明显的坑第一t10时分子分母都是 0MATLAB 会产生NaN画图时那个位置会断开第二conv的结果长度是length(x)length(h)-1多出来的一段需要手工对齐初学者很容易把重建波形画错。所以这里更推荐用sinc和循环叠加。提示如果看到重建波形在样本点附近有毛刺或空洞优先检查内插核在零点是否被赋值成NaN。把t10单独置 1或者改用内置sinc问题立刻消失。3.2 10Hz 抽样下的重建成功原信号是cos(4πt)频率 2Hz最高频率 2Hz奈奎斯特频率 4Hz。实验用 10Hz 采样满足fs 2fm所以重建波形应该和原信号高度一致。运行上面的代码后绿色重建线和蓝色原信号基本重合差异主要来自两个来源一是重建时间轴步长0.01s还不够细内插核的峰值位置有量化误差二是抽样序列只在0~1s内取了 11 个点两端会有 sinc 截断引起的边缘抖动非周期信号尤其明显。这个实验里原信号恰好是 2Hz 余弦观察区间取 1s正好是整数个周期。工程上我一般建议观察区间至少取 10 个以上周期这样两端截断的影响可以被平均掉。如果重建波形在两端出现明显摆动不要怀疑抽样定理而是检查观察窗口是不是太短。3.3 3Hz 抽样下的重建失败把上一节的抽样频率改成fm 3也就是Ts 1/3s其他代码不动。这时 2Hz 信号的奈奎斯特频率是 4Hz3Hz 低于这个值不满足抽样定理。运行结果里重建波形不再是一条 2Hz 余弦而是一条周期更长、幅度起伏更缓的低频曲线这就是频谱混叠的时域表现。混叠的本质是原信号 2Hz 分量在周期延拓时与fs - 2Hz 1Hz的镜像分量叠在一起。你做频谱分析时会在 1Hz 处看到一个本不该存在的分量。验证方法很简单对重建信号做 FFT看除了 ±2Hz 之外是否出现其他谱峰。如果抽样率只是略低于奈奎斯特频率混叠分量会压在原分量旁边如果低很多混叠频率可能远离原频率时域上就表现为完全不同的波形。这个特征在做语音降噪和振动信号采集时经常遇到采样率不够设备振动频率被“翻译”成另一个低频值数据解读就会完全跑偏。4. 频域抽样定理频域取点少时域就混叠4.1 频域抽样与 DFT 的隐含周期延拓第四步把视角从时域翻转到频域。给定有限长序列x[k] {1, 3, 2, -5}它的离散时间傅里叶变换DTFT是一个连续函数X(e^jω)。计算机没法处理连续谱只能在[0, 2π)上等间隔取 N 个点这 N 个点的集合就是 DFT而由 DFT 反变换恢复出的序列并不是原序列本身而是原序列以 N 为周期延拓后的主值区间xr[n] Σ_{m-∞}^{∞} x[n mN]这就是频域抽样定理频域离散化对应时域周期化严格和时域抽样导致的频谱周期化对偶。当 N 大于等于原序列长度时周期延拓的各周期互不重叠恢复结果是原序列后面补零当 N 小于原序列长度时相邻周期会重叠重叠部分直接相加产生时域混叠。4.2 N2,3,4,5 的恢复对比原实验直接对 DTFT 表达式取频域样本再用ifft恢复时域。复现代码如下x [1, 3, 2, -5]; Nlist [2, 3, 4, 5]; for N Nlist k 0:N-1; omegam 2*pi*k/N; % 频域抽样点 Xk 1 3*exp(-1j*omegam) ... 2*exp(-2j*omegam) ... - 5*exp(-3j*omegam); % 抽样出的频谱值 xr ifft(Xk); % 反变换恢复时域 fprintf(N%d: , N); fprintf(%.4f , real(xr)); fprintf(\n); end代码里omegam是 N 个均匀分布的频域点Xk是原序列 DTFT 在这些点上的取值ifft完成离散时间傅里叶反变换。注意 DTFT 表达式的指数项是负号和 DFT 正变换的定义一致real是因为理论上的实数序列在数值计算中可能带极小的虚部取实部是为了方便观察。运行结果如下N恢复序列 xr现象2[3, -2]原序列以 2 为周期延拓严重混叠3[-4, 3, 2]仍混叠x[0] 与 x[3] 叠加为 -44[1, 3, 2, -5]与原序列完全一致5[1, 3, 2, -5, 0]无混叠尾部补零N2 时恢复序列只有两个点因为相邻周期重叠3是x[0]x[2]12的结果-2是x[1]x[3]3-5的结果。N3 时xr[0]x[0]x[3]-4其余两个点未受污染。N4 和 N5 时延拓不再重叠区别仅在 N5 时多出一个零值点——如果按“序列长度是否等于 4”来比较N5 的尾部补零仍然保持了全部原始样本值工程上通常认为无混叠。提示ifft默认归一化为 1/N这正好匹配 IDFT 的数学定义。如果自己手动写 IDFT不要漏掉 1/N否则幅度会放大 N 倍。4.3 从实验结果看 DFT 点数选择这个实验揭示了 FFT 分析中一个常被忽视的规则DFT 点数 N 必须不小于时域有效长度否则恢复出来的时域序列就是混叠后的版本。反过来如果信号本身就无限长截断是不可避免的此时时域“伪混叠”来自窗函数泄漏和这里的周期延拓混叠是两回事。原实验思考题里提到“增加抽样序列 x[k] 的长度能否改善重建信号质量”答案是能增加频谱细节但不能提高重建精度——因为精度上限由抽样频率和信号带限决定DFT 点数只决定频域分辨率。实际做频谱分析时我习惯先保证时域采集点数足够再靠补零把频谱画平滑而不是靠大量补零去“无中生有”。5. 工程落地语音抽样率和内插函数的选择5.1 为什么语音系统都用 8kHz 而不是 6800Hz实验思考题里提到人声音频范围是 300~3400Hz按抽样定理最低要 6800Hz。但实际电话语音系统标准抽样率是 8kHz原因在抗混叠滤波器。理论边界要求滤波器在 3400Hz 处直接截断现实中的模拟滤波器做不到这么陡峭在 3400Hz 到 4000Hz 之间必须留出一条过渡带否则高于奈奎斯特频率的噪声和带外信号会折叠回有效频带。8kHz 采样率把过渡带设计在 3400~4000Hz是一个成本和性能的平衡点。这个思路直接对应实验里对 100Hz 信号取 1000Hz 采样率的做法。5.2 四种内插函数怎么选实验思考题最后问到了内插函数特性这里给出一个对比内插方式表达式或行为典型场景抽样内插sinc(t/Ts)带限信号理论重建精度最高阶梯内插样本值保持到下一个采样点DAC 零阶保持输出硬件实现简单线性内插相邻样本用直线连接工程快速平滑CPU 开销低升余弦内插升余弦核加窗频谱成形平滑音频过采样常用选型原则是恢复精度要求越高内插核的旁瓣越小、阶数越高。抽样内插虽然精确但 sinc 无限长实际必须截断截断会引入吉布斯效应阶梯内插是最粗的近似但在 FPGA 里只需要一个寄存器就能实现线性内插是“够用就好”的代表多数嵌入式波形恢复用它升余弦内插则牺牲了一点带宽换取时域波形的光滑程度适合示波器显示和音频重采样。5.3 重建质量验证和采样率留余量验证重建是否合格不要只盯着时域波形看相似度。把重建信号做 FFT如果最高信号频率之外出现了明显谱峰基本可以断定抽样率或滤波器有问题或是混叠从高频折返到了低频。还可以计算重建信号与原信号的均方误差公式是MSE mean((xr - x).^2)MSE 应该远小于信号功率。最后说一个落地技巧选定采样率时先用 MATLAB 把信号频谱看一眼确认最高频率分量到奈奎斯特频率之间至少有 10%~20% 的空白过渡带再定滤波器指标如果过渡带被顶满就把采样率往上调 1.2 倍这是比直接套fs 2fm更稳的工程做法。本文还有配套的精品资源点击获取