MATLAB 生成脉冲序列 pulstran函数使用详解
MATLAB 生成脉冲序列 pulstran函数使用详解
目录
前言
一、参数说明
二、示例一
三、示例二
总结
前言
MATLAB中的pulstran函数用于生成脉冲序列,支持连续或离散脉冲。该函数通过将原型脉冲延迟并相加,生成脉冲序列,适用于信号处理和系统分析。本文将一 一详细解释该函数中的每个参数的含义并列举多个仿真实例展示如何去使用这个函数。
以下是本篇文章的正文内容。创作不易,若您觉得有帮助,希望您能给博主打赏。这将是对我持续创作高质量内容的莫大鼓励,万分感谢!
一、参数说明
调用格式为 y = pulstran(t,d,func,fs) ,其中fs可以省略。
其中 t 是基本的时间向量,通常是一个等间隔的采样时间序列,由采样频率决定。
d=[d1 d2],d1是脉冲的延迟时间,表示脉冲在时间轴上的位置偏移,由脉冲重复频率决定,d2是脉冲的增益,表示脉冲的幅度缩放因子。
func是脉冲原型函数,脉冲默认的幅度值为1,如果使用关键字 'rectpuls' | 'gauspuls' | 'tripuls'的话,fs代表脉冲持续时间,如果是自己定义的序列函数,fs才代表采样频率。
二、示例一
本示例演示脉冲原型函数使用关键字 'rectpuls' | 'gauspuls' | 'tripuls'的用法。
fs=1e3; % 采样频率
T=60; % 持续时间
t = 0:1/fs:T; % 采样时刻
Tb=1; % 脉冲宽度
d1=0:Tb:T;
d2=sin(2*pi*0.05*(0:Tb:T)); % 幅值用sin加权,0.05Hz是正弦波频率
d = [d1;d2]';
y = pulstran(t-Tb/2,d,'rectpuls',Tb); % Tb/2是一个偏移量,用于调整脉冲的起始位置。
plot(t,y,'b','LineWidth',1.0);
hold on;
plot(0:Tb:T,d2,'r');
xlabel('Time (s)');
ylabel('Waveform');
grid on;
运行以上代码得下图,可见sin周期为20s,与0.05Hz对应;脉冲重复间隔为1s,与Tb对应;持续时间为60s,和T对应。

如果去掉sin加权,将其中一行代码改为:
d = [d1]';
那么结果如下图所示,脉冲全为1,就是一条蓝色的直线。

如果不加Tb/2的偏移,将其中一行代码改为
y = pulstran(t,d,'rectpuls',Tb); %不加Tb/2的偏移
结果如下图,就会导致每个脉冲在时间抽上偏移Tb/2,如第一个,我们希望其持续时间为Tb=1s,但现在只有0.5s,所以需要加偏移。

如果在调用函数时将脉冲宽度缩小一半,设置的Tb,调用函数却用Tb/2,即将其中一行代码改为:
y = pulstran(t-Tb/2,d,'rectpuls',Tb/2);
那么相应生成的脉冲就会缩小一半,另外半个周期就会为0,如下图所示。

另外,我们还可以使用其他脉冲,比如改为三角波脉冲,如下,那么就是正弦波对三角波脉冲进行加权。
fs=1e3; % 采样频率
T=60; % 持续时间
t = 0:1/fs:T; % 采样时刻
Tb=1; % 脉冲宽度
d1=0:Tb:T;
d2=sin(2*pi*0.05*(0:Tb:T)); % 幅值用sin加权,0.05Hz是正弦波频率
d = [d1;d2]';
y = pulstran(t-Tb/2,d,'tripuls',Tb); % Tb/2是一个偏移量,用于调整脉冲的起始位置。
plot(t,y,'b','LineWidth',1.0);
hold on;
plot(Tb/2:Tb:T,d2(1:end-1),'r');
xlabel('Time (s)');
ylabel('Waveform');
grid on;

三、示例二
本示例演示脉冲原型函数使用自定义的序列函数的用法。
ffs = 1e3; % 自定义原型脉冲采样频率
tp = 0:1/ffs:1;
pp = sin(2*pi*30*tp).*exp(-30*abs(tp)); % 自定义原型脉冲,频率和阻尼因子均为30
figure(1);
plot(tp,pp,'b','LineWidth',1.0)
xlabel('Time (s)');
ylabel('Waveform');
grid on;fs=2e3; % 采样频率
T=1.2; % 持续时间
t = 0:1/fs:T; % 采样时刻
Tb=1/3; % 脉冲宽度
d1=0:Tb:T;
d2=4.^-d1; % 幅值用指数加权
d = [d1;d2]';
y = pulstran(t,d,pp,ffs); % ffs是自定义原型脉冲采样频率
figure(2);
plot(t,y,'b','LineWidth',1.0);
xlabel('Time (s)');
ylabel('Waveform');
grid on;
代码首先自定义了一个原型脉冲为指数衰减的正弦波,然后用其生成脉冲,观察仿真结果可知结果和设置的参数是吻合的,这里需要注意,使用自定义的原型脉冲时,y = pulstran(t,d,pp,ffs);中 ffs是自定义原型脉冲采样频率,不再是脉冲宽度。

如果去掉参数d2,那么默认每个脉冲加权值均为1。
d = [d1]';

如果y = pulstran(t,d,pp,ffs);中参数ffs是与自定义原型脉冲采样频率不一致,就会压缩或者扩大原型脉冲,如下图所示。
y = pulstran(t,d,pp,ffs*2); %自定义原型脉冲采样频率的2倍

总结
以上就是本次分享的全部内容啦,创作不易,若您觉得有帮助,希望您能打赏,这将是对我持续创作高质量内容的莫大鼓励,万分感谢!本文详细介绍了pulstran函数的使用,介绍的东西对于大部分场景都是够用的,如果还有其他需要,请自行阅读matlab help界面学习。
相关文章:
MATLAB 生成脉冲序列 pulstran函数使用详解
MATLAB 生成脉冲序列 pulstran函数使用详解 目录 前言 一、参数说明 二、示例一 三、示例二 总结 前言 MATLAB中的pulstran函数用于生成脉冲序列,支持连续或离散脉冲。该函数通过将原型脉冲延迟并相加,生成脉冲序列,适用于信号处理和系统…...
开源、免费项目管理工具比较:2025最新整理30款
好用的开源、免费版项目管理系统有:1.Redmine;2. Taiga;3. OpenProject; 4.ProjectLibre; 5.GanttProject; 6.Tuleap; 7.Trac;8. Phabricator; 9.Notion; 10.…...
ffmpeg -muxers
1. ffmpeg -muxers -loglevel quiet 显示ffmpeg支持的复用器。复用器的作用是将多个独立的媒体流(如视频流、音频流、字幕流等)按照一定的格式和规则组合成一个单一的复合流;解复用器的作用与复用器相反,它将复合流分解为多个独立…...
设置mysql的主从复制模式
mysql设置主从复制模式似乎很容易,关键在于1)主库启用二进制日志,2)从库将主库设为主库。另外,主从复制,复制些什么?从我现在获得的还很少的经验来看,复制的内容有表,用户…...
ASP.NET Core的贫血模型与充血模型
目录 概念 需求 贫血模型 充血模型 总结 概念 贫血模型:一个类中只有属性或者成员变量,没有方法。充血模型:一个类中既有属性、成员变量,也有方法。 需求 定义一个类保存用户的用户名、密码、积分;用户必须具有…...
君海游戏岗位,需要私我
游戏岗位内推啦,需要找我哈 共14个职位 广告投放主管 社会招聘全国 广告投放 社会招聘全国 设计主管 社会招聘全国 海外投放 社会招聘广东省广州市 海外运营 社会招聘广东省广州市 产品运营专员 社会招聘广东省广州市 平台运营 社会招聘广东…...
IBM服务器刀箱Blade安装Hyper-V Server 2019 操作系统
案例:刀箱某一blade,例如 blade 5 安装 Hyper-V Server 2019 操作系统(安装进硬盘) 刀箱USB插入安装系统U盘,登录192.168... IBM BlandeCenter Restart Blande 5,如果Restart 没反应,那就 Power Off Blade 然后再 Power On 重启后进入BIOS界面设置usb存储为开机启动项 …...
Unity中实现动态图集算法
在 Unity 中,动态图集(Dynamic Atlas)是一种在运行时将多个纹理合并成一个大纹理图集的技术,这样可以减少渲染时的纹理切换次数,提高渲染效率。 实现原理: 动态图集的核心思想是在运行时动态地将多个小纹理…...
MySQL中的覆盖索引的使用
文章目录 1. 覆盖索引的定义2. 覆盖索引的工作原理2.1 索引和回表2.2 如何实现覆盖索引 3. 覆盖索引的优势4. 覆盖索引的限制5. 创建和优化覆盖索引5.1 分析查询模式5.2 确定需要覆盖的列5.3 创建复合索引5.4 使用覆盖索引优化查询5.5 避免过度索引5.6 索引整理与优化 6. 实际应…...
XML DOM
XML DOM XML DOM(Document Object Model)是一种用于访问和操作XML文档的标准方式。它提供了一种树形结构来表示XML文档,使得开发者能够方便地对XML数据进行读取、修改和操作。本文将详细介绍XML DOM的基本概念、结构、操作方法以及应用场景。 一、XML DOM的基本概念 XML …...
[开源]MaxKb+Ollama 构建RAG私有化知识库
MaxKbOllama,基于RAG方案构专属私有知识库 关于RAG工作原理实现方案 一、什么是MaxKb?二、MaxKb的核心功能三、MaxKb的安装与使用四、MaxKb的适用场景五、安装方案、 docker版Docker Desktop安装配置MaxKb安装和配置 总结和问题 MaxKB 是一款基于 LLM 大…...
迅为RK3568开发板篇OpenHarmony实操HDF驱动配置LED-LED测试
将编译好的镜像全部进行烧写,镜像在源码根目录 out/rk3568/packages/phone/images/目录下。 烧写完成之后,在调试串口查看打印日志,如下图所示: 然后打开 hdc 工具,运行测试程序,输入“led_test 1”&…...
将Mac上Python程序的虚拟环境搬到Windows
1. 导出Mac上Python虚拟环境的依赖 cd py && source venv/bin/activate && pip freeze > requirements.txt 2. 在Windows上创建一个新的虚拟环境 python -m venv venv 3. 激活虚拟环境 venv\Scripts\activate 4. 安装依赖 pip install -r requiremen…...
大语言模型评价 怎么实现去偏见处理
大语言模型评价 怎么实现去偏见处理 在训练大语言模型(LLMs)时,去偏处理对于避免模型学习到带有偏见的模式至关重要,以下从数据处理、模型训练、评估监测三个阶段介绍具体实现方法,并结合招聘场景进行举例说明: 数据处理阶段 数据清洗:仔细审查并剔除包含明显偏见的训练…...
3.React 组件化开发
react:版本 18.2.0node: 版本18.19.1脚手架:版本 5.0.1 一、类组件 (一) 一个干净的脚手架 【1】使用已经被废弃的 CRA (create-react-app) create-react-app 已经被废弃,且目前使用会报错,官方已经不推荐使用&…...
19vue3实战-----菜单子树的展示
19vue3实战-----菜单子树的展示 1.实现目标2.实现思路3.实现步骤3.1新建config配置文件3.2封装组件3.3使用组件 1.实现目标 如上,以上效果的难点是“在表格里面实现树形结构”。可以用element-plus框架中的table作为辅助: 可以自己查看文档了解怎么使用。 2.实现思路 上面的…...
【AI大模型】Ollama部署本地大模型DeepSeek-R1,交互界面Open-WebUI,RagFlow构建私有知识库
文章目录 DeepSeek介绍公司背景核心技术产品与服务应用场景优势与特点访问与体验各个DeepSeek-R系列模型的硬件需求和适用场景 Ollama主要特点优势应用场景安装和使用配置环境变量总结 安装open-webui下载和安装docker desktop配置镜像源安装open-webui运行和使用 RagFlow介绍主…...
JDK 17 和 JDK 21 在垃圾回收器(GC)上有什么优化?如何调整 GC 算法以提升应用性能?
JDK 17 和 JDK 21 在垃圾回收器(GC)上有什么优化?如何调整 GC 算法以提升应用性能? 本文将从 JDK 17 与 JDK 21 的垃圾回收改进出发,结合代码示例解析优化方案,并提供实际项目中的调优策略,帮助…...
CNN-GRU卷积神经网络门控循环单元多变量多步预测,光伏功率预测(Matlab完整源码和数据)
代码地址:CNN-GRU卷积神经网络门控循环单元多变量多步预测,光伏功率预测(Matlab完整源码和数据) CNN-GRU卷积神经网络门控循环单元多变量多步预测,光伏功率预测 一、引言 1.1、研究背景和意义 随着全球能源危机和环境问题的日…...
kotlin中expect和actual关键字修饰的函数作用
在 Kotlin 多平台编程中,expect 和 actual 关键字用于定义跨平台的抽象和具体实现。这种机制允许开发者声明一个平台无关的接口或函数签名(使用 expect),然后在每个目标平台上提供具体的实现(使用 actual)。…...
反向工程与模型迁移:打造未来商品详情API的可持续创新体系
在电商行业蓬勃发展的当下,商品详情API作为连接电商平台与开发者、商家及用户的关键纽带,其重要性日益凸显。传统商品详情API主要聚焦于商品基本信息(如名称、价格、库存等)的获取与展示,已难以满足市场对个性化、智能…...
高等数学(下)题型笔记(八)空间解析几何与向量代数
目录 0 前言 1 向量的点乘 1.1 基本公式 1.2 例题 2 向量的叉乘 2.1 基础知识 2.2 例题 3 空间平面方程 3.1 基础知识 3.2 例题 4 空间直线方程 4.1 基础知识 4.2 例题 5 旋转曲面及其方程 5.1 基础知识 5.2 例题 6 空间曲面的法线与切平面 6.1 基础知识 6.2…...
【android bluetooth 框架分析 04】【bt-framework 层详解 1】【BluetoothProperties介绍】
1. BluetoothProperties介绍 libsysprop/srcs/android/sysprop/BluetoothProperties.sysprop BluetoothProperties.sysprop 是 Android AOSP 中的一种 系统属性定义文件(System Property Definition File),用于声明和管理 Bluetooth 模块相…...
相机从app启动流程
一、流程框架图 二、具体流程分析 1、得到cameralist和对应的静态信息 目录如下: 重点代码分析: 启动相机前,先要通过getCameraIdList获取camera的个数以及id,然后可以通过getCameraCharacteristics获取对应id camera的capabilities(静态信息)进行一些openCamera前的…...
Python如何给视频添加音频和字幕
在Python中,给视频添加音频和字幕可以使用电影文件处理库MoviePy和字幕处理库Subtitles。下面将详细介绍如何使用这些库来实现视频的音频和字幕添加,包括必要的代码示例和详细解释。 环境准备 在开始之前,需要安装以下Python库:…...
ios苹果系统,js 滑动屏幕、锚定无效
现象:window.addEventListener监听touch无效,划不动屏幕,但是代码逻辑都有执行到。 scrollIntoView也无效。 原因:这是因为 iOS 的触摸事件处理机制和 touch-action: none 的设置有关。ios有太多得交互动作,从而会影响…...
Angular微前端架构:Module Federation + ngx-build-plus (Webpack)
以下是一个完整的 Angular 微前端示例,其中使用的是 Module Federation 和 npx-build-plus 实现了主应用(Shell)与子应用(Remote)的集成。 🛠️ 项目结构 angular-mf/ ├── shell-app/ # 主应用&…...
群晖NAS如何在虚拟机创建飞牛NAS
套件中心下载安装Virtual Machine Manager 创建虚拟机 配置虚拟机 飞牛官网下载 https://iso.liveupdate.fnnas.com/x86_64/trim/fnos-0.9.2-863.iso 群晖NAS如何在虚拟机创建飞牛NAS - 个人信息分享...
JDK 17 序列化是怎么回事
如何序列化?其实很简单,就是根据每个类型,用工厂类调用。逐个完成。 没什么漂亮的代码,只有有效、稳定的代码。 代码中调用toJson toJson 代码 mapper.writeValueAsString ObjectMapper DefaultSerializerProvider 一堆实…...
6.计算机网络核心知识点精要手册
计算机网络核心知识点精要手册 1.协议基础篇 网络协议三要素 语法:数据与控制信息的结构或格式,如同语言中的语法规则语义:控制信息的具体含义和响应方式,规定通信双方"说什么"同步:事件执行的顺序与时序…...
