MATLAB信号处理——信号与系统的分析基础(4)

1-5 信号波形的产生

       MATLAB提供了很多基本信号的函数,我们可以通过这些函数快速地构造我们需要的信号。

   1)chirp函数

       chirp函数用来产生线性调频扫频信号,用法为y = chirp(t,f{_{0}}^{},t{_{1}}^{},f{_{1}}^{}),t可以理解为自变量,而f为因变量,f{_{0}}^{}为t = 0时瞬间频率(也可以认为是初始频率),f{_{1}}^{}t{_{1}}^{}时刻的瞬间频率。在不额外设定的情况下,chirp默认设置为f{_{0}}^{}=0Hz,t{_{1}}^{}=1,f{_{1}}^{}=100Hz.

       详情请移步https://blog.csdn.net/Reborn_Lee/article/details/82870590

 例1-5-1)

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

 

    2)square函数

        square函数用来产生周期性矩形脉冲信号,用法为y = square(t,dute),其中dute为占空比,一段连续工作时间内脉冲占用的时间与总时间的比值。

例1-5-2)

clear all
t = 0:0.01:2;
y = square(2.*pi.*t,50);
subplot(211);
plot(t,y);
axis([0 2 0 1])
ylabel('y');
xlabel('t');
grid on
y2 = square(2.*pi.*t,75)
subplot(212)
plot(t,y2);
axis([0 2 0 1])
ylabel('y2')
xlabel('t')
grid on

     3)rectpuls函数 

        rectpuls函数和square函数很像,区别在于,square函数产生的是周期性的矩形脉冲信号,而rectpuls函数产生的是非周期性的矩形脉冲信号。用法为y = rectpuls(t,width)

clear all
t = -2:0.01:2;
y = rectpuls(t,0.8);
plot(t,y);
ylabel('y')
xlabel('t')
grid on

 

   4)rand函数 

       rand是一个很基础的取随机数函数,前面好像也用过rand函数,就不多解释了。

例1-5-4)

clear all
t = 0:0.01:4;
n = length(t);
y = rand(1,n);
plot(t,y,'k');
ylabel('y')
xlabel('t')
grid on

   5)sawtooth函数 

       sawtooth函数用来产生锯齿波或三角波信号,用法为y = sawtooth(t)y = sawtooth(t,width),其中t默认为2π,width取0到1。

例1-5-5)

clear all
t = 0:0.01:4;
y = sawtooth(2*pi*t,0.8);
plot(t,y);
ylabel('y')
xlabel('t')
grid on

 6)triplus函数

    tripuls函数和sawtooth函数很像,和rectplus函数与square函数的关系一样,tripuls函数为非周期的,它产生非周期三角波信号 ,用法为y = triplus(t,w,s),其中的w为周期,s为斜率 

例1-5-6)

clear all
t = -2:0.01:2;
y = tripuls(t,0.5,0.17);
plot(t,y);
ylabel('y')
xlabel('t')
grid on

 

 7)sinc函数

       sinc函数用法为y = sinc(x),sinc(x)非归一化定义为\frac{sin(x)}{x},归一化定义为\frac{sin(\pi x)}{\pi x}

例1-5-7)

clear all
t = -2*pi:0.02*pi:2*pi;
y = sinc(t);
plot(t,y);
ylabel('y')
xlabel('t')
grid on

   8)diric函数

       diric函数用来产生狄利雷克函数对应的信号,用法为y = diric(x,n),返回一个与x相同的矩阵,元素为对应的Dirichlet函数

例1-5-8)

clear all
t = -2*pi:0.02*pi:2*pi;
y = diric(t,5);
plot(t,y);
ylabel('y')
xlabel('t')
grid on

   9)gauspuls函数 

       gauspuls函数可以产生高斯正弦脉冲信号,用法为tc = guaspuls(t,fc,bw),在数组中指示的时间t,返回宽度为bw,幅度为1的高斯正弦射频脉冲,中心频率为fc以赫兹为单位。

       详情请移步https://blog.csdn.net/reborn_lee/article/details/82886068

例1-5-9)

clear all
tc = gauspuls('cutoff',50e3,0.6,[],-40); 
t = -tc : 1e-7 : tc; 
[yi,yq,ye] = gauspuls(t,50e3,0.6); 
plot(t,yi);
ylabel('h(t)');
xlabel('t');
grid on

 10)pulstran函数

       pulsstran函数用于产生脉冲序列发生器,用法为y = pulstran(t,d,'fanc',p{_{1}}^{},p{_{2}}^{},\cdot \cdot \cdot ),函数基于连续的或采样的原型脉冲生成脉冲序列。此示例生成由高斯脉冲的多次延迟插值之和组成的脉冲序列。该脉冲序列定义为具有 50 kHz 的采样率、10 ms 的脉冲序列长度和 1 kHz 的脉冲重复率。T 指定脉冲序列的采样时刻。D 在第一列中指定每个脉冲重复的延迟,在第二列中指定每个重复的可选衰减。p1,p2···依次为要传递给fanc的数据。

例1-5-10)

clear all
T = 0:1/50e3:10e-3;
D = [0:1/1e3:10e-3;0.8.^(0:10)]';
Y = pulstran(T,D,'gauspuls',10e3,0.5);
plot(T,Y)

 参考资料——《MATLAB信号处理》沈再阳

                          MATLAB帮助文档

                          百度百科

  • 7
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值