【MATLAB】对连续信号采样的研究

1. 引言

注意:MATLAB源码会在文章最后提供

2. 某些重要概念

2.1 信号频率 / F (单位:Hz)

在电子电路设计以及通信系统里,通常将 3MHz 作为高频和低频的大致分界线。频率低于 3MHz 的为低频信号,高于 3MHz 的视作高频信号。例如,调幅(AM)广播的频率范围在 535kHz - 1605kHz ,属于低频段;而调频(FM)广播的频率范围在 88MHz - 108MHz,则处于高频段。

2.2 采样频率 / Fs (单位:Hz)

  • 定义:采样频率指的是单位时间内对连续信号进行采样的次数,单位为赫兹(Hz)。比如采样频率为 100Hz,就意味着每秒对连续信号进行 100 次采样。
  • 作用:决定了离散信号对原始连续信号的还原程度。通过在时间上对连续信号进行等间隔采样,将其转化为离散的样本序列。较高的采样频率可以获取更多的信号细节信息,使得离散信号更接近原始连续信号;而较低的采样频率可能会丢失一些重要信息,导致还原的信号与原始信号存在较大差异。
  • 奈奎斯特采样定理:为了能够从采样后的离散信号无失真地恢复出原始连续信号,采样频率必须至少是原始信号最高频率的两倍。例如,对于最高频率为 20kHz 的音频信号,根据奈奎斯特采样定理,采样频率至少要达到 40kHz。理论上可以恢复原始信号,但在实际应用中,这种临界情况非常不稳定,信号稍有干扰或频率偏差,就可能无法准确恢复原始信号。

2.3 采样周期(间隔) / Ts (单位:s)

  • 定义:采样周期指的是在对连续信号进行采样时,相邻两次采样之间的时间间隔 ,通常用 Ts 表示。例如,当我们以固定的时间间隔对一个连续变化的电压信号进行取值,这个时间间隔就是采样周期。
  • 与采样频率关系:采样周期与采样频率 Fs 互为倒数,即 Ts=1/Fs。比如采样频率 1000Hz,意味着每秒采样 1000 次,那么采样周期 1ms,也就是每隔 1 毫秒进行一次采样。
  • 对信号采样影响:采样周期决定了采集到的离散信号对原始连续信号的时间分辨率。较小的采样周期(即较高的采样频率)能够更频繁地对连续信号进行采样,从而获取更多的信号细节,离散信号也就更接近原始连续信号的真实形态。相反,较大的采样周期(较低的采样频率)会使采样点在时间上分布稀疏,可能会丢失原始信号中的一些快速变化信息,导致信号还原时出现失真。

2.4 采样总时间

公式:采样时长 = 采样周期 * 周期数

2.5 采样点数 / Ns (单位:个)

  • 定义:采样点数指的是在对连续信号进行采样的过程中,所获取的离散样本的数量 。比如,对一段持续 10 秒的声音信号进行采样,总共采集了 441000 个样本数据,这里的 441000 就是采样点数。
  • 计算公式:
    1、单个周期采样点数 = 信号周期÷采样周期 = 信号周期×采样频率 = 采样频率÷信号频率
    2、采样点数 = 信号周期÷采样周期采样时长 = 信号周期×采样频率采样时长 = 采样频率÷信号频率*采样时长
    注意区别!!
  • 决定因素:
    1、采样时长:在采样频率固定的情况下,采样时长越长,采样点数越多。
    2、采样频率:当采样时长固定时,采样频率越高,单位时间内采集的样本数越多,采样点数也就越多。
  • 对信号分析的影响:采样点数影响着我们对信号的分析和处理效果。较多的采样点数可以提供更丰富的信号细节信息,有助于更精确地还原原始信号、进行频谱分析等操作。
  • 举例:若有一个 1000Hz 的原始信号,用 2000 Hz的采样频率对这个信号进行采样,得出来的采样信号,其一个周期内只有 2 个采样点数,假如想要进行1024个点的FFT,那么对原始信号多采样几个周期,以加长采样时间,直到 Ns = fs / f * T = 1024 个点后,再进行FFT。因此,采样所得信号在单个周期内的点数,与进行FFT运算时所采用的点数(例如1024点)并不矛盾。在编程实现中,通常会定义一个大小为1024的DMA数组。DMA会持续不断地对ADC采集到的信号数据进行搬运,直至数组中的数据点数达到1024个,此时程序便会启动FFT运算,进而得到相应的频谱图,然后再进行下一次的搬运、FFT。 需要特别注意的是,在选择采样频率对原始信号进行采样时,若能使采样信号一个周期的采样点数 = 采样频率÷原始信号频率 = 2^n"这一关系,将有助于FFT运算取得更理想的效果。这是一个极易产生混淆的关键环节,务必加以留意!!!

2.6 采样频率分辨率 / ΔF (单位:Hz)

  • 定义:频率分辨率指的是在对信号进行频谱分析时,能够分辨出的两个相邻频率分量的最小频率间隔 。
  • 计算公式:采样频率分辨率 = 采样频率 / 采样点数
  • 决定因素:在使用离散傅里叶变换(DFT)或快速傅里叶变换(FFT)等方法进行频谱分析时,频率分辨率主要取决于信号的采样点数Ns和采样频率Fs。
  • 对信号分析的影响:频率分辨率直接影响对信号频率特性的分析精度。

3. MATLAB绘制举例

3.1 信号产生

首先产生一个信号频率为 50Hz 的信号,显示 5 个周期的时间长度。

image

产生如下的信号:

image

3.2 信号采样

采用不同的采样频率来采样原始信号,并生成采样信号,同样的,也是采样 5 个周期的时间。

image

产生如下几个采样后的信号:

image

对比一下原始信号:

image

这里我就没有用点点来表示所采样到的点数,但是根据计算公式也可以得知了,想要清楚看到采样点数的话,可以在plot函数中增加一个'rp'来显示采样点:

image

可见,根据奈奎斯特采样定理:采样频率至少是原始信号最高频率的两倍,当采样率为100Hz的时候,才能勉强还原出原始信号的形状以及所采样的 5 个周期,但这是处于奈奎斯特采样定理的临界情况。

3.3 干扰测试

此处我加上了高斯白噪声,来测试不同的采样频率得出的采样信号,在同一噪声干扰下的稳定性如何。

image

绘制出来的图像:

image

4. MATLAB源码

%% 清除工作区变量、命令行窗口并关闭所有图形窗口
clear;
clc;
close all;

%% 信号生成与绘制
% 产生一个频率为50Hz、时长为5个周期时间的信号
f = 50; % 信号频率,单位:Hz
Tf = 1 / f; % 一个周期的时间,单位:s
N = 5; % 周期数目,单位:个
t1 = linspace(0 * Tf, N * Tf, N * 8192); %显示信号的n*Tf - 0*Tf个周期
y1 = 5 * sin(f * 2 * pi * t1);

% 绘制原始信号
figure(1);
subplot(6, 2, 1);
plot(t1, y1);
title([[num2str(f), 'Hz原始信号']]);
xlabel('时间 / s');
ylabel('振幅 / V');
grid on;

%% 不同采样频率下的采样信号生成与绘制
fs_array = [50, 100, 1000, 2000, 5000];

for i = 1:length(fs_array)
    fs = fs_array(i);
    Ts = 1 / fs;
    Ns = Tf / Ts;
    t2 = linspace(0 * Tf, N * Tf, N * Ns);
    y2 = 5 * sin(f * 2 * pi * t2);

    subplot(length(fs_array) + 1, 2, 2 * i - 1 + 2);
    plot(t2, y2);
    title([num2str(fs), 'Hz采样率采样信号']);
    xlabel('时间 / s');
    ylabel('振幅 / V');
    grid on;
end

%% 给所有信号添加高斯白噪声干扰并绘制
noise_power = 0.5;

noise1 = sqrt(noise_power) * randn(size(y1));
y1_with_noise = y1 + noise1;
subplot(6, 2, 2);
plot(t1, y1_with_noise);
title([num2str(f), 'Hz原始信号 +高斯白噪声干扰']);
xlabel('时间 / s');
ylabel('振幅 / V');
grid on;

for i = 1:length(fs_array)
    fs = fs_array(i);
    Ts = 1 / fs;
    Ns = Tf / Ts;
    t2 = linspace(0 * Tf, N * Tf, N * Ns);
    y2 = 5 * sin(f * 2 * pi * t2);
    noise = sqrt(noise_power) * randn(size(y2));
    y2_with_noise = y2 + noise;

    subplot(length(fs_array) + 1, 2, 2 * i + 2);
    plot(t2, y2_with_noise);
    title([num2str(fs), 'Hz采样率采样信号 +高斯白噪声干扰']);
    xlabel('时间 / s');
    ylabel('振幅 / V');
    grid on;
end

%% 总结
% 奈奎斯特采样定理要求采样频率至少是原始信号最高频率的两倍。
% 这里原始信号频率50Hz,采样频率100Hz时刚好满足fs = 2f,处于临界情况。
% 实际应用中通常会采用更高的采样频率,以确保可靠地还原信号。

博客导航

博客导航

posted @ 2024-12-28 17:05  膝盖中箭卫兵  阅读(445)  评论(0)    收藏  举报  来源
ORCID iD icon https://orcid.org/0000-0001-5102-772X