MATLAB信号处理之信号的采样

所谓模拟信号的数字信号处理方法就是将待处理模拟信号经过采样、量化、编码形成数字信号,并利用数字信号处理方法对采样得到的数字信号进行处理。
下面我们来看一下对模拟信号采样的具体代码

f=200;               %信号频率为200Hz
t=(0:0.0001:0.1);    %定义信号的时间范围
x=cos(2*pi*f*t);     %生成信号

fs=800;              %采样频率为800Hz
N=80;                %定义采样点数
dt=1/fs;             %采样间隔,采样间隔其实就可以理解为是采样信号的周期,周期=1/频率
T=(0:N-1)*dt;        %定义采样的每个时间点
x1=cos(2*pi*f*T);    %对信号进行采样


subplot(311);
plot(t,x);
ylim([-1 1])
title('原始信号')
subplot(312)
plot(t,x,T,x1,'rp');
ylim([-1 1]);
title('采样过程')

subplot(313)
plot(T,x1);
ylim([-1 1])
xlabel('时间/s')
title('采样后的信号')


上面我们设定的采样频率和采样点数分别为800和80,他俩比值为10,在这里设定比值为10是为了在绘制采样过程那个图形时,让采样信号的最后一个采样点等于原始信号的最后一个时间点,以便显示的图形更加美观,我们也可以这样写

fs=800;           %采样频率为800Hz
dt=1/fs;          %采样间隔,采样间隔其实就可以理解为是采样信号的周期,周期=1/频率
T=0:dt:0.1;       %定义采样的每个时间点
x1=cos(2*pi*f*T); %对信号进行采样

在这里我们略去了采样点数,直接让采样的最后一个时间点和原始信号的最后一个时间点一样,以便绘图更加美观
其实关于采样频率和采样点数的关系还是有一点门道的,他俩的比值决定了频率的分辨率,等我再深入了解一下再专门写一篇博客介绍一下。

注:上图中所画的第三个图,也就是采样后的信号图,它不是由采样信号恢复到原信号所形成的信号,它只不过是把各个采样点给连接了起来而已,对于上面代码而言,原始信号为200Hz,采样信号为800Hz,800>200*2,由采样定理可知,我们所采取的采样频率可以恢复出原信号的波形,只不过在这里我们并没有写由采样信号恢复原信号的代码。

当然我们也可以用stem()函数来绘制采样图

f=20;                  %信号频率为20Hz
t=(0:0.0001:0.1);      %定义信号的时间范围
x=cos(2*pi*f*t);       %生成信号

fs=400;                %采样频率为400Hz
dt=1/fs;               %采样间隔,采样间隔其实就可以理解为是采样信号的周期,周期=1/频率
T=0:dt:0.1;            %定义采样的每个时间点
x1=cos(2*pi*f*T);      %对信号进行采样

subplot(211)
plot(t,x)
subplot(212)
stem(T,x1)

版权声明:本文为qq_36554582原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_36554582/article/details/81663425

智能推荐

Linux:结合Securecrt进行文件上传(lrzsz)P2

1、安装rzsz软件   2、点击Scurecrt的option——X/Y/Z配置上传和下载目录   3、首先在Linux里切换到一个目录,然后用rz命令,文件就会上传到钙Linux的目录下   只要敲rz即可,然后在弹出的对话框里选择需要上传的文件即可 4、下载文件用sz   下载单个文件:在当前目录下有该文件     sz filename   下载...

SQL 提示作为 布局 生存工具指南

下面是一些展示AdventureWorks中表现最好的销售人员并列出他们的经理的结构化查询语言代码。 它产生以下结果。 所以,代码是有效的,但它是丑陋的。 如果我需要理解和改进代码,我首先需要把它变成可读的形式。 我有结构化查询语言提示,所以我可以按下计算机的ctrl按键键 踢你自己),它会应用默认的内置代码样式,并对此进行修复。 不,不是,因为我相信你仍然不喜欢它的格式。 没有两个开发人员能够就...

Vue+Springboot解决数据传输时参数格式不匹配问题

前端:使用的是ant design vue ,端口号为8000 后端:使用的是springboot框架开发,端口号为8080 需求:已经解决跨域问题,前端发送登录的信息给后台,后台接收不到 样例: 前端: 后台: 请求的数据格式为json格式,后台参数类型不匹配 解决方案 第一种: 修改后端,参数类型: 第二种方式: 在前端vue框架中加入qs插件,qs 是一个增加了一些安全性的查询字符串解析和序...

Flex布局做出自适应页面--语法和案例

本文发布在: github项目地址:https://github.com/tenadolanter/flex-layout-demo SegmentFault地址:https://segmentfault.com/a/1190000012916949/ CSDN地址:http://blog.csdn.net/qq_34648000/article/details/79115294 博客园地址:ht...

Java - 基于 Apache POI 创建 Excel 文件

基于 Apache POI 创建 Excel 文件 准备 新建 Maven Project,引入依赖: 创建行和列 设置列宽 设置列宽(第 19 行): 注意:其他行的首列的宽度是受第一行、第一列的影响而变宽,并非我们设置的。 设置字体颜色 设置字体颜色(第 25 ~ 31 行): 设置网页超链接 设置网页超链接(第 18、27 ~ 29 行): 参考 java操作excel常用的两种方式...

猜你喜欢

python基础-质数判断及优化

文章目录 一、问题描述 二、代码 三、问题2优化 四、数学补充 一、问题描述 质数判断条件: 质数是只能被1和它自身整除的数,1不是质数也不是合数。 二、代码 问题1代码 问题2代码 三、问题2优化 优化方案: 模块,通过模块可以对Python进行扩展 引入一个time模块,来统计程序执行的时间 time()函数可以用来获取当前的时间,返回的单位是秒 获取程序开始的时间,以运行时间来衡量优化结果。...

部署jenkins+svn持续集成

部署环境:CentOS7+jdk8 svn版本是windows,jenkins是linux 然后下载jenkins的yum源文件,获取jenkins的下载** 输入本机ip+端口,然后在这个web界面显示的路径里把**复制出来,下一步后选择推荐插件安装,后面需要用的插件可以再安装,等待安装完成后,第一次登陆不需要密码,可以设置登陆用户。 然后配置全局设置 如果你是yum安装得git,按照我得写,如...

7 パズル 反向BFS

题目 题意:7数码问题。在2×4的棋盘上,摆有7个棋子,每个棋子上标有1至7的某一数字,不同棋子上标的数字不相同。棋盘还有一个空格(用0表示),与空格相邻(上下左右)的棋子可以移到空格中,该棋子原先位置成为空格。给出一个初始 (保证可以转移到最终状态),找出一种从初始状态转变成给定最终状态的移动棋子步数最少的移动步骤。 输入:多组输入,每组8个数,表示初始状态前四个数为第一行从左到右,...

代理模式真得这么简单

代理模式真得这么简单 代理模式的定义 为另一个对象提供一个替身或占位符以控制对这个对象的访问 代理模式类图 简单描述就是真实对象,RealSubject,和代理对象,Proxy实现同一个接口Subect,并且代理对象Proxy持有真实对象的引用 静态代理实例 GumballMachine,作为真实对象 GumballMonitor,作为代理对象,控制对真实对象的访问 Main函数 动态代理实例 j...

Unity 之 导出为Android工程及在AndroidStudio中使用记录

Unity 之 导出为Android工程及在AndroidStudio中使用记录 一,从Unity工程导出为Android工程 二,将导出工程在AS打开,并调试其编译通过 三,Unity和Android的互调 本文使用环境::win10 + Unity2017.3.1 + Android4.1.1 请自行配置好JDK 和 NDK 环境变量 一,从Unity工程导出为Android工程 打开需要导出...