信号与系统MATLAB实验:连续信号的采样与恢复

news2024/9/20 20:34:06

一、实验内容

(1)修改示例中的门信号宽度、采样周期等参数,重新运行程序,观察得到的采样信号时域和频域特性,以及重构信号与误差信号的变化。

示例1:选取门信号f(t)= g2(t)为被采样信号。利用MATLAB实现对信号f(t)的采样,显示原信号与采样信号的时域和频域波形。

% 显示原信号及其Fourier变换示例
R=0.02;%采样周期
t=-4:R:4;
f=rectpuls(t,4)
w1=2*pi*10; % 显示[-20*pi 20*pi]范围内的频谱
N=1000; % 计算出 2*1000+1 个频率点的值
k=0:N;
wk=k*w1/N;
F=f*exp(-j*t'*wk)*R; % 利用数值计算连续信号的 Fourier 变换
F=abs(F); % 计算频谱的幅度
wk=[-fliplr(wk),wk(2:1001)];
F=[fliplr(F),F(2:1001)]; % 计算对应负频率的频谱
figure;
subplot(2,1,1); plot(t,f);xlabel('t'); ylabel('f(t)');title('f(t)=u(t+1)-u(t-1)');
subplot(2,1,2); plot(wk,F);xlabel('w'); ylabel('F(jw)');
title('f(t)的 Fourier 变换');

%显示采样信号及其Fourier变换示例
R=0.24; % 可视为过采样
t=-4:R:4;
f=rectpuls(t,4);
w1=2*pi*10;
N=1000;
k=0:N;
wk=k*w1/N;
F=f*exp(-j*t'*wk); % 利用数值计算采样信号的 Fourier 变换
F=abs(F);
wk=[-fliplr(wk),wk(2:1001)]; % 将正频率扩展到对称的负频率
F=[fliplr(F),F(2:1001)]; %将正频率的频谱扩展到对称的负频率的频谱
figure;
subplot(2,1,1)
stem(t/R,f); % 采样信号的离散时间显示
xlabel('n'); ylabel('f(n)');
title('f(n)');
subplot(2,1,2)
plot(wk,F); % 显示采样信号的连续的幅度谱
xlabel('w'); ylabel('F(jw)');
title('f(n)的 Fourier 变换');

示例2:利用MATLAB实现对示例1中采样信号的重构,并显示重构信号的波形。

%采样信号的重构及其波形显示示例程序
Ts=0.24; % 采样周期,可修改
t=-3:Ts:3;
f=rectpuls(t,2); % 给定的采样信号
ws=2*pi/Ts;
wc=ws/2;
Dt=0.01;
t1=-3:Dt:3; % 定义信号重构对应的时刻,可修改
fa=Ts*wc/pi*(f*sinc(wc/pi*(ones(length(t),1)*t1-t'*ones(1,length(t1)))));
%信号重构
figure
plot(t1,fa);
xlabel('t'); ylabel('fa(t)');
title('f(t)的重构信号');
t=-3:0.01:3;
err=fa-rectpuls(t,2);
figure; plot(t,err);
sum(abs(err).^2)/length(err); % 计算重构信号的均方误差

示例3:通过频率滤波的方法,利用MATLAB实现对示例1中采样信号的重构,并显示重构信号的波形。

%采用频率滤波的方法实现对采样信号的重构
Ts=0.24; % 采样周期
t=-4:Ts:4;
f=rectpuls(t,2);
w1=2*pi*10;
N=1000;
k=0:N;
wk=k*w1/N;
F=f*exp(-j*t'*wk); % 利用数值计算连续信号的 Fourier 变换
wk=[-fliplr(wk),wk(2:1001)];
F=[fliplr(F),F(2:1001)];
Tw=w1/N; % 频率采样间隔
w=-2*pi*10:Tw:2*pi*10;
H=Ts*rectpuls(w,2.*pi/Ts); % 理想低通滤波器频率特性
%下面两行为可修改程序
%[b,a]=butter(M, Wc,'s'); % 确定系统函数的系数矢量,M, Wc 为设定滤波器的阶数和 3dB 截止频率
%H=Ts*freqs(b,a,w);
Fa=F.*H; % 采样信号通过滤波器后的频谱
Dt=0.01;
t1=-3:Dt:3;
fa=Tw/(2*pi)*(Fa*exp(j*wk'*t1));
% 利用数值计算连续信号的 Fourier 逆变换
figure
subplot(2,1,1) ; plot(t1,fa);xlabel('t');ylabel('fa(t)');title('f(t)的重构信号');
err=fa-rectpuls(t1,2);
subplot(2,1,2);plot(t1,err); xlabel('t');ylabel('err(t)');title('f(t)的重构误差信号');
sum(abs(err).^2)/length(err)

(2)将原始信号分别修改为抽样函数Sa(t)、正弦信号sin(20*pi*t)+cos(40*pi*t)、指数信号e-2tu(t)时,在不同采样频率的条件下,观察对应采样信号的时域和频域特性,以及重构信号与误差信号的变化。(选1-2个信号完成即可)

抽样函数Sa(t)
% 显示原信号及其 Fourier 变换示例
R=0.01;%采样周期
t=-3*pi:pi/100:3*pi;
f=sinc(t/pi);
w1=2*pi*10; % 显示[-20*pi 20*pi]范围内的频谱
N=1000; % 计算出 2*1000+1 个频率点的值
k=0:N;
wk=k*w1/N;
F=f*exp(-j*t'*wk)*R; % 利用数值计算连续信号的 Fourier 变换
F=abs(F); % 计算频谱的幅度
wk=[-fliplr(wk),wk(2:1001)];
F=[fliplr(F),F(2:1001)]; % 计算对应负频率的频谱
figure;
subplot(2,1,1); plot(t,f);xlabel('t'); ylabel('f(t)');title('f(t)=u(t+1)-u(t-1)');
subplot(2,1,2); plot(wk,F);xlabel('w'); ylabel('F(jw)');
title('f(t)的 Fourier 变换');

%显示采样信号及其 Fourier 变换示例
R=0.25; % 可视为过采样
t=-3*pi:pi/100:3*pi;
f=sinc(t/pi);
w1=2*pi*10;
N=1000;
k=0:N;
wk=k*w1/N;
F=f*exp(-j*t'*wk); % 利用数值计算采样信号的 Fourier 变换
F=abs(F);
wk=[-fliplr(wk),wk(2:1001)]; % 将正频率扩展到对称的负频率
F=[fliplr(F),F(2:1001)]; %将正频率的频谱扩展到对称的负频率的频谱
figure;
subplot(2,1,1)
stem(t/R,f); % 采样信号的离散时间显示
xlabel('n'); ylabel('f(n)');
title('f(n)');
subplot(2,1,2)
plot(wk,F); % 显示采样信号的连续的幅度谱
xlabel('w'); ylabel('F(jw)');
title('f(n)的 Fourier 变换');

%采样信号的重构及其波形显示示例程序
Ts=0.24; % 采样周期,可修改
t=-3*pi:pi/100:3*pi;
f=sinc(t/pi); % 给定的采样信号
ws=2*pi/Ts;
wc=ws/2;
Dt=0.01;
t1=-3:Dt:3; % 定义信号重构对应的时刻,可修改
fa=Ts*wc/pi*(f*sinc(wc/pi*(ones(length(t),1)*t1-t'*ones(1,length(t1)))));
%信号重构
figure
plot(t1,fa);
xlabel('t'); ylabel('fa(t)');
title('f(t)的重构信号');
t=-3:0.01:3;
err=fa-rectpuls(t,2);
figure; plot(t,err);
sum(abs(err).^2)/length(err); % 计算重构信号的均方误差

正弦信号sin(20*pi*t)+cos(40*pi*t)
% 显示原信号及其 Fourier 变换示例
R=0.01;%采样周期
A=1; w2=20*pi;w3=40*pi;
t=0:0.01:8;
f=A*sin(w2*t)+A*cos(w3*t);
w1=2*pi*10; % 显示[-20*pi 20*pi]范围内的频谱
N=1000; % 计算出 2*1000+1 个频率点的值
k=0:N;
wk=k*w1/N;
F=f*exp(-j*t'*wk)*R; % 利用数值计算连续信号的 Fourier 变换
F=abs(F); % 计算频谱的幅度
wk=[-fliplr(wk),wk(2:1001)];
F=[fliplr(F),F(2:1001)]; % 计算对应负频率的频谱
figure;
subplot(2,1,1); plot(t,f);xlabel('t'); ylabel('f(t)');title('f(t)=u(t+1)-u(t-1)');
subplot(2,1,2); plot(wk,F);xlabel('w'); ylabel('F(jw)');
title('f(t)的 Fourier 变换');

%显示采样信号及其 Fourier 变换示例
R=0.23; % 可视为过采样
A=1; w2=20*pi;w3=40*pi;
t=0:0.01:8;
f=A*sin(w2*t)+A*cos(w3*t);
w1=2*pi*10;
N=1000;
k=0:N;
wk=k*w1/N;
F=f*exp(-j*t'*wk); % 利用数值计算采样信号的 Fourier 变换
F=abs(F);
wk=[-fliplr(wk),wk(2:1001)]; % 将正频率扩展到对称的负频率
F=[fliplr(F),F(2:1001)]; %将正频率的频谱扩展到对称的负频率的频谱
figure;
subplot(2,1,1)
stem(t/R,f); % 采样信号的离散时间显示
xlabel('n'); ylabel('f(n)');
title('f(n)');
subplot(2,1,2)
plot(wk,F); % 显示采样信号的连续的幅度谱
xlabel('w'); ylabel('F(jw)');
title('f(n)的 Fourier 变换');

%采样信号的重构及其波形显示示例程序
Ts=0.24; % 采样周期,可修改
A=1; w2=20*pi;w3=40*pi;
t=0:0.01:8;
f=A*sin(w2*t)+A*cos(w3*t); % 给定的采样信号
ws=2*pi/Ts;
wc=ws/2;
Dt=0.01;
t1=-3:Dt:3; % 定义信号重构对应的时刻,可修改
fa=Ts*wc/pi*(f*sinc(wc/pi*(ones(length(t),1)*t1-t'*ones(1,length(t1)))));
%信号重构
figure
plot(t1,fa);
xlabel('t'); ylabel('fa(t)');
title('f(t)的重构信号');
t=-3:0.01:3;
err=fa-rectpuls(t,2);
figure; plot(t,err);
sum(abs(err).^2)/length(err); % 计算重构信号的均方误差

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

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

相关文章

搭建超好用的个人网盘

目录 前言filebrowser下载地址介绍优点缺点部署效果 cloudreve官网介绍优点缺点部署效果 总结 前言 目前我使用过的文件存储管理软件,包括fastdfs、minio、filebrowser、cloudreve,这4款软件,我自己亲自搭建且都使用过,fastdfs很…

Datawhale X 魔搭 AI夏令营第四期 AIGC方向 task02笔记

AI工具使用 1. baseline 代码2. 使用通义千问理解代码2.1 工作流程2.2 逐行释意 3. 使用通义千问生成 Prompt3.1 生成的 Prompt3.1 根据 Prompt 生成的图片 1. baseline 代码 !pip install simple-aesthetics-predictor!pip install -v -e data-juicer!pip uninstall pytorch-…

docker的基本管理和应用

1、概念 docker是一个开源的应用容器引擎,基于go语言开发的。 docker是运行在linux的容器化工具,可以理解为轻量级的虚拟机。 可以在任何主机上轻松创建的一个轻量级、可移植的、自给自足的容器 2、设计的理念 鲸鱼——宿主机 集装箱——独立运行的…

07:【stm32】中断一:NVIC的配置

中断 1、中断的简介1.1、什么是中断1.2、为什么需要中断 2、中断的优先级2.1、中断优先级的表示方法 3、NVIC3.1、什么的NVIC3.2、NVIC的内部结构3.3、中断向量表3.4、程序实现①开启中断源②配置NVIC③中断响应函数 1、中断的简介 1.1、什么是中断 正在进行的事务被突发事件打…

1688商品详情API返回值中的供应商信息

在使用1688(阿里巴巴中国站)的商品详情API时,API的返回值中通常会包含丰富的产品信息,包括供应商(卖家)的信息。不过,具体的返回值内容可能会根据API的版本、调用参数以及API的更新情况有所不同…

什么是国际网络组网?

国际网络组网是指通过互联网技术将全球各地的不同网络相互连接,以实现信息交换与资源共享的过程。在这一过程中,涉及到数据传输、协议转换、跨网络通信等多个技术领域,旨在实现全球信息的无缝互联互通。国际网络组网的主要目标是扩大网络覆盖…

半导体RFID识别系统134.2K低频读写器|读写头JY-V610之SECS协议通信说明

什么是SECS协议? SECS(Semiconductor Equipment Communication Standard)协议是半导体设备通讯标准,用来统一各个生产设备之间以及生产设备和控制设备之间的通讯,由SEMI(Semiconductor Equipment and Mate…

手搓滑动窗口

前言&#xff1a;好久没写滑动窗口&#xff0c;导致一些边界问题处理不好&#xff0c;back和top的初始值都搞不好 #include<bits/stdc.h> using namespace std;const int N (int)1e65; int n,m; int a[N],b[N]; int back,top;int main(){cin >> n >> m;for(…

【前端设计方案】H5 图片懒加载 SDK

实现思路 定义<img srcloading.png data-srcxxx.png/>页面滚动&#xff0c;图片露出时&#xff0c;将 data-src 赋值给 src 注意事项&#xff1a;滚动要节流 技术要点 获取图片的位置 elem.getBoundingClientRect() 图片 top < window.innerHeight 时&#xff0c;图片…

【学习笔记】爱立信SPO 1400 CRAFT软件基础知识9——Bridge(网桥)显示参数

一、前期准备 条件1.确认已正确使用爱立信SPO 1400 CRAFT软件通过网络登录设备&#xff08;以下简称NE&#xff09; 具体登录教程参考&#xff1a;使用爱立信SPO 1400 CRAFT软件通过网络登录设备的详细过程 二、学习内容&#xff1a; 提示&#xff1a;学习爱立信SPO 1400 CRA…

阿里员工:33岁,房贷还剩223万,每月还1.5W,失业中

中年失业 中年失业&#xff0c;真的很难。 虽然人到中年&#xff0c;一般多少都会有些储蓄&#xff0c;但也意味着会有更多的支出。 最近&#xff0c;一位阿里员工&#xff08;这会可能是前阿里员工了&#xff09;在社区分享到自己的经历。 贴主 33 岁&#xff0c;作为已结婚有…

搬瓦工日本软银线路VPS测评

搬瓦工日本VPS支持softbank/软银&#xff0c;Japan: Osaka (Softbank) &#xff0c;网络在2.5Gbps-10Gbps之间&#xff0c;底层为KVM虚拟、纯SSD阵列、支持在多机房之间切换。搬瓦工软银来国内的网络情况怎么样&#xff1f;测评数据大致如下&#xff1a; CPU具体型号不知道&…

深入了解指针(6)

文章目录 1.函数指针数组2.转移表3.回调函数 1.函数指针数组 存放函数指针的数组 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> int add(int x, int y) {return x y; } int sub(int x, int y) {return x - y; }int main() {int (*p1)(int x, int y) add;int (…

基于python的百度迁徙迁入、迁出数据分析(八)

副标题&#xff1a;从百度迁徙数据看——重大公共卫生事件的影响 先来回顾一下&#xff0c;迁徙规模指数定义&#xff1a;反映迁入或迁出人口规模&#xff0c;城市间可横向对比。 2019年—2022年的部分春运数据已经不可查&#xff0c;用的环哥的数据&#xff0c;可参考环哥的…

LVS原理及相关配置

1. 描述以及工作原理 1. 什么是 LVS linux virtural server 的简称&#xff0c;也就是 linxu 虚拟机服务器&#xff0c;这是一个 由章文嵩博士发起的开源项目&#xff0c;官网是 http://www.linuxvirtualserver.org,现在 lvs 已经是 linux 内核标 准的一部分&#xff0c;使用…

用python的manim库实现表格格式操作【table 下】

1.Table 是 Manim 中用于创建一个包含文本或其他 数学符号的表格的类 Table 是 Manim 中用于创建一个包含文本或其他 数学符号的表格的类它能够帮助你在场景中清晰地展示数据或信息。 参数解释 table: 一个二维数组或列表&#xff0c;表示表格中的内容。每个子列表代表表格的…

zigbee笔记:十一、设备网络类型展示与按键实验

一、设备网络类型展示 利用开发板上的三个LED灯来显示设备当前的网络类型&#xff08;协调器、路由器、终端&#xff09;。 1、添加LED灯的初始化代码 1&#xff09;开发板LED原理图 2&#xff09;在模板工程的...Projects\zstack\Samples\smartHomeApp\Source目录下新建两个文…

【TabBar嵌套Navigation案例-发现页面-按钮上的图片旋转 Objective-C语言】

一、接下来,我们来做这个,点击以后,让它出一个蓝色的View 1.就是我们示例程序的这种效果, 一点击,让这个按钮旋转,然后呢,再让它出来一个蓝色的View, 首先,我们要去监听它的点击事件,这是第一,我点击以后,我要做一些什么样的操作,要有点击事件, 所以呢,我要把…

Processing中库和导出PDF内容

一.库 1.使用库的方式 从菜单栏&#xff08;Sketch Menu)选择导入库(import labrary),选择一个我们要添加或者成需要用到的库。 例如&#xff1a;当我们需要添加PDF扩展库时&#xff0c;需要将下面这段代码添加到草图中。 import processing.pdf.*; 除了processing里的库&…

ElasticSearch聚合操作详解

文章目录 聚合操作聚合的分类测试数据Metric AggregationBucket Aggregation获取job的分类信息限定聚合范围Range & Histogram聚合聚合嵌套 Pipeline Aggregation聚合的作用范围排序ES聚合分析不精准原因分析聚合性能优化启用 eager global ordinals 提升高基数聚合性能插入…