news 2026/4/18 7:31:55

采样率、信号频谱/频谱混叠原理与matlab仿真分析

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
采样率、信号频谱/频谱混叠原理与matlab仿真分析

目录

1.采样率(fs​)与采样定理——奈奎斯特采样定理

2.信号的频谱分析

连续信号

离散信号

3.频谱混叠


1.采样率(fs​)与采样定理——奈奎斯特采样定理

采样率是指对连续模拟信号进行离散化时,每秒采集的样本点数,单位为Hz(赫兹,1Hz=1个样本/秒),记作fs​。采样本质是用离散的样本序列{x(nTs​)}逼近连续信号x(t),其中Ts​=fs​1​称为采样周期。连续信号x(t)经过采样后,得到离散采样信号x(n):

其中n=0,1,2,… 为离散时间索引,Ts为采样周期。

为了能从离散采样信号中无失真恢复出原始连续信号,采样率必须满足:

fmax:原始连续信号的最高频率分量;

2fmax:称为奈奎斯特频率,是无失真采样的最小采样率。

采样率不足(fs ​<2fmax)是导致频谱混叠的唯一根源。

下面,我们通过MATLAB给定连续正弦信号,设置不同采样率,生成离散采样信号,对比时域波形差异。

clear; clc; close all; % 1. 定义原始连续信号参数(单频正弦信号,最易验证) f0 = 50; % 信号真实频率 f0=50Hz(f_max=50Hz) A = 1; % 信号幅度 phi = 0; % 初始相位 t_cont = 0:1e-5:0.2; % 连续时间轴(步长1e-5,近似连续) x_cont = A * sin(2*pi*f0*t_cont + phi); % 连续信号 x(t) % 2. 设置两种采样率(对比) fs1 = 200; % 采样率1:fs1=200Hz ≥ 2*50=100Hz(满足奈奎斯特) fs2 = 80; % 采样率2:fs2=80Hz < 100Hz(不满足奈奎斯特) Ts1 = 1/fs1; Ts2 = 1/fs2; % 采样周期 t1 = 0:Ts1:0.2; % 离散时间轴1 t2 = 0:Ts2:0.2; % 离散时间轴2 x1 = A * sin(2*pi*f0*t1 + phi); % 离散信号1 x(n)=x(nTs1) x2 = A * sin(2*pi*f0*t2 + phi); % 离散信号2 x(n)=x(nTs2) % 3. 绘图对比 figure('Color','w'); subplot(2,1,1); plot(t_cont, x_cont, 'b-', 'LineWidth',1); hold on; stem(t1, x1, 'r.', 'MarkerSize',10); grid on; title(['采样率 f_s=',num2str(fs1),'Hz(满足奈奎斯特定理)']); xlabel('时间 t (s)'); ylabel('幅值 x(t)'); legend('连续信号','离散采样信号','Location','best'); subplot(2,1,2); plot(t_cont, x_cont, 'b-', 'LineWidth',1); hold on; stem(t2, x2, 'r.', 'MarkerSize',10); grid on; title(['采样率 f_s=',num2str(fs2),'Hz(不满足奈奎斯特定理)']); xlabel('时间 t (s)'); ylabel('幅值 x(t)'); legend('连续信号','离散采样信号','Location','best');

测试结果如下:

当采样率为200Hz时,离散采样点紧密贴合连续信号波形,能准确表征原始信号;

当采样率为80Hz时,离散采样点稀疏,无法贴合连续信号波形。

2.信号的频谱分析

频谱是信号在频率域的表征,描述了信号由哪些不同频率的正弦/余弦分量组成,以及各分量的幅度和相位,核心分为幅度频谱和相位频谱,工程中最常用幅度频谱。

连续信号

连续时域信号x(t)→连续频域信号X(jω):

离散信号

离散采样信号x(n)(共N个点)→ 离散频域信号X(k):

基于步骤1的离散信号,用FFT计算频谱,绘制幅度频谱图:

clear; clc; close all; % 1. 信号与采样参数(沿用步骤1,满足奈奎斯特) f0 = 50; A = 1; phi = 0; fs = 200; Ts = 1/fs; % 采样率200Hz,无混叠 t = 0:Ts:0.2; N = length(t); % 采样点数N x = A * sin(2*pi*f0*t + phi); % 离散采样信号 % 2. FFT计算频谱(核心:离散傅里叶变换) X = fft(x); % 计算DFT/FFT absX = abs(X); % 幅度频谱 f = (0:N-1)*fs/N; % 频率轴(对应每个X(k)的频率) % 3. 频谱归一化(仅展示0~fs/2的有效频谱,工程标准做法) half_N = floor(N/2); absX_half = 2*absX(1:half_N)/N; % 幅度归一化(单频信号幅值修正) f_half = f(1:half_N); % 有效频率轴:0 ~ fs/2 % 4. 绘图:时域波形 + 幅度频谱 figure('Color','w'); subplot(2,1,1); stem(t, x, 'b.', 'MarkerSize',10); grid on; title('时域离散信号'); xlabel('时间 t (s)'); ylabel('幅值 x(n)'); subplot(2,1,2); plot(f_half, absX_half, 'r-', 'LineWidth',2); grid on; title('频域幅度频谱'); xlabel('频率 f (Hz)'); ylabel('归一化幅度 |X(k)|'); xlim([0, fs/2]); % 仅显示0~奈奎斯特频率区间 [~, idx] = max(absX_half); % 提取峰值频率 f_est = f_half(idx); % 估计频率 text(f0+5, max(absX_half)/2, ['峰值频率=',num2str(f_est),'Hz'], 'FontSize',12);

测试结果如下:

频谱图中峰值频率 = 48.7805Hz,与真实频率基本一致,验证FFT频谱分析的正确性。

3.频谱混叠

当采样率不满足奈奎斯特定理(fs ​<2fmax )时,原始信号中高于奈奎斯特频率的高频分量,会被错误地折叠到0~fs/2的低频区间,导致频谱失真、频率混淆,这种现象称为频谱混叠。

设原始信号的真实频率为f0​,采样率为fs​,则混叠后观测到的虚假频率fa​满足公式:

其中m为整数,且满足0<fa​<2fs​​(混叠频率必然落在0~ 奈奎斯特频率区间)。

我们通过编写如下程序,分析频谱混叠现象:

clear; clc; close all; % ===================== 场景1:满足奈奎斯特定理(无混叠)===================== f0 = 50; % 真实频率50Hz fs1 = 800; % 采样率800Hz → 奈奎斯特频率400Hz,f0<400Hz(无混叠) Ts1 = 1/fs1; t1 = 0:Ts1:0.2; N1 = length(t1); x1 = sin(2*pi*f0*t1); % 离散信号 X1 = fft(x1); absX1 = 2*abs(X1(1:floor(N1/2)))/N1; f1 = (0:floor(N1/2)-1)*fs1/N1; % 频率轴 % ===================== 场景2:不满足奈奎斯特定理(有混叠)===================== fs2 = 75; % 采样率75Hz (混叠) Ts2 = 1/fs2; t2 = 0:Ts2:0.2; N2 = length(t2); x2 = sin(2*pi*f0*t2); % 离散信号 X2 = fft(x2); absX2 = 2*abs(X2(1:floor(N2/2)))/N2; f2 = (0:floor(N2/2)-1)*fs2/N2; % 频率轴 % 计算混叠虚假频率(验证公式) m = 1; % 满足0<fa<fs2/2的整数 fa = abs(f0 - m*fs2); % % ===================== 绘图对比 ===================== figure('Color','w'); subplot(2,1,1); plot(f1, absX1, 'b-', 'LineWidth',2); grid on; title(['无混叠:f_s=',num2str(fs1),'Hz,真实频率f0=',num2str(f0),'Hz']); xlabel('频率 f (Hz)'); ylabel('归一化幅度'); xlim([0, fs1/2]); text(f0+20, max(absX1)/2, ['峰值频率=',num2str(f0),'Hz'], 'FontSize',12); subplot(2,1,2); plot(f2, absX2, 'r-', 'LineWidth',2); grid on; title(['有混叠:f_s=',num2str(fs2),'Hz,混叠虚假频率fa=',num2str(fa),'Hz']); xlabel('频率 f (Hz)'); ylabel('归一化幅度'); xlim([0, fs2/2]); text(fa, max(absX2)/2, ['峰值频率=',num2str(fa),'Hz'], 'FontSize',12);

测试结果如下:

当fs=800Hz时,频谱峰值=50Hz,与真实频率一致,无混叠;

当fs=75Hz时,频谱峰值=25Hz,与混叠公式计算的fa=25Hz完全一致,发生混叠;

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/17 22:37:27

《创业之路》-761-《架构思维:从程序员到CTO》第四部 - 架构师的职业规划与能力成长:从执行者到战略引领者的跃迁,技术、业务与软技能的三角支撑。

一、职业规划&#xff1a;从执行者到战略引领者的跃迁阶段划分与目标设定短期&#xff08;1-3年&#xff09;&#xff1a;夯实技术基础&#xff0c;掌握至少一门主流编程语言&#xff08;如Java、Python&#xff09;&#xff0c;熟悉分布式系统、微服务架构等设计理念&#xff…

作者头像 李华
网站建设 2026/4/18 0:25:18

YOLO模型冷启动JIT预热:触发热点代码编译机制

YOLO模型冷启动JIT预热&#xff1a;触发热点代码编译机制 在工业级AI推理系统中&#xff0c;一个看似微小却影响深远的问题正在悄然发生——当摄像头第一帧图像送入YOLO模型时&#xff0c;检测结果迟迟未出。延迟高达正常响应的数倍&#xff0c;甚至触发误报或漏检。这不是硬件…

作者头像 李华
网站建设 2026/4/18 0:23:19

YOLO模型灰度发布期间紧急问题响应机制

YOLO模型灰度发布期间紧急问题响应机制 在智能制造工厂的质检流水线上&#xff0c;一台边缘设备突然开始频繁误报“裂纹缺陷”&#xff0c;而同一产线的其他设备却运行正常。运维人员调取日志后发现&#xff0c;这台设备恰好是上周五灰度上线YOLOv10模型的测试节点——新版本因…

作者头像 李华
网站建设 2026/4/17 1:50:27

YOLO模型灰度发布回滚演练:定期检验应急预案

YOLO模型灰度发布回滚演练&#xff1a;定期检验应急预案 在智能制造工厂的视觉质检线上&#xff0c;一台搭载YOLO模型的AI检测设备突然开始频繁误判——原本合格的产品被标记为缺陷品。监控系统显示新上线的v2.1版本模型准确率在两小时内骤降18%&#xff0c;而此时距离全量发布…

作者头像 李华
网站建设 2026/4/18 0:24:30

YOLO模型灰度版本监控大盘:一站式观测核心指标

YOLO模型灰度版本监控大盘&#xff1a;一站式观测核心指标 在智能制造车间的视觉质检线上&#xff0c;一台搭载YOLOv8的摄像头正以每秒60帧的速度扫描流过的产品。突然&#xff0c;系统开始频繁误报“划痕缺陷”&#xff0c;而人工复检却发现绝大多数是正常产品——一场由新上线…

作者头像 李华