当前位置: 首页 > news >正文

21、matlab生成脉冲序列:pulstran()函数

1、pulstran()函数

1)语法

语法1:y = pulstran(t,d,func,fs)  基于连续函数的采样产生脉冲序列。
语法2:y = pulstran(t,d,p) 生成一个脉冲序列,该脉冲序列是向量p中原型脉冲的多个延迟插值的总和。
语法3:y = pulstran(,intfunc) 指定可选的插值方法,可以将此参数与前面的任何输入语法一起使用。

2)参数

t:时间    d:抵消    func:连续函数    p:原型脉冲    fs:采样率    intfunc:插值法

2、周期性矩形脉冲

代码

t = 0:0.001:60;
d = [0:2:60;sin(2*pi*0.05*(0:2:60))]';
x = @rectpuls;
y = pulstran(t,d,x);
plot(t,y)
hold off
xlabel('s/时间')
ylabel('幅值')

试图效果

 

 

3、不对称锯齿波形

代码

fs = 2e3;
t = 0:1/2e3:1;
d = 0:1/3:1;   
x = tripuls(t,0.2,-1);
y = pulstran(t,d,x,fs);
plot(t,y)
hold off
xlabel('s/时间')
ylabel('幅值')

视图效果

4、 周期高斯脉冲

1)单个高斯脉冲

代码

fs = 2e7;
tc = gauspuls('cutoff',10e3,0.5,[],-40); 
t = -tc:1/fs:tc; 
x = gauspuls(t,10e3,0.5); 
plot(t,x)
xlabel('s/时间')
ylabel('幅值')

视图效果 

2)高斯脉冲序列

代码

fs = 2e7;
tc = gauspuls('cutoff',10e3,0.5,[],-40); 
t = -tc:1/fs:tc; 
x = gauspuls(t,10e3,0.5); 
% plot(t,x)
% xlabel('s/时间')
% ylabel('幅值')
ts = 0:1/50e3:0.025;
d = [0:1/1e3:0.025;sin(2*pi*0.1*(0:25))]';
y = pulstran(ts,d,x,fs);
plot(ts,y)
xlim([0 0.01])
xlabel('s/时间')
ylabel('幅值')

视图效果 

 

 5、定制脉冲序列

1)单个脉冲

代码

fx1 = @(x,fn) sin(2*pi*fn*x).*exp(-fn*abs(x));%函数句柄
ffs = 1000;
tp = 0:1/ffs:1;
pp = fx1(tp,30);
plot(tp,pp)
xlabel('s/时间')
ylabel('幅值')

试图效果

2)脉冲序列1

代码

fx1 = @(x,fn) sin(2*pi*fn*x).*exp(-fn*abs(x));%函数句柄
ffs = 1000;
tp = 0:1/ffs:1;
pp = fx1(tp,30);
plot(tp,pp)
xlabel('s/时间')
ylabel('幅值')fs = 2e3;
t = 0:1/fs:1.2;
d = 0:1/3:1;
dd = [d;4.^-d]';
z = pulstran(t,dd,pp,ffs);
plot(t,z)
xlabel('s/时间')
ylabel('幅值')

视图效果 

3)脉冲序列2 

代码

fx1 = @(x,fn) sin(2*pi*fn*x).*exp(-fn*abs(x));%函数句柄
ffs = 1000;
tp = 0:1/ffs:1;
pp = fx1(tp,30);
plot(tp,pp)
xlabel('s/时间')
ylabel('幅值')fs = 2e3;
t = 0:1/fs:1.2;
d = 0:1/3:1;
dd = [d;4.^-d]';
z = pulstran(t,dd,pp,ffs);
plot(t,z)
xlabel('s/时间')
ylabel('幅值')y = pulstran(t,dd,fx1,30);
plot(t,y)
xlabel('s/时间')
ylabel('幅值')

视图效果

6、改变插值方法与自定义脉冲

 1)单脉冲

代码

fnx = @(x,fn) sawtooth(2*pi*fn*0.25*x).*exp(-2*fn*x.^2);
fs = 100;
t = 0:1/fs:1;
pp = fnx(t,50);
plot(t,pp)
xlabel('s/时间')
ylabel('幅值')

视图效果

  2)插值脉冲序列(nearest和pchip)

代码

fnx = @(x,fn) sawtooth(2*pi*fn*0.25*x).*exp(-2*fn*x.^2);
fs = 100;
t = 0:1/fs:1;
pp = fnx(t,50);
plot(t,pp)
xlabel('s/时间')
ylabel('幅值')d = [0:25:125; exp(-0.015*(0:25:125))]';
ffs = 100;
tp = 0:1/ffs:125;
r = pulstran(tp,d,pp);
y = pulstran(tp,d,pp,'nearest');
q = pulstran(tp,d,pp,'pchip');
plot(tp,r)
hold on
plot(tp,y)
plot(tp,q)
xlim([0 125])
legend('默认','nearest','pchip')

试图效果:

 

相关文章:

  • thinkpad T440p ubuntu-slam软件安装记录
  • 【前端 - Vue】Vuex基础入门,创建仓库的详细步骤
  • 【Ambari】Docker 安装Ambari 大数据单机版本
  • vscode+latex设置跳转快捷键
  • PhpSpreadsheet表格导出
  • 一种基于高德Web API实现沿路画面的实现
  • 54.WEB渗透测试-信息收集- 端口、目录扫描、源码泄露(2)
  • 从 URL 中获取数据并创建列表解析
  • ch5链路层和局域网
  • java基础filter servlet interceptor controller之间的关系
  • Python 怎么注释大段
  • 操作失败——后端
  • 华为、华三交换机、路由器启用基于端口的环回检测功能配置
  • Python怎么翻译:探索Python在翻译领域的无限可能
  • gitlab将本地文件项目上传至gitlab服务
  • [iOS]Core Data浅析一 -- 启用Core Data
  • 4个实用的微服务测试策略
  • Angularjs之国际化
  • css布局,左右固定中间自适应实现
  • input实现文字超出省略号功能
  • Linux Process Manage
  • PHP 7 修改了什么呢 -- 2
  • Shell编程
  • SpingCloudBus整合RabbitMQ
  • 蓝海存储开关机注意事项总结
  • 使用Envoy 作Sidecar Proxy的微服务模式-4.Prometheus的指标收集
  • 试着探索高并发下的系统架构面貌
  • 收藏好这篇,别再只说“数据劫持”了
  • 数据科学 第 3 章 11 字符串处理
  • 用Node EJS写一个爬虫脚本每天定时给心爱的她发一封暖心邮件
  • 如何正确理解,内页权重高于首页?
  • ​无人机石油管道巡检方案新亮点:灵活准确又高效
  • #13 yum、编译安装与sed命令的使用
  • #android不同版本废弃api,新api。
  • #我与Java虚拟机的故事#连载17:我的Java技术水平有了一个本质的提升
  • (2)STM32单片机上位机
  • (5)STL算法之复制
  • (C语言版)链表(三)——实现双向链表创建、删除、插入、释放内存等简单操作...
  • (LeetCode) T14. Longest Common Prefix
  • (博弈 sg入门)kiki's game -- hdu -- 2147
  • (力扣题库)跳跃游戏II(c++)
  • (十三)Maven插件解析运行机制
  • (转)Groupon前传:从10个月的失败作品修改,1个月找到成功
  • (转)Sql Server 保留几位小数的两种做法
  • ***linux下安装xampp,XAMPP目录结构(阿里云安装xampp)
  • *上位机的定义
  • .NET 8.0 中有哪些新的变化?
  • .net反混淆脱壳工具de4dot的使用
  • .Net开发笔记(二十)创建一个需要授权的第三方组件
  • .NET文档生成工具ADB使用图文教程
  • /*在DataTable中更新、删除数据*/
  • /使用匿名内部类来复写Handler当中的handlerMessage()方法
  • ::before和::after 常见的用法
  • @Transactional注解下,循环取序列的值,但得到的值都相同的问题
  • [2013][note]通过石墨烯调谐用于开关、传感的动态可重构Fano超——