当前位置: 首页 > news >正文

采样率、信号频谱/频谱混叠原理与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完全一致,发生混叠;

http://www.zskr.cn/news/170555.html

相关文章:

  • 构建LLM支持的AI Agent创新思维系统
  • 刻意练习 2.0:如何利用 AI 结对编程实现从“熟练工“到“大师“的进阶?
  • PHP反序列化
  • 年终复盘2.0:NLP自动萃取经验教训,构建可执行策略库
  • 推荐阅读:C语言中的指针与内存管理:构建高效系统的基石
  • YOLO模型冷启动JIT预热:触发热点代码编译机制
  • CF 做题记录(12月)
  • STUN协议:NAT穿透的核心技术与应用实践
  • InfiniBand 网络管理探秘:子网管理器如何发现硬件并分配网络地址
  • GEO贴牌代理赋能AI搜索推荐,让品牌在智能问答中优先展现 - 源码云科技
  • SDP协议:实时通信的会话描述基石
  • YOLO模型灰度发布完成后正式版替换流程
  • 母子定律,准到吓人
  • YOLO与Spinnaker部署平台集成:多环境渐进式发布
  • YOLO模型训练任务依赖管理:有向无环图调度实现
  • 在微网的世界里,电能共享是个大话题。今天咱们聊聊如何用非对称纳什谈判来优化多微网间的电能共享,顺便加点代码,让大家感受一下这个高级玩意儿
  • Abaqus复合材料微观单胞RVE模型的周期性网格划分及E11,E22,E33,G12,G13...
  • 计算机毕业设计Python+AI大模型新闻自动分类 新闻预测系统 新闻可视化 新闻爬虫 大数据毕业设计
  • YOLO模型灰度版本灰度结束后的用户通知
  • 计算机毕业设计Python+AI大模型智能路线规划数据分析与个性化推荐系统 旅游路线推荐系统 旅游路线规划系统 大数据毕业设计
  • 新手指南之大纲设定(飞卢)
  • YOLO目标检测中的小目标识别难题破解思路
  • YOLO模型灰度发布期间用户反馈收集机制
  • 梨忆
  • YOLO与Grafana Loki日志聚合集成:高效查询海量日志
  • YOLO在高速公路监控的应用:违章停车自动抓拍
  • YOLO模型训练任务排队系统:公平调度所有提交作业
  • hadoop配置
  • YOLO目标检测中的旋转框支持:倾斜物体精确包围
  • YOLO在智能楼宇的应用:电梯内人数统计与超载预警