深入理解采样定理 + Matlab 仿真 Sa 函数的采样与恢复

article/2025/9/23 20:14:19
  • 建议配合国宝老师的视频食用。
    信号与线性系统分析 吴大正 郭宝龙

文章目录

  • (1) 采样的说明
    • 1. 为什么要取样
    • 2. 什么是取样
  • (2) 采样定理
    • 1. 为什么要有奈奎斯特频率
    • 2. 什么是采样定理
  • (3) 信号的恢复
  • (4) Matlab的Sa函数取样仿真
    • 1. 采样信号Sa函数的说明
    • 2. 进行参数的说明及相关计算
    • 3. 结果的展示
    • 4. matlab 代码

(1) 采样的说明

1. 为什么要取样

  • 我们要使用计算机去处理信号。信号都是连续的,在任意一个非空区间内都有无限个值,但是计算机的内存是一个有限值,只能完成有限的数据存储和运算,所以要进行采样和量化等操作,把信号离散成有限个点就可以使用计算机处理了。当信号在计算机中处理完,按照一定的规则恢复成连续的状态就可以了。
  • 注意采样定理和后面 DFT(discrete Fourier transform) 之间的联系。

2. 什么是取样

  • 取样就是利用取样脉冲序列从连续信号中 抽取离散的样本值
    • 从时域上看 f s ( t ) = f ( t ) × s ( t ) f_s(t) = f(t) \times s(t) fs(t)=f(t)×s(t)
    • 从频域上看 F s ( j ω ) = 1 2 π F ( j ω ) ∗ S ( j ω ) F_s(j\omega) = \displaystyle\frac{1}{2\pi}F(j\omega) * S(j\omega) Fs(jω)=2π1F(jω)S(jω)
  • 冲激取样(理想取样)的例子
    • 可以看到在时域上是通过乘积完成对应离散点的选取,在频域上完成的是信号频谱的周期延拓。

(2) 采样定理

1. 为什么要有奈奎斯特频率

  • 首先要明白一件事,使用采样点恢复出原来的信号需要的是进行一个低通滤波,把频域上的低频波形滤出来就可以了。
  • 从上面的图可以看出来,取样在频域中相当于进行了频谱的周期延拓,所以就会出现一个问题,平移距离不够会引起频域波形的重叠,当发生重叠之后就无法完成滤波了,即无法完成信号的恢复了。因此需要对平移的距离有一个限制,也就是采样定理中的奈奎斯特频率。

2. 什么是采样定理

  • 一个频谱在区间 ( − ω m , ω m ) (-\omega_m,\omega_m) (ωm,ωm) 以外为 0 的带限信号 f ( t ) f(t) f(t),可唯一的由其在均匀间隔 T s [ T s < 2 π / ω m ] T_s [T_s < 2\pi/\omega_m] Ts[Ts<2π/ωm] 上的样值点 f ( n T s ) f(nT_s) f(nTs) 确定。
    • 注意必须是带限信号。像冲激函数这样的就无法取样,因为在频域上的无限意味着在时域信号的存在时间无限趋于 0。
    • 取样频率不能太低,必须 f s > 2 f m f_s > 2f_m fs>2fm 。最低取样频率 f s = 2 f m f_s = 2f_m fs=2fm称为奈奎斯特频率

(3) 信号的恢复

  • 参量的说明
    • 低通滤波器的截止角频率: ω c \omega_c ωc,从图上明显可以看出需要有 ω m < ω c < ω s − ω m \omega_m<\omega_c<\omega_s-\omega_m ωm<ωc<ωsωm,为方便取 ω c = 0.5 ω s \omega_c = 0.5\omega_s ωc=0.5ωs
    • 采样角频率: ω s \omega_s ωs,注意根据采样定理 ω s > 2 ω m \omega_s > 2\omega_m ωs>2ωm
    • 带限信号的最大角频率: ω m \omega_m ωm
  • 信号恢复的过程是信号采样过程的逆过程。实际上在进行频域乘积滤波的过程中,时域进行了卷积的平移,平移到不同位置的函数叠加就恢复出原始信号。

(4) Matlab的Sa函数取样仿真

1. 采样信号Sa函数的说明

  • Matlab 中自带的函数是 sinc 函数,其形式是 s i n ( π t ) π t \displaystyle\frac{sin(\pi t)}{\pi t} πtsin(πt),我们要在仿真中使用的是 Sa 函数,其形式是 s i n ( t ) t \displaystyle\frac{sin(t)}{t} tsin(t),因此 sa = sinc(t/pi)
  • 代码:
    %% 打印出来sa函数
    t = -20:0.001:20;
    L = length(t);
    x = sinc(t / pi);
    plot(t,x,'LineWidth',3);
    xlabel('t');ylabel('Amplitude'); title('Sa(t)')
    
  • 结果:

2. 进行参数的说明及相关计算

  • 参数说明
    • s a ( t ) sa(t) sa(t) 的傅里叶变换结果是 π g 2 ( ω ) \pi g_2(\omega) πg2(ω),就是一个门宽为 2 的门函数。因此可以知道 ω m = 1 \omega_m = 1 ωm=1
    • 根据奈奎斯特采样定律,这里选取 ω s = 2 ω m \omega_s = 2\omega_m ωs=2ωm ω s = 1.5 ω m \omega_s=1.5\omega_m ωs=1.5ωm ω s = 4 ω m \omega_s=4\omega_m ωs=4ωm。分别模拟临界采样,欠采样和过采样三种情况。相应的选取信号还原时低通滤波器的截止频率 ω c = 0.5 ω s \omega_c = 0.5\omega_s ωc=0.5ωs
  • 这里选取时域的正半轴取样点一共 N 个,下面使用 ∞ \infin 推公式,但是最后要用 N N N
  • 信号取样
    • 冲激取样函数: δ T s ( t ) = ∑ n = − ∞ ∞ δ ( t − n T s ) \delta_{T_s}(t)=\displaystyle\sum_{n=-\infin}^{\infin}\delta(t-nT_s) δTs(t)=n=δ(tnTs)
    • 通过采样的定义可知 f s ( t ) = f ( t ) × s a ( t ) f_s(t) = f(t) \times sa(t) fs(t)=f(t)×sa(t),在matlab中只需要 fs = sinc(t/pi)
  • 信号恢复
    • 采样后的信号在时域上的表达式为 f s ( t ) = f ( t ) ∑ n = − ∞ ∞ δ ( t − n T s ) = ∑ n = − ∞ ∞ δ ( t − n T s ) f ( n T s ) f_s(t)=f(t)\displaystyle\sum_{n=-\infin}^{\infin}\delta(t-nT_s)=\displaystyle\sum_{n=-\infin}^{\infin}\delta(t-nT_s)f(nT_s) fs(t)=f(t)n=δ(tnTs)=n=δ(tnTs)f(nTs)
    • 假设采样后的信号在频域上的表达式为 F s ( j ω ) F_s(j\omega) Fs(jω),并选取低通滤波器
      H ( ω ) = { T s , ∣ ω ∣ ≤ ω c 0 , ∣ ω ∣ > ω c H(\omega)=\begin{cases} T_s ,&|\omega|\leq \omega_c\\ 0, & |\omega|> \omega_c \end{cases} H(ω)={Ts,0,ωωcω>ωc
      可以算出 H ( ω ) H(\omega) H(ω) 在时域上的表达式 h ( t ) = T s ω c π s a ( ω c t ) h(t)=T_s\displaystyle\frac{\omega_c}{\pi}sa(\omega_ct) h(t)=Tsπωcsa(ωct)之所以选取 H ( ω ) H(\omega) H(ω)的放大倍数为 T s T_s Ts 是因为此时 h ( t ) h(t) h(t) 的系数是 1(因为 ω c = 0.5 ω s \omega_c = 0.5\omega_s ωc=0.5ωs)。
    • 根据前面的讨论,让取样后的信号通过低通滤波器相当于频域相乘即 F ( j ω ) = F s ( j ω ) × H ( ω ) F(j\omega) = F_s(j\omega)\times H(\omega) F(jω)=Fs(jω)×H(ω)。同时根据时域和频域的关系, f ( t ) = f s ( t ) ∗ h ( t ) f(t) = f_s(t) * h(t) f(t)=fs(t)h(t)。带入前面的结果可以得到 f ( t ) = T s ω c π ∑ n = − ∞ ∞ f ( n T s ) s a ( ω c ( t − n T s ) ) f(t)=T_s\displaystyle\frac{\omega_c}{\pi}\displaystyle\sum_{n=-\infin}^{\infin}f(nT_s)sa(\omega_c(t-nT_s)) f(t)=Tsπωcn=f(nTs)sa(ωc(tnTs))

3. 结果的展示

  • 临界取样
  • 过采样(实际上这里有一点不太明白,为什么过采样恢复后信号的误差会比临界采样的大??
  • 欠采样

4. matlab 代码

%% matlab 完成Sa信号的采样和恢复
%% 取样(临界取样)
% 取样
figure(1);
wm = 1; %信号的最大频率
ws = 2 * wm; %信号的采样频率(根据奈奎斯特频率)
wc = 0.5 * ws;%滤波器的截止频率
Ts = 2*pi/ws;%采样间隔
N = 10;%时域采样点数
n = -N:N;
nTs = n * Ts;%采样数据的采样时间
fs = sinc(nTs/pi);%完成采样
subplot(311);
stem(nTs/pi,fs,'LineWidth',3);
xlabel("nTs");
ylabel("f(nTs)");
title("sa(t)的临界取样信号");
% 还原
Dt = 0.005;
t = -15:Dt:15;
fa = Ts*wc/pi * fs * sinc((wc/pi)*(ones(length(nTs),1)*t-nTs'*ones(1,length(t))));
subplot(312);
plot(t,fa,'LineWidth',3);
xlabel("t");
ylabel("f(t)");
title("由临界取样信号重构sa(t)");
% 展示误差
error = abs(fa-sinc(t/pi));
subplot(313);
plot(t,error,'LineWidth',3);
xlabel("t");
ylabel("error(t)");
title("重构信号与原信号的误差error(t)");
%% 取样(过取样)
% 取样
figure(2);
wm = 1; %信号的最大频率
ws = 4 * wm; %信号的采样频率(根据奈奎斯特频率)
wc = 0.5 * ws;%滤波器的截止频率
Ts = 2*pi/ws;%采样间隔
N = 20;%时域采样点数
n = -N:N;
nTs = n * Ts;%采样数据的采样时间
fs = sinc(nTs/pi);%完成采样
subplot(311);
stem(nTs/pi,fs,'LineWidth',3);
xlabel("nTs");
ylabel("f(nTs)");
title("sa(t)的过取样信号");
% 还原
Dt = 0.005;
t = -15:Dt:15;
fa = fs*Ts*wc/pi * sinc((wc/pi)*(ones(length(nTs),1)*t-nTs'*ones(1,length(t))));
subplot(312);
plot(t,fa,'LineWidth',3);
xlabel("t");
ylabel("f(t)");
title("由过取样信号重构sa(t)");
% 展示误差
error = abs(fa-sinc(t/pi));
subplot(313);
plot(t,error,'LineWidth',3);
xlabel("t");
ylabel("error(t)");
title("重构信号与原信号的误差error(t)");
%% 取样(欠取样)
% 取样
figure(3);
wm = 1; %信号的最大频率
ws = 1.5 * wm; %信号的采样频率(根据奈奎斯特频率)
wc = 0.5 * ws;%滤波器的截止频率
Ts = 2*pi/ws;%采样间隔
N = 7;%时域采样点数
n = -N:N;
nTs = n * Ts;%采样数据的采样时间
fs = sinc(nTs/pi);%完成采样
subplot(311);
stem(nTs/pi,fs,'LineWidth',3);
xlabel("nTs");
ylabel("f(nTs)");
title("sa(t)的欠取样信号");
% 还原
Dt = 0.005;
t = -15:Dt:15;
fa = fs*Ts*wc/pi * sinc((wc/pi)*(ones(length(nTs),1)*t-nTs'*ones(1,length(t))));
subplot(312);
plot(t,fa,'LineWidth',3);
xlabel("t");
ylabel("f(t)");
title("由欠取样信号重构sa(t)");
% 展示误差
error = abs(fa-sinc(t/pi));
subplot(313);
plot(t,error,'LineWidth',3);
xlabel("t");
ylabel("error(t)");
title("重构信号与原信号的误差error(t)");

现在已经转移到知乎,之后的文章会在知乎更新。


http://chatgpt.dhexx.cn/article/pwVR3GQc.shtml

相关文章

数字信号处理:时域采样定理与频域采样定理

数字信号处理&#xff1a;时域采样定理与频域采样定理 1.时域采样定理 %初始参数 A444.128; alphpi*50*2^0.5; omegapi*50*2^0.5; M64; %做64点fft变换 n0:M-1;%采样频率fs为1000Hz Fs11000; T11/Fs1; xn1A*exp(-alph*n*T1).*sin(omega*n*T1); %对原函数的抽样取点 Xk1fft(…

连续时间采样及采样定理——MATLAB

一、实验目的 1、掌握连续时间信号离散化的方法&#xff08;即采样&#xff09;,并能利用Matlab编程加以仿真实现; 2、掌握连续时间信号的傅立叶变换和离散时变换的仿真实现方法&#xff1b; 3、学会利用傅里叶变换和离散时间信号的傅立叶变换的方法对连续时间信进行频谱的分析…

模拟信号的采样定理MATLAB实现

一&#xff0e; 实验目的 1&#xff0e;掌握信号的采样的方法。 2&#xff0e;分析信号的采样频率对频率特性的影响。 二&#xff0e;实验原理及方法 在现实世界里&#xff0c;声音、图像等各种信号多为模拟信号&#xff0c;要对它进行数字化处理&…

【信号处理】采样定理的深入浅出

一些闲话&#xff1a; 这是我本科生涯的最后一年了&#xff0c;过去三年毫无征兆地蒸发了一样&#xff0c;我的大四上有一门移动通信课&#xff0c;在实验课后我突发的迫切想要搭建一个完整的通信系统&#xff0c;所以我想趁着大四上最后一个月好好将我的知识进行总结&#xf…

奈奎斯特采样定理

现实世界接触到的诸如电信号、光信号、声音信号等这些信号都是随时间连续变化的&#xff0c;称之为连续信号。但对于计算机来说&#xff0c;处理这些连续的信号显然是无能为力&#xff0c;要使计算机能够识别、计算、处理这些连续信号就必须将其转化为离散信号&#xff0c;将连…

采样定理的学习笔记

CSDN话题挑战赛第2期 参赛话题&#xff1a;学习笔记 数据采集的最主要功能之一是将外部模拟信号转换为离散信号传递到计算机中去&#xff0c;这一过程被称为采样。采样频率或采样率&#xff0c;即每秒采集所得的数据个数&#xff0c;对于采样过程是一个至关重要的参数&#xf…

(一)深入理解采样定理

1. 奈奎斯特采样定理是连接连续和离散的桥梁。现实世界中接触到的信号&#xff0c;比如电信号&#xff0c;光信号&#xff0c;声音信号等都是随时间连续变化的&#xff0c;称为连续信号。但对于计算机来说如要处理连续信号&#xff0c;这是无能为力的&#xff0c;必须要将连续信…

再次理解信号采样定理(低通抽样定理)

以前对低通信号的采样定理简单理解为&#xff1a;必须要以信号的最高频率的2倍进行采样&#xff0c;否则就恢复不出来原信号&#xff0c;原因是采样频率Fs较小时&#xff0c;信号频谱发生了混叠&#xff0c;所以无法恢复。 仔细想想&#xff0c;这样理解当然正确&#xff0c;可…

时域采样定理和频域采样定理

采样定理的形象化描述&#xff1a;在时域对信号进行采样&#xff0c;等效为在频域对信号频谱进行周期延拓。在频域对频谱进行采样&#xff0c;等效为在时域对信号进行周期延拓。 由频域采样定理&#xff0c;联想我之前的一篇博客《傅里叶级数和傅里叶变换》&#xff0c;可以显然…

频域采样定理

频域采样定理 1、频域采样定理的主要内容是: (a)对信号 x(n) x ( n ) 的频谱函数 X(ejw) X ( e j w ) 在 [0,2π) [ 0 , 2 π ) 上等间隔采样 N点&#xff0c;得到&#xff1a; XN(k)X(ejw)|w2πk/N &#xff0c;  k0,1,2,...,N−1 X N ( k ) X ( e j w ) | w 2 π k…

带通采样定理简单记录

没有目的的学习是困难的&#xff0c;当初是为了过一遍信号处理的相关知识&#xff0c;遇到了带通采样定理&#xff0c;和奈奎斯特采样定理相比&#xff0c;简直麻烦的让人无法接受&#xff01;转眼间&#xff0c;半年过去了&#xff0c;这次为了看论文而再次回顾带通采样定理时…

采样定理 ADC采样

一、采样定理 采样会造成频谱搬移&#xff0c;采样最重要的就是保证搬移后的频谱不会发生混叠。 上图中&#xff08;a&#xff09;为原信号的频谱&#xff0c;&#xff08;b&#xff09;为以Fs采样后的频谱。可以看到频谱以原点O为基准发生了周期性的搬移&#xff0c;其中频谱…

低通采样定理与带通采样定理

一、&#xff08;低通&#xff09;采样定理 如何从抽样信号中恢复原连续信号、在什么条件下才可以无失真地由采样信号恢复原连续信号&#xff0c;著名的采样定理对此作了明确的回答。 采样定理在通信系统、信息传输理论、数字信号处理等方面占有十分重要的地位&#xff0c;该定…

带通采样定理及其公式推导

文章目录 前言一、采样定理&#xff1f;1.低通采样定理&#xff08;奈奎斯特采样&#xff09;2.带通采样定理 二、频谱混叠三、带通采样定理四、带通采样的限制条件五、误区六、总结七、参考资料 前言 2022年电赛F题-信号调制度测量装置说明中提到带通采样定律。 低通采样定理…

带通采样定理

为什么要用带通采样定理呢&#xff1f;按理说&#xff0c;奈奎斯特采样定理不是通吃一切吗&#xff1f;话虽如此&#xff0c;奈奎斯特说&#xff0c;只要采样率不小于信号最高频率的2倍&#xff0c;采样后的信号就能能够准确恢复。 可事实上&#xff0c;有很多行不通的地方&am…

采样定理的详细解释

目录 所需理论推导一般的时域抽样理想的时域抽样与基带信号采样定理 所需理论推导 周期信号的傅里叶变换&#xff1a; 在之前对傅里叶变换的介绍中我们了解到&#xff0c;傅里叶变换主要针对的是非周期信号&#xff0c;有 F ( ω ) ∫ − ∞ ∞ e − j ω t ∗ f ( t ) d t …

信号采样定理

本文的一些引用来源于维基百科 采样定理 采样定理是数字信号处理领域的重要定理。定理内容是连续信号&#xff08;通常称作“模拟信号”&#xff09;与离散信号&#xff08;通常称作“数字信号”&#xff09;之间的一个基本桥梁。它确定了信号带宽的上限&#xff0c;或能捕获…

领悟《信号与系统》之 采样定理

采样定理 采样定理一、采样定理结论二、奈奎斯特间隔和频率计算公式及例题&#xff1a;三、信号自然采样&#xff08;脉冲采样&#xff09;四、信号理想采样&#xff08;冲激采样&#xff09; 采样定理 连续时间信号也叫模拟信号。在一定条件之下&#xff0c;模拟信号可以用该…

空间直线及其方程

二、空间直线及其方程 1. 方程类型 一般式 参数方程 对称式/点向式 两点式 2. 常见问题 ①两直线夹角 ②直线与平面的夹角

8.4 向量应用(二)——空间直线

本篇内容接上篇&#xff0c;还是关于向量应用的内容。没有废话&#xff0c;直接来。 空间直线方程 &#xff08;一&#xff09;点向式方程&#xff08;对称式方程&#xff09; 从名字上看&#xff0c;点向式两个关键&#xff0c;一个是点&#xff0c;一个是向&#xff0c;点是…