资讯详情

信号处理实验全流程:从时域到频域再到滤波器设计

📅 2026/10/23 16:27:31 | 华诺云谱 👁 阅读
信号处理实验全流程:从时域到频域再到滤波器设计
简介这份资源是南京邮电大学「信号分析与处理实验」课程的完整实验报告面向正在修读数字信号处理、信号与系统相关课程的高校学生以及需要借助 MATLAB 完成信号处理实验的初学者。报告系统记录了信号的产生和运算、连续时间信号的频域分析、信号的时域采样和重建、离散傅里叶变换与应用等核心实验并延伸至连续时间系统的频域与复频域分析、数字滤波器设计及信号处理综合应用覆盖从基本序列绘制到卷积运算、频谱分析的完整流程。资源包内含 1 个 docx 文档压缩后约 1.02MB文档中配有 MATLAB 程序示例、运行结果与图形分析便于对照理解时域和频域特性。目前已有 952 人学习下载适合作为实验预习、报告撰写参考与 DSP 入门练习的实操素材。1. 信号分析与处理实验一张从时域到频域再到滤波器的完整地图如果你正在学信号与系统、数字信号处理或者正在准备这门课的实验验收大概率会有一种感觉公式都认识一上 MATLAB 就不知道从哪下手。这份实验报告覆盖了八个实验模块从最基础的信号产生与运算一路走到连续时间频域分析、时域采样与重建、离散傅里叶变换、系统频域与复频域分析、数字滤波器设计最后落到综合应用。梳理下来会发现它其实是一条非常清晰的主线先学会“造信号”再学会“看信号”然后学会“采样与重建”接着掌握“DFT 这个工具”最后用“滤波器”把理论变成能用的系统。适合谁适合正在做信号处理实验、准备实验考试、或者想用 MATLAB 把课本公式跑通一遍的人。这张地图的价值在于它把零散的实验步骤串成了可复习的体系而不是八个孤立的代码片段。2. 信号产生与基本运算从单位阶跃到线性卷积的复习重点2.1 连续信号与离散序列的生成套路实验一的核心是“用 MATLAB 把数学表达式变成可画的波形”。梳理下来会发现所有序列生成都遵循同一个模式先定义自变量范围再定义参数最后用向量化运算生成序列值。比如单位阶跃序列 u[n] 和 u[n7] 的对比本质上是在复习“移位”这个运算——u[n7] 就是把 u[n] 向左移了 7 个点。代码里用zeros(1,10)和ones(1,20)拼接实际上是在手动构造分段序列这种写法在实验报告里很常见但复习时要理解它背后的含义序列在 n-10 到 n-1 取 0n0 到 n20 取 1。复指数序列 x[n]1.5e^{(0.2j3)n} 的实部和虚部分别绘制这个实验点最容易忽略的是复指数序列的实部是衰减振荡虚部也是衰减振荡但两者相位差 90 度。实指数序列 x[n]2(0.8)^n 则是在复习“指数衰减”的基本形态。正弦序列 x[n]2.5sin(0.16πn-π/2) 的基本周期计算是重点数字频率 ω0.16π周期 N2π/ω12.5但序列周期必须是整数所以基本周期是 25。这里最容易翻车的地方是很多人直接写 12.5忽略了离散序列周期必须为整数的约束。% 单位阶跃序列 u[n] 与 u[n7] 的对比生成 n -10:20; x [zeros(1,10) 1 ones(1,20)]; % u[n]n0 处跳变 M 7; xd [zeros(1,10M) 1 ones(1,20-M)]; % u[n7]左移7点 subplot(1,2,1); stem(n,x); xlabel(n); ylabel(u[n]); subplot(1,2,2); stem(n,xd); xlabel(n); ylabel(u[n7]);这段代码的关键参数是zeros(1,10)对应 n-10 到 n-1 的 10 个点ones(1,20)对应 n0 到 n20 的 21 个点。移位操作通过改变零填充的长度实现左移 7 点就是在前面多补 7 个零同时后面少 7 个一。复习时要能徒手写出这个拼接逻辑而不是背代码。2.2 序列运算与线性卷积的易错细节序列的加法和乘法看起来简单但实验里 x[n]{1,2,3,4} 和 y[n]{3,4,5,6} 的逐点乘用的是.*而不是*。这是 MATLAB 里最容易踩的坑矩阵乘法*和逐点乘法.*混用结果完全不对。偶部与奇部的分解是另一个重点偶部 xe[n]0.5(x[n]x[-n])奇部 xo[n]0.5(x[n]-x[-n])。实验里用fliplr(x)实现翻转但要注意fliplr只翻转数值顺序不改变时间轴索引所以当 n 的范围不是以 0 为中心时直接翻转会出错。正确的做法是先确认序列的时间轴关于原点对称或者手动构造 x[-n]。线性卷积 y[n]x[n]*h[n] 是实验一的压轴。x[n](-1)^n 长度 15h[n]cos(0.25πn) 长度 8卷积结果长度是 158-122。用conv(x,h)计算后时间轴要重新定义为 0:21。这里最容易漏掉的是卷积后的时间轴起点是两序列起点之和终点是两序列终点之和。如果 x 和 h 的起点不是 0时间轴计算会更复杂。复习时要记住公式y 的长度 N1N2-1y 的起点 n1_start n2_start。提示conv函数只返回数值向量不返回时间轴。画图前必须手动构造正确的时间轴否则波形位置会整体偏移。3. 连续时间信号频域分析傅里叶级数、吉布斯现象与语音频谱3.1 周期矩形脉冲的频谱变化规律实验二的核心是“从时域波形到频域谱线”。周期矩形脉冲信号的指数形式傅里叶级数双边幅度谱和相位谱的绘制重点在于理解频谱的离散性和谐波性。当 A1τ0.1sT0.5s 时谱线间隔是 1/T2Hz包络是 sinc 函数。修改 T 为 1s 和 2s 后梳理下来会发现两个规律第一T 增大谱线间隔变小频谱变得更密集第二T 增大各次谐波的幅度整体减小因为能量被分散到了更多谐波上。这个对比是考试和实验验收的高频考点很多人只记得“T 变大谱线变密”却忘了幅度也在变小。各次谐波叠加的实验N152550是在验证傅里叶级数的收敛性。N 较小时合成波形有较大的谐波失真边缘不够陡峭N 增大波形逐渐逼近矩形脉冲。但这里有一个反直觉的点即使 N 很大不连续点附近仍然存在过冲这就是吉布斯现象。实验里用程序求出过冲最大幅值为 1.0896约等于跳变幅度的 9%。这个数字要记住吉布斯现象中过冲量不随 N 增大而消失而是趋于一个常数大约是跳变幅度的 8.95%。% 计算周期矩形脉冲有限项傅里叶级数合成的过冲 function p2_4(N) t -2:10^(-4):2; A 1; tau 1; T 2; Omega_0 2*pi/T; c0 A*tau/T; f_N c0*ones(1,length(t)); for k 1:N f_N f_N 2*A*tau/T*sinc(k*Omega_0*tau/2/pi)*cos(k*Omega_0*t); end overshoot max(f_N); fprintf(The maximum overshoot is %.4f\n, overshoot); end这段代码的关键是sinc函数的参数写法sinc(k*Omega_0*tau/2/pi)对应的是抽样函数 sin(x)/x 的形式。循环累加各次谐波最后用max找过冲。复习时要能解释为什么过冲出现在不连续点附近以及为什么 N 增大时过冲位置越来越靠近跳变点。3.2 语音信号的频谱差异与男声转女声思路实验二还包含一个非常实用的部分录制男声和女声做 FFT 后比较频谱。男声的基音频率低波形振幅变化大幅度谱能量集中在低频女声基音频率高波形更细致幅度谱能量分布相对均匀。这个对比不仅是实验报告的内容也是理解“基音频率”和“共振峰”概念的入口。男声转女声的方法实验报告里列了五条基频调整、声道长度调整、谐波调整、声道转换模型、声音特征转换。梳理下来会发现最核心的是基频调整和声道长度调整其他方法都是在这两个基础上的扩展。复习时要能说出男声基频典型范围是 80-180Hz女声是 160-300Hz所以基频搬移是最直接的转换手段。注意语音频谱分析时FFT 点数要足够大否则频率分辨率不够基音频率的谱峰可能分不开。通常取 1024 或 2048 点。4. 时域采样与重建奈奎斯特间隔、混叠判断与误差分析4.1 采样定理的验证与混叠判断实验三的核心是“采样间隔 Ts 如何影响频谱”。升余弦脉冲信号的频谱大部分集中在 [0, τ/2π] 之间截止频率 Ωm2奈奎斯特间隔 Tsπ/2。当 Tsπ/2 时采样后频谱未发生混叠当 Ts2 时频谱发生了混叠。这个判断的逻辑是采样后频谱是原频谱以 2π/Ts 为周期进行延拓如果延拓后的频谱在相邻周期之间发生重叠就是混叠。复习时要能画出频谱延拓的示意图并解释为什么 Ts 越大延拓周期越小越容易混叠。这里最容易翻车的地方是很多人只记“Ts 小于奈奎斯特间隔就不混叠”但实际判断时要看信号的最高频率分量而不是只看信号的主瓣宽度。升余弦脉冲的频谱虽然大部分集中在 Ωm 以内但理论上无限延伸所以严格来说只要 Ts 有限总会有高频分量的混叠只是混叠程度不同。实验里判断“未发生混叠”是指主瓣没有重叠而不是绝对没有混叠。4.2 信号重建与误差来源信号重建的实验P3_2是用低通滤波器从采样信号中恢复原信号。当 Ts2低通滤波器截止频率 ΩcΩm 时重建误差大大增加。误差来源有两个第一采样间隔增大导致混叠高频分量折叠到低频无法通过低通滤波器滤除第二低通滤波器截止频率减小导致部分有效高频分量被滤除表现为重建信号失真。这两个因素叠加误差比 Tsπ/2 时大得多。% 采样与重建的核心参数设置 Ts 2; % 采样间隔大于奈奎斯特间隔 pi/2 Wc 2; % 低通滤波器截止频率等于信号截止频率 t 0:Ts:10; % 采样时间轴 x cos(t); % 示例信号 % 重建理想低通滤波在频域是截断在时域是 sinc 插值 % 实际实验中用滤波器函数实现误差通过与原信号对比计算复习时要能解释为什么 Ts 增大导致误差增大因为混叠分量落在了重建滤波器的通带内无法被滤除。为什么 Wc 减小也导致误差增大因为部分有效信号分量被滤除了。这两个原因要分开说不能混在一起。提示重建误差的计算通常用均方误差或最大绝对误差。实验报告里用的是波形对比复习时要能写出误差公式。5. 离散傅里叶变换与数字滤波器从 DFT 到系统频域分析5.1 DFT 的基本概念与 MATLAB 实现离散傅里叶变换DFT是连接时域和频域的桥梁。实验四的核心是理解 DFT 的定义X[k]Σx[n]e^{-j2πkn/N}以及如何用 MATLAB 的fft函数计算。梳理下来会发现DFT 的物理意义是把有限长序列的频谱在 [0,2π] 上等间隔采样 N 个点。频率分辨率是 2π/N所以 N 越大频谱越精细。这里最容易忽略的是DFT 隐含周期性时域序列被周期延拓频域也是离散周期谱。如果序列长度不是 N需要补零到 N补零不改变频谱形状只是增加了采样密度。数字滤波器的设计是实验四的另一个重点。不同类型的滤波器低通、高通、带通、带阻设计核心是确定滤波器阶数和截止频率。MATLAB 里常用butter、cheby1、ellip等函数。复习时要能说出巴特沃斯滤波器通带最平坦切比雪夫滤波器过渡带更陡但有波纹椭圆滤波器过渡带最陡但通带和阻带都有波纹。选择哪种取决于具体应用对幅频特性的要求。5.2 连续时间系统的频域与复频域分析连续时间系统的频域分析核心是系统函数 H(jω) 和频率响应。复频域分析则是拉普拉斯变换系统函数 H(s)极点决定稳定性。梳理下来会发现频域分析和复频域分析的关系是频域是复频域在 sjω 时的特例。实验里用 MATLAB 画波特图观察幅频和相频特性重点看截止频率、谐振峰和相位变化。最容易错的地方是把 H(jω) 和 H(s) 混为一谈忘记 sσjω 中的实部 σ 对应衰减因子。数字滤波器的应用实验通常是用设计好的滤波器对含噪信号进行滤波然后比较滤波前后的频谱。复习时要能解释为什么滤波器能去噪因为噪声的频谱通常分布在高频而信号的频谱集中在低频低通滤波器可以保留信号、抑制噪声。但如果噪声和信号频谱重叠滤波器就无能为力了。注意设计滤波器时截止频率要归一化到奈奎斯特频率。MATLAB 里butter函数的 Wn 参数是归一化频率1 对应奈奎斯特频率。6. 查漏补缺一份可执行的复习清单与避坑指南复习到这一步最怕的是“每个实验都看过但合上书就串不起来”。我的做法是拿一张白纸不翻代码先画出八个实验的模块关系图——信号产生是输入频域分析是观察手段采样是离散化桥梁DFT 是计算工具滤波器是输出系统。画不出来就说明某个环节还是散的。下面这份清单是我自己每次复习都会走一遍的流程按顺序过基本能覆盖实验验收和笔试的高频考点复习模块必须能徒手写出的内容常见翻车点信号产生单位阶跃、复指数、实指数、正弦序列的生成代码框架时间轴与序列长度不匹配序列运算加、乘、移位、偶奇分解、卷积的时间轴计算*与.*混用卷积后时间轴起点算错傅里叶级数周期矩形脉冲频谱随 T 变化的规律吉布斯过冲约 9%忘记 T 增大时幅度也减小语音频谱男声女声基频范围男转女的核心方法只记方法名说不出基频搬移的具体含义采样定理奈奎斯特间隔计算混叠判断逻辑把“主瓣不重叠”当成“绝对不混叠”信号重建误差增大的两个原因混叠和滤波器截止频率把两个原因混在一起说DFT频率分辨率 2π/N补零的作用忘记 DFT 隐含周期性滤波器设计巴特沃斯、切比雪夫、椭圆滤波器的区别截止频率忘记归一化最容易忽略的是“时间轴”这件事。实验一里所有序列运算只要时间轴错了波形位置就全错。我自己的血泪经验是每次用conv或fliplr之后强制检查一遍时间轴的起点和终点确认长度匹配。另一个容易漏的是采样定理里的“截止频率”定义——升余弦脉冲的截止频率不是主瓣宽度而是频谱包络第一次过零点的位置这个在实验提示里写得很清楚但复习时经常被跳过。还有一个玄学问题为什么 N 增大吉布斯过冲不消失因为傅里叶级数在跳变点处收敛到跳变幅度的中点而不是跳变值本身。有限项合成时跳变点附近的振荡幅度趋于常数这个常数就是过冲量。理解这一点就不会再纠结“为什么 N 不够大”。从那以后我每次做信号处理实验都强制走一遍“时间轴检查 → 参数归一化检查 → 频谱混叠判断”这三步基本没再翻过车。希望这份梳理能帮到你。本文还有配套的精品资源点击获取
📝

华诺云谱内容团队

资深建站顾问 · 行业研究员

10年+企业数字化服务经验,专注智能建站、SEO优化与品牌营销,持续输出建站技巧、行业洞察与营销干货,已帮助5000+企业实现数字化增长。

你可能需要的服务

订阅华诺云谱资讯周报

每周一封,精选建站技巧、SEO与营销干货,直达邮箱。已有 8,000+ 企业主订阅,助你少走弯路。

↑