秦皇岛市网站建设_网站建设公司_在线商城_seo优化
2025/12/28 20:04:11 网站建设 项目流程

目录

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完全一致,发生混叠;

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询