线性调频函数与方波函数

  1. 线性调频函数
    在MATLAB中,产生线性调频扫频信号的函数chirp,其调用格式如下:

    1. y=chirp(t,f0,t1,f1):产生一个线性(频率随时间线性变化)信号,其时间轴由数组t定义。时刻t0的瞬时频率为f0时刻,时刻t1的瞬时频率为f1。默认情况下:f0=0Hz,t1=1,发=100Hz

    2. y=chirp(t,f0,t1,f1,‘method’):指定改变扫频的方法,可用的扫频的方法有’linear’(线性扫频)、‘quadratic’(二次扫频)和’logarithmic’(对数扫频);默认时为’linear’。注意:对于对数扫频,必须有f1>f0。

    3. y=chirp(t,f0,t1,f1,‘method’,phi):指定信号的初始相位为phi(单位为度),默认phi=0。

    4. y=chirp(t,f0,t1,f1,‘quadratic’,phi,‘shape’):根据指定的方法在时间t上产生余弦扫频信号,f0为第一时刻的瞬时频率,f1为t1时刻的瞬时频率,f0和f1单位都为Hz。如果未指定,f0默认为e-6(对数扫描方法)或0(其他扫频方法),t1为1,f1为100Hz。

    5. phi允许指定一个初始相位(以deg为单位),默认为0,如果想忽略此参数,直接设置后面的参数,可以将此参数指定为0或[];shape指定二次扫频方法的抛物线的形状,凹还是凸其值为concave或convex,如果此信号被忽略,则根据f0和f1的相对大小决定是凹还是凸。

       clear;t = 0:0.01:2;y = chirp(t,0,1,120);plot(t,y);axis([0,1,0,1]);ylabel('x(t)');xlabel('t');grid on;
      

  2. 方波函数
    在MATLAB中,使用函数square得到方波函数,该函数的调用格式为:

    1. x=square(t):类似于sin(t),产生周期为2*pi,幅值为1的方波

    2. x=square(t,duty):产生指定周期的矩形波,其中duty用于指定脉冲宽度与整个周期的比例。

       %一个连续的周期性矩形的信号频率为6KHz,信号幅度在0~3V之间,%脉冲宽度与周期的比例为1:4,要求在窗口上显示其2个周期的信号波形,%并对信号的1个周期进行15点采样来获得离散信号,显示原连续信号与采样获得的离散信号.clear all;f = 6000;nt = 3;N = 15;T = 1/f;dt = T/N;n = 0:nt * N - 1;tn = n * dt;x = square(2 * f * pi * tn,25) + 1;%产生时域信号,且幅度在0~2之间subplot(2,1,1);stairs(tn,x,'k');axis([0 nt*T 1.1*min(x) 1.1*max(x)])ylabel('x(t)');subplot(2,1,2);stem(tn,x,'filled','k');axis([0 nt*T 1.1*min(x) 1.1*max(x)])ylabel('x(n)');
      

随机函数与三角波函数

  1. 随机函数
    在MATLAB中,函数rand可以生成随机信号,该函数的调用方法如下:

    1. Y = rand(n):返回一个n*n的随机矩阵。如果n不是数量,则返回错误信息

    2. Y = rand(m,n)或Y = rand([m n]):返回一个m*n的随机矩阵

    3. Y = rand(m,n,p,……)或Y = rand([m,n,p,……]):产生随机数组

    4. Y = rand(size(A)):返回一个和A具有相同尺寸的随机矩阵

       tn = 0:50;N = length(tn);x = rand(1,N);subplot(1,2,1);plot(tn,x,'k');ylabel('x(t)');subplot(1,2,2);stem(tn,x,'filled','k');ylabel('x(n)');
      

  2. 三角波函数
    在MATLAB中,函数sawtooth用于产生锯齿波或三角波信号,该函数的调用方法为:

    1. x = sawtooth(t):产生周期为2pi,振幅从-1至1的锯齿波。在2pi的整数倍处值为-1至1,这一段的波形斜率为1/pi

    2. sawtooth(t,width):产生三角波函数,width值在0至1之间

       clear;Fs = 10000;t = 0:1/Fs:1;x1 = sawtooth(2 * pi * 40 * t,0);x2 = sawtooth(2 * pi * 40 * t,1);subplot(2,1,1);plot(t,x1);axis([0,0.25,-1,1]);subplot(2,1,2);plot(t,x2);axis([0,0.25,-1,1]);
      

函数rectpuls与函数diric

  1. rectpuls函数
    在MATLAB中,产生非周期方波信号的函数rectpuls,调用格式如下:
    y=rectpuls(t,w):产生指定宽度为w的非周期方波

     cleart = -3:0.001:3;y =  rectpuls(t);subplot(121);plot(t,y);axis([-2 2 -1 2]);grid on;xlabel('t');ylabel('w(t)');y = 2.5 * rectpuls(t,2);subplot(122);plot(t,y);axis([-2 2 -1 3]);grid on;xlabel('t');ylabel('w(t)');
    

  2. diric函数
    函数diric用于产生函数Dirichilet或周期函数Sinc,其调用格式如下:
    y=diric(x,n):返回一个大小与x相同的矩阵,其元素为函数Dirichlet

     clf;t = -3 * pi:pi / 40:4 * pi;subplot(2,1,1);plot(t,sinc(t));title('Sinc');grid on;xlabel('t');ylabel('sinc(t)');subplot(2,1,2);plot(t,diric(t,5));title('Diric');grid on;xlabel('t');ylabel('diric(t)');
    

函数sinc与函数tripuls

  1. 函数sinc定义为:sinc(t)=sinttsinc(t) = \frac{sint}{t}sinc(t)=tsint​,其调用格式如为:
    y=sinc(x):返回一个有函数sinc值为元素的矩阵

     cleart = (1:12)';x = randn(size(t));ts = linspace(-10,10,500)';y = sinc(ts(:,ones(size(t))) - t(:,ones(size(ts)))') * x;plot(t,x,'o',ts,y)ylabel('x(n)');xlabel('n');grid on;
    

  2. 函数tripuls用于产生非周期三角波信号,该函数的调用格式如下:
    y=tripuls(t,w,s):产生周期为w的非周期方波,斜率为s(-1<s<1)

     cleart = -2:0.001:2;y = tripuls(t,4,0.5);plot(t,y);grid on;axis([-3 3 -1 2]);xlabel('t');ylabel('y(t)');
    

函数gauspuls与函数pulstran

  1. 函数gauspuls用于产生高斯正弦脉冲信号函数,该函数的调用格式如下:
    yi=guaspuls(T,FC,BW,BWR):返回持续时间为T,中心频率为FC(Hz),宽带为BW的幅度为1的高斯正弦脉冲(RF)信号的抽样
    TC=guaspuls(‘cutoff’,FC,BE,BER,TPB):返回按参数TEP(dB)计算所对应的截断时间TC。

     cleartc = gauspuls('cutoff',60e3,0.6,[],-40);t = -tc:1e-6:tc;yi=gauspuls(t,60e3,0.6);plot(t,yi);xlabel('t');ylabel('h(t)');grid on;
    

  2. 函数pulstran用于脉冲序列发生器,其调用格式如下:
    y=pulstran(t,d,‘func’):该函数基于一个名为func的连续函数,并以之为一个周期,从而产生一串周期性的连续函数(func函数可自定义)。函数pulstran的横坐标范围由向量t指定,向量d用于指定周期性的偏移量(即各个周期的中心点),这样函数func会被计算length(d)次,从而产生一个周期性的脉冲信号。函数pulstran的一般调用形式为:
    y=pulstran(t,d,‘dunc’,p1,p2,……):p1,p2,……为需要传送给函数func的额外输入参数值(除了变量t之外)

     clearT=0:1/1E3:1;D=0:1/4:1;Y=pulstran(T,D,'rectpuls',0.1);subplot(121);plot(T,Y);xlabel('t');ylabel('w(t)');grid on;axis([0,1 -0.1,1.1]);T=0:1/1E3:1;D=0:1/3:1;Y=pulstran(T,D,'tripuls',0.2,1);subplot(122);plot(T,Y);xlabel('t');ylabel('w(t)');grid on;axis([0,1 -0.1,1.1]);
    

参考文献:

  1. 《精通MATLAB信号处理》,沈再阳编写,清华大学出版社

MATLAB信号处理---学习小案例(5)---信号波形的产生相关推荐

  1. MATLAB信号处理---学习小案例(10)---Z反变换

    定义X(z)X(z)X(z)的Z反变换(IZT)为x(n)=12πj∮CX(z)zn−1dzx(n)=\frac{1}{2\pi j} \oint_{C}X(z)z^{n-1}dzx(n)=2πj1​ ...

  2. MATLAB信号处理---学习小案例(8)---Z变换概述

    Z变换的定义 序列x(n)x(n)x(n)的Z变换(简称ZT)定义为 X(z)=∑n=−∞+∞x(n)z−nX(z)=\sum_{n=-\infty}^{+\infty}x(n)z^{-n}X(z)= ...

  3. Vue学习小案例--分页组件封装

    文章目录 Vue学习小案例--分页组件封装 修改成Vue(使用组件) Vue学习小案例–分页组件封装 index.html <!DOCTYPE html> <html lang=&q ...

  4. 【第 07 章 基于主成分分析的人脸二维码识别MATLAB深度学习实战案例】

    基于主成分分析的人脸二维码识别MATLAB深度学习实战案例 人脸库 全套文件资料目录下载链接–>传送门 本文全文源码下载[链接–>传送门] 如下分析: 主文件 function varar ...

  5. 【Node.js学习小案例】DNS域名解析 一

    Node.js 百度百科: Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台, 用来方便地搭建快速的 易于扩展的网络应用· Node.js 借助事件驱动, 非阻塞I/ ...

  6. 第 09 章 基于特征匹配的英文印刷字符识别 MATLAB深度学习实战案例

    基于特征匹配的英文印刷字符识别 MATLAB深度学习实战 话不多讲,直接开撸代码 MainForm函数 function MainForm global bw; global bl; global b ...

  7. 数字信号处理学习笔记[1] 离散信号 奇异信号 抽样定理

    文章目录 2 离散信号和抽样定理 2.1 离散信号 奇异信号 2.2 连续信号的离散化,正弦波的抽样问题 2.3 带限信号与奈奎斯特频率 用卷积考察抽样定理 2.4 离散信号的频谱和抽样定理 2 离散 ...

  8. firl 函数 matlab,经典matlab信号处理学习

    常用函数 1 图形化信号处理工具,fdatool(滤波器设计),fvtool(图形化滤波器参数查看)sptool (信号处理),fvtool(b,a),wintool窗函数设计.或者使用工具箱filt ...

  9. 【python学习小案例】提高兴趣之BMI计算器

  10. React入门学习小案例之番茄计时器与温度控制 App

    番茄计时器 首先搭建工程 npx create-react-app demoname 在 src 目录下新建 components ,新建一个 Timer.js,Timer.css Timer.js ...

最新文章

  1. Python 运算符之成员运算符 in 与 not in
  2. OpenCV-Python绑定如何工作及如何扩展新模块到Python
  3. mysql学习【第10篇】:数据库之索引与慢查询优化
  4. 狂神java什么来头_狂神说SpringBoot18:集成SpringSecurity
  5. md发布test-1 md发布test-1md发布test-1md发布test-1md发布test-1md发布test-1md发布test-1md发布test-1md发布test-1md发布test-
  6. hdu1962Corporative Network带权回路
  7. 信息学奥赛一本通(1038:苹果和虫子)
  8. catgroup linux_Linux用户(user)和用户组(group)的日常管理与操作教程概述
  9. C语言中获得本地日期
  10. 【机器视觉】独家盘点:详解国内外34家物联网机器视觉技术企业
  11. 信贷风控四:高校地址自动化识别
  12. 远程小组软件开发过程(3):人
  13. matlab 无穷级数求和,数项级数的求和方法.doc
  14. BOJ 444. 爱好和平
  15. 二维数组随机生成地图迷宫_经验分享:三套简单的迷宫地图生成方案
  16. centos 安装 时间校准与定时同步
  17. IFrame里面的子页面html内容变化时,怎么动态改变IFrame的高度
  18. maya导入模型后贴图没渲染怎么办?
  19. 桌面搜索项目正式启动
  20. 单片机SFR是什么意思?

热门文章

  1. java wsdl文件生成代码_如何用myeclipse将wsdl文件生成java代码
  2. Solidity 教程
  3. Pytorch优化器全总结(二)Adadelta、RMSprop、Adam、Adamax、AdamW、NAdam、SparseAdam(重置版)
  4. 微信小程序 列表item点击事件
  5. 加密狗通过USB SERVER远程连接
  6. java各种异常总结
  7. stm8s103k3 周期 捕获_基于stm8s103k3单片机串口UART的正确使用分享
  8. 【Codecs系列】视频格式国际标准:BT601/BT709/BT2020
  9. 智能文档比对小程序,支持扫描件比对、PDF比对,Word比对,合同比对、公文比对,限时免费使用
  10. Java网络编程之InetAddress类详解,URL和URI的区别,URLDecoder和URLEncoder,IPv6和IPv4区别,IPv6的三种表示方法