MATLAB抽样定理实验

news2024/11/30 2:30:58

目录

一、实验目的

二、实验原理

三、实验要求

四、实验内容

1、连续时间信号时域波形及其幅度谱

2、信号进行抽样

3、频谱分析

4、由各抽样信号恢复出连续时间信号,计算并画出误差函数


一、实验目的

1、掌握抽样定理工作原理

2、练习使用Matlab编程进行抽样定理验证与分析

3、分析并通过实验观察过采样、临界采样和欠采样3种不同条件下恢复信号误差,并由此总结抽样频率对信号恢复产生误差影响,加深对时域低通抽样定理的理解。

二、实验原理

抽样定理:

设时间连续信号f(t),其最高截止频率为fm,如果用时间间隔为T≤12fm的开关信号对f(t)进行抽样时,则f(t)就可被样值信号唯一地表示。

在一个频带限制在(0,fh)内的时间连续信号f(t),如果以小于等于\frac{1}{2 f_{h}}的时间间隔对它进行抽样,那么根据这些抽样值就能完全恢复原信号。或者说,如果一个连续信号f(t)的频谱中最高频率不超过fh,这种信号必定是个周期性的信号,当抽样频率fs≥2fh时,抽样后的信号就包含原连续信号的全部信息,而不会有信息丢失,当需要时,可以根据这些抽样信号的样本来还原原来的连续信号。

时域低通抽样定理:

奈奎斯特抽样定理:设有一个频带限制在(0,fh)Hz内的时间连续信号f (t),如果以不低于2fh次/秒的频率对它进行抽样,那么所得的抽样值将包含f (t)的全部信息,并且可以用低通滤波器从这些样值中重建f (t)。假设f (t)的频谱为F(w),我们抽样所用的信号是单位冲击序列:


\delta_{T}(t)=\sum_{k=-\infty}^{\infty} \delta\left(t-k T_{s}\right)

其中:Ts为抽样时间间隔,那么抽样后的信号fs(t)为:

f_{S}(t)=f(t) \cdot \delta_{T}(t)

其信号频谱为:


F_{S}(w)=\frac{1}{T_{S}} \sum_{k=-\infty}^{\infty} F\left(w-k w_{s}\right)

抽样后信号f (t)的频谱 由无限多个以ωs的各次谐波为中心点所组成,当然幅度只有原来的1/Ts

显然为了要使相邻的边带不发生混叠,必须满足如下条件ωs≥2ωh,或fs≥2fh

当抽样满足抽样定理要求,频谱不发生混叠时,在接收端只要用理想低通滤波器就可以从抽样信号中无失真地恢复原信号。

带通信号抽样定理:

f(t)频带为\left(f_{l}, f_{h}\right),仍按fs=2fh抽样。

经观察可发现带通信号的最高频率fh如果是其带宽的整数倍的话,例如fh=2B,当抽样频率fs=2(fsfl )=2B时,其频谱并不发生混叠。

如果最高频率fh不是信号带宽B的整数倍,即:fh=KB

其中K的整数部分为n,小数部分为k,即:K=n+k

我们可以假想一个比B宽的带宽B',使正好是它的整数倍。fh=nB'

只要我们以2B'抽样频率fhf (t)进行抽样必然不会出现频谱混叠。因此

f_{s}=2 B^{\prime}=2 \frac{f_{h}}{n}=\frac{2 B(n+k)}{n}=2 B\left(1+\frac{k}{n}\right)

从式可见,随着n的增大,趋向于2B,当n比较大时,式可简化为:fk=2B

三、实验要求

1、画出某连续时间信号时域波形及其幅度谱。

如:f(t)=\cos (100 * p i * t)+2 \sin (200 * p i * t)+3 \cos (300 * p i * t)

或者自己编写一信号,或者找某一语音信号

2、对信号进行抽样(可以理想抽样,可以周期窄矩形脉冲抽样),分别画出抽样频率为200Hz、300Hz、500Hz时抽样后信号时域波形。

3、对上述3种抽样频率下得到的抽样信号进行频谱分析,绘制幅度谱曲线,对比各抽样频率下抽样信号时域波形和幅度谱有无差异。

4、由各抽样信号恢复出连续时间信号,分别画出时域波形,计算并画出误差函数,并与原连续信号波形进行对比,总结不同抽样频率对信号恢复产生的影响。

四、实验内容

1、连续时间信号时域波形及其幅度谱

t=0:1/2000:0.1;
t1=0:1/200:2;
t2=0:1/300:2;
t3=0:1/500:2;

f=cos(100*pi*t)+2*sin(200*pi*t)+3*cos(300*pi*t);
f1=cos(100*pi*t1)+2*sin(200*pi*t1)+3*cos(300*pi*t1);
f2=cos(100*pi*t2)+2*sin(200*pi*t2)+3*cos(300*pi*t2);
f3=cos(100*pi*t3)+2*sin(200*pi*t3)+3*cos(300*pi*t3);

subplot(121)
plot(t,f);
xlabel('t');
title('f(t)的时域波形');


dt=0.0005;
N=10000;
k=-N:N;
W=pi*k/(N*dt);
subplot(122)
t = -1:dt:1;f=cos(100*pi*t)+2*sin(200*pi*t)+3*cos(300*pi*t);
F=dt*f*exp(-j*t'*W);
F=abs(F);
plot(W,F),grid on,
title('f(t)的幅度谱');

我们可以看到时域f(t)的时域波形图是一个周期函数。观察频谱,可以发现频谱结构是关于原点对称的谱线,因为是信号中有三种不同频率的正弦信号,其傅里叶变换是三种大小不一样的冲激函数。 

2、信号进行抽样

2.1理想抽样时域波形

t=0:1/20000:0.1;
t1=0:1/200:0.1;
t2=0:1/300:0.1;
t3=0:1/500:0.1;

f=cos(100*pi*t)+2*sin(200*pi*t)+3*cos(300*pi*t);
f1=cos(100*pi*t1)+2*sin(200*pi*t1)+3*cos(300*pi*t1);
f2=cos(100*pi*t2)+2*sin(200*pi*t2)+3*cos(300*pi*t2);
f3=cos(100*pi*t3)+2*sin(200*pi*t3)+3*cos(300*pi*t3);

 理想抽样可以得到一系列周期的抽样信号

2.2矩形脉冲抽样时域波形

dt=0.00005;
t = -1:dt:1;
f=cos(100*pi*t)+2*sin(200*pi*t)+3*cos(300*pi*t);

subplot(411)
plot(f);
xlabel('t');axis([0 4000 -4.1 4.1])
title('f(t)时域波形');


y1=(square(2*pi*200*t,10)+1)*0.5;
sample1=f.*y1;%Hz=200
subplot(412)
plot(sample1);
xlabel('t');axis([ 0 4000 -4.1 4.1])
title('f(t)200Hz矩形脉冲采样时域波形');

y2=(square(2*pi*300*t,10)+1)*0.5;
sample2=f.*y2;%Hz=300
subplot(413)
plot(sample2);
xlabel('t');axis([0 4000 -4.1 4.1])
title('f(t)300Hz矩形脉冲采样时域波形');

y3=(square(2*pi*500*t,10)+1)*0.5;
sample3=f.*y3;%Hz=300
subplot(414)
plot(sample3);
xlabel('t');axis([0 4000 -4.1 4.1])
title('f(t)500Hz矩形脉冲采样时域波形');

理想抽样往往是难以做到的,实际中我们通常是使用矩形脉冲抽样或者平顶脉冲抽样

3、频谱分析

3.1理想抽样频谱分析

设有一个最高频率小于f_H的信号,将这个信号和周期性单位冲激脉冲相乘,得到的就是理想抽样信号。即:

 m_{s}(t)=m(t) \delta_{T}(t)

从而可以得到

\begin{aligned} M_{s}(f) & =M(f)^{*} \Delta_{\Omega}(f) \\ & =\frac{1}{T_{\mathrm{s}}} \sum_{n=-\infty}^{\infty} M\left(f-n f f_{s}\right) \end{aligned}

figure(2),

N=10000;
k=-N:N;
W=pi*k/(N*dt);

dt=1/10000;t = -1:dt:1;f=cos(100*pi*t)+2*sin(200*pi*t)+3*cos(300*pi*t);
F=dt*f*exp(-j*t'*W);
F=abs(F);
subplot(221),plot(W,F),grid on,axis([-350*pi 350*pi 0 1]);
title('f(t)的幅度谱');

dt=1/200;t = -1:dt:1;f=cos(100*pi*t)+2*sin(200*pi*t)+3*cos(300*pi*t);
F=dt*f*exp(-j*t'*W);
F=abs(F);
subplot(222),plot(W,F),grid on,axis([-350*pi 350*pi 0 1]);
title('f(t)200Hz理想采样的幅度谱');

dt=1/300;t = -1:dt:1;f=cos(100*pi*t)+2*sin(200*pi*t)+3*cos(300*pi*t);
F=dt*f*exp(-j*t'*W);
F=abs(F);
subplot(223),plot(W,F),grid on,axis([-350*pi 350*pi 0 1]);
title('f(t)300Hz理想采样的幅度谱');

dt=1/500;t = -1:dt:1;f=cos(100*pi*t)+2*sin(200*pi*t)+3*cos(300*pi*t);
F=dt*f*exp(-j*t'*W);
F=abs(F);
subplot(224),plot(W,F),grid on,axis([-350*pi 350*pi 0 1]);
title('f(t)500Hz理想采样的幅度谱');

当抽样频率为200Hz、300Hz的时候发生了频谱混叠,因为抽样会造成信号的频域频谱搬移,但是因为采样信号频率\omega_{0} \leq \omega_{m},就会造成频谱的混叠,经过低通滤波器无法还原原本的信号。但是观察500Hz的采样信号,发现频谱搬移后没有发生混叠,经过低通滤波器可以复原信号。 

3.2矩形脉冲抽样频谱分析

|M_{s}(f)|=M(f)^{*} S(f)=\frac{A \tau}{T_{s}} \sum_{n=-\infty}^{\infty} S \mathrm{a}\left(\pi n f_{s} \tau\right) M\left(f-n f_{s}\right)​​​​​​​ 

也就是说抽样信号的频谱是原信号频谱的搬移,但是包络|M_s(f)|呈Sa形。 

dt=0.00005;
t = -1:dt:1;
f=cos(100*pi*t)+2*sin(200*pi*t)+3*cos(300*pi*t);

figure(1)
plot(t,f);
xlabel('t');
title('f(t)的时域波形');
axis([-0.1 0.1 0 3.1])
N=10000;
k=-N:N;
W=pi*k/(N*dt);

F=dt*f*exp(-j*t'*W);
F=abs(F);
figure(2),plot(W,F),grid on,axis([-350*pi 350*pi 0 1]);
title('f(t)的幅度谱');

y1=(square(2*pi*200*t,10)+1)*0.5;
sample1=f.*y1;%Hz=200
F1=dt*sample1*exp(-j*t'*W);F1=abs(F1);
figure(3)
plot(W,F1);
xlabel('\omega');
title('f(t)200Hz矩形脉冲采样后的幅度谱');

y2=(square(2*pi*300*t,10)+1)*0.5;
sample2=f.*y2;%Hz=300
F2=dt*sample2*exp(-j*t'*W);F2=abs(F2);
figure(4)
plot(W,F2);
xlabel('\omega');
title('f(t)300Hz矩形脉冲采样后的幅度谱');

y3=(square(2*pi*500*t,10)+1)*0.5;
sample3=f.*y3;%Hz=500
F3=dt*sample3*exp(-j*t'*W);F3=abs(F3);
figure(5)
plot(W,F3);
xlabel('\omega');
title('f(t)500Hz矩形脉冲采样后的幅度谱');

 

观察图形我们可以发现矩形脉冲抽样会是频谱的搬移,但是幅度会随着Sa函数的幅度变化,但只要抽样频谱足够高,不影响信号的恢复。

4、由各抽样信号恢复出连续时间信号,计算并画出误差函数

连续信号可以用抽样函数Sa(t)的无穷级数来表示,该级数的系数就是抽样值。

t=0:1/20000:2;
t1=0:1/200:2;
t2=0:1/300:2;
t3=0:1/500:2;

f=cos(100*pi*t)+2*sin(200*pi*t)+3*cos(300*pi*t);
f1=cos(100*pi*t1)+2*sin(200*pi*t1)+3*cos(300*pi*t1);
f2=cos(100*pi*t2)+2*sin(200*pi*t2)+3*cos(300*pi*t2);
f3=cos(100*pi*t3)+2*sin(200*pi*t3)+3*cos(300*pi*t3);

%信号重建

subplot(311)
dt=1/200;
ft=f1*dt*(310*pi)/pi*sinc(310*(ones(length(t1),1)*t-t1'*ones(1,length(t))));
error=abs(ft-f);
plot(t,error),grid on;
xlabel('\itt'),ylabel('\ite\rm(\itt\rm)');
title('\fontname{宋体}200Hz抽样重建信号与原信号的绝对误差');
set(gca,'Fontname', 'Times New Roman', 'FontSize',12);

%信号重建

subplot(312)
dt=1/300;
ft=f2*dt*(310*pi)/pi*sinc(310*(ones(length(t2),1)*t-t2'*ones(1,length(t))));
error=abs(ft-f);
plot(t,error),grid on;
xlabel('\itt'),ylabel('\ite\rm(\itt\rm)');
title('\fontname{宋体}300Hz抽样重建信号与原信号的绝对误差');
set(gca,'Fontname', 'Times New Roman', 'FontSize',12);

%信号重建
subplot(313)
dt=1/500;
ft=f3*dt*(310*pi)/pi*sinc(310*(ones(length(t3),1)*t-t3'*ones(1,length(t))));
error=abs(ft-f);
plot(t,error),grid on;
xlabel('\itt'),ylabel('\ite\rm(\itt\rm)');
title('\fontname{宋体}500Hz抽样重建信号与原信号的绝对误差');
set(gca,'Fontname', 'Times New Roman', 'FontSize',12);

观察四个时域波形,可以发现在200Hz和300Hz抽样时和原信号差距比较大,500Hz抽样时和原信号相差很小。我们绘制误差函数可以得到如下结果,因为我们只是截取了部分信号,所以不可避免会有频谱泄露现象,在信号开始和结束附近误差较大。总结:只有当采样频率\omega_{0}>\omega_{m}时,才能保证信号正常恢复,否则会造成频谱混叠。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/87685.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

非零基础自学Golang 第2章 安装和运行Go 2.5 安装开发工具

非零基础自学Golang 第2章 安装和运行Go 2.5 安装开发工具 互联网有很多可用的开发工具(IDE),对于Go开发者来说,选一款最好用的工具,可以更高效地编码和构建项目。 GoLand是一款由JetBrains公司(一家技…

【面试题】三面 面试官:运行 npm run xxx 的时候发生了什么?

大厂面试题分享 面试题库 前端面试题库 (面试必备) 推荐:★★★★★ 地址:前端面试题库 事情是这样的,直接开讲 面试官:npm run xxx的时候,发生了什么?讲的越详细越好。 我&am…

智能家居DIY之智能插座

WiFi智能插座对于新手接触智能家居产品更加友好,不需要额外购买网关设备 很多智能小配件也给我们得生活带来极大的便捷,智能插座就是其中之一,比如外出忘记关空调,可以拿起手机远程关闭。 简单说就是:插座可以连接wi…

深度学习的初学者用哪本书比较好的?

先推荐一本从基本概念和理论入手的深度学习书: 深度学习:从基础到实践(上、下册) 本书从基本概念和理论入手,通过近千张图和简单的例子由浅入深地讲解深度学习的相关知识,且不涉及复杂的数学内容。 本书分…

交叉梯度函数的MATLAB实现及代码分享01

交叉梯度函数的MATLAB实现及代码分享01 交叉梯度函数可用于反演成像中。作为一个连接不同物性参数的桥梁,交叉梯度函数可以实现不同物性参数的联合反演成像。 文章目录交叉梯度函数的MATLAB实现及代码分享01一、交叉梯度函数的定义二、交叉梯度函数的性质三、模型算…

14:30面试,14:38就出来了 ,问的实在是太...

从外包出来,没想到算法死在另一家厂子,自从加入这家公司,每天都在加班,钱倒是给的不少,所以也就忍了。没想到8月一纸通知,所有人不许加班,薪资直降30%,顿时有吃不起饭的赶脚。 好在有…

考虑特性分布的储能电站接入的电网多时间尺度源储荷协调调度策略(Matlab代码实现)

👨‍🎓个人主页:研学社的博客 💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜…

为什么mac电脑识别不出来u盘?macbook识别不了u盘的解决办法

为什么mac电脑识别不出来u盘?关于U盘插入Mac电脑无反应的情况有很多种,是电脑无法识别U盘?电脑上面没有U盘的图标?还是插入后无法对U盘进行写入?针对不同的情况,解决的方法也是不一样的。现在,我…

电脑重装系统一启动就黑屏了该怎么办

相信很多用户都遇到过电脑一开机就黑屏了的问题,对于这个问题很多用户不知道怎么去排查问题,这里就和大家简单聊聊遇到电脑开机黑屏这种情况都有什么原因,又该如何解决吧。下面一起来看看解决方法吧! 电脑一启动就黑屏的问题该如何…

一场没有先例的自动驾驶算法大赛,出结果了

贾浩楠 发自 凹非寺量子位 | 公众号 QbitAI自动驾驶领域没有先例的一场挑战赛,刚刚出结果。1067支队伍,整3个月时间主要在自动驾驶卡车、干线物流和自动驾驶轿车、城市道路双赛道场景下角逐。这也或是国内首次有干线物流赛道入赛,覆盖AEB紧急…

引擎入门 | Unity UI简介–第2部分(8)

本期我们继续为大家进行Unity UI简介(第二部分)的后续教程 本篇内容 14.静音功能 15.使用滑块来调节音量 16.更改AudioSource组件的音量 文章末尾可免费获取教程源代码 本篇本篇Unity UI简介(第二部分)篇幅较长,…

汇编移位指令SHR,SAR,SAL/SHL,ROR,ROL,RCR,RCL

目录 逻辑右移SHR 算数右移SAR(重点) 算数/逻辑左移SAL/SHL(完成的操作都一样) 循环右移ROR 循环左移ROL 带进位循环右移RCR 带进位循环左移RCL 总结 例题 一 二 移位指令为双操作数指令,用于将目的的操作数中的二进制数移位。 目…

【JAVA】强引用、软引用、弱引用、幻象引用有什么区别?

前言 在 Java 语言中,除了原始数据类型的变量,其他所有都是所谓的引用类型,指向各种不同的对象,理解引用对于掌握 Java 对象生命周期和 JVM 内部相关机制非常有帮助。 本篇博文的重点是,强引用、软引用、弱引用、幻象…

声纹识别--基础学习笔记

由于每个人的声道、口腔和鼻腔(发音要用到的器官)也具有个体差异性。因为反映到声音上,也是具有差异性的。就比如说,当在接电话的时候,通过一声"喂",就能准确的分辨出接电话的是谁,人耳作为身体的接收器生来…

Python学习基础笔记四十八——面向对象2

1、类中的属性:静态属性。 class Person:country China # 类属性,静态属性def __init__(self, name, age): # 初始化方法,self是必须传的参数,且放在在第一个self.name name # 往字典里添加属性self…

EVE-NG上互联网 使用cloud节点和NAT转发

EVE-NG上互联网 使用cloud节点和NAT转发一、配置一块进行NAT转发的网卡二、配置nat转发规则-iptables三、使能linux内核转发流量四、测试一、配置一块进行NAT转发的网卡 sudo vi /etc/network/interfaces 选择# Cloud devices下面的1个网卡,pnet1-pnet9任意一个都可…

电脑上如何进行屏幕录制,笔记本电脑录屏怎么录

电脑上如何进行屏幕录制?如果你在日常工作娱乐中有录屏的需求,并且想进一步了解电脑录屏的相关操作步骤,请认真看以下内容!小编会给大家分享几种简单的电脑录屏方法。 方法一:PPT屏幕录制 PPT想必大家都很熟悉&#x…

关于sysdiag的利用

背景 因为之前装了某绒,某绒又有一个比较好用的ark工具某绒🗡,想着应该有机会利用一下它的驱动。 接着在driver下面找到了它的驱动,简单分析了一下,发现有可以利用的ioctl。这里有duphandle,操作和之前的p…

操作系统学习笔记_5 IO;缓冲区

I/O 设备 I/O 设备分类 按使用特性分类 人机交互类外设:如鼠标打印机键盘等。数据传输慢。 存储设备:移动硬盘、光盘等,数据传输速率快。 网络通信设备:调制解调器等用于网络通信,速度中等。 按速率分类 低速设…

组合模式详解

简介:就是树状图结构的多个类 Component(抽象构件):它可以是接口或抽象类,为叶子构件和容器构件对象声明接口,在该角色中可以包含所有子类共有行为的声明和实现。在抽象构件中定义了访问及管理它的子构件的…