Matlab 进行离散时间信号序列的生成 您所在的位置:网站首页 matlab指数序列信号代码 Matlab 进行离散时间信号序列的生成

Matlab 进行离散时间信号序列的生成

2024-07-11 06:21| 来源: 网络整理| 查看: 265

目录

1. 认识离散时间序列

2. 生成一些常用信号

(1) 正弦信号

(2) 指数信号

(3) 单位冲击信号

(4) 阶跃信号

(5) 随机信号

3. 生成离散时间信号

(1) 正弦信号

(2) 指数信号

(3) 通过输入参数来实现信号

(4)数字信号处理中的一道题

1. 认识离散时间序列

一般来说,我们在现实中遇到的都是一些模拟信号,但如果使用计算机处理信号的话,在时间上不连续的数字信号有更好的精度以更低的噪声敏感度,所以要进行数字信号处理,即对离散时间信号的处理。

认识数字信号处理

离散时间信号表示的就是在时域不连续的信号,而它的不连续性可能是周期的,也有可能不是周期的,看具体情况进行判断

2. 生成一些常用信号 (1) 正弦信号

正弦信号的生成比较简单,确定了自变量的范围就可以直接使用相应的表达式进行生成:

xn=cos(0.6*pi*n + 0.3*pi); figure plot(n,xn) axis([-40,60,-1.5,1.5]) title('正弦信号')

通过以上代码可以得到下面的图像:

如果需要调整信号的频率直接在信号表达式内部进行修改即可:

xn=cos(0.1*pi*n + 0.3*pi); figure plot(n,xn) axis([-40,60,-1.5,1.5]) title('正弦信号')

得到如下结果:

(2) 指数信号

确定了指数函数的指数以及系数,就可以进行绘制:

A=2; a=0.2; t=-10:0.01:10; ft=A*exp(a*t); plot(t,ft); grid on; %在图上画方格

得到的图像如下(使用 grid on 可以绘制表格):

(3) 单位冲击信号

单位冲击信号,即 \large \delta (t) ,当  t  为零时该信号值为1,t 为其他值时该信号值为 0:

n = -5:5; x = n == 0;% 当n为0时,x的值为1 stem(n, x, 'filled'); axis([-5 5 0 1.1*max(x)]);%规定坐标轴的范围 xlabel('时间(n)');ylabel('幅度(n)');

得到的信号如下:

(4) 阶跃信号

当 t < 0 时信号全为0,当 t > 0 时信号全为1

n = -2:8; x = n >= 0; % 当n大于等与零时,其值为1 stem(n, x, 'filled'); axis([-4, 4, 0, 1.1*max(x)]); title('阶跃信号'); xlabel('时间(n)');ylabel('幅度(n)');

得到如下所示的图像:

(5) 随机信号

代码如下:

tn=0:0.2:15; N=length(tn); x=rand(1,N); subplot(2,1,1); plot(tn,x); tn=0:0.5:15; N=length(tn); y=rand(1,N); subplot(2,1,2); stem(tn,y,'.');

在确定的范围内得到的连续时间和离散时间信号如下图:

3. 生成离散时间信号

即在时域内离散不连续的信号

(1) 正弦信号 n = -40:60; xn=cos(0.1*pi*n + 0.3*pi); stem(n,xn,'.'); axis([-40,60,-1.5,1.5]) title('正弦信号')

得到图像如下:

(2) 指数信号

实现上图的代码如下:

n1=-10; n2=10; a1=0.5; a2=2; na1=n1:0; x1 = a1.^na1; na2 = 0:n2; x2 = a2.^na2; subplot(2,1,1); stem(na1,x1,'filled'); title('实指数序列(a1)'); (3) 通过输入参数来实现信号 L = input('Please input L:\n'); A = input('Please input A:\n'); w = input('Please input w:\n'); ph = input('Please input ph:\n'); n = 0:L; xn = A*sin(w*n + ph); stem(n,xn,'.') axis([0,L,-1-A,A+1]) title('M2.4 2.40f')

通过上述代码可以实现输入系数、序列长度、频率以及相位进行信号序列的输出

(4)数字信号处理中的一道题 n=-40:40; xnb=cos(0.6*pi*n + 0.3*pi); figure subplot(4,1,1) stem(n,xnb,'.'); axis([-40,40,-1.5,1.5]) title('2.39b') xnc = real(exp(1j*pi*n/8)) + imag(exp(1j*pi*n/5)); subplot(4,1,2) stem(n,xnc,'.') axis([-40,40,-1,2]) title('2.39c') xnd = 6*sin(0.15*pi*n) - cos(0.12*pi*n + 0.1*pi); subplot(4,1,3) stem(n,xnd,'.'); axis([-40,40,-10,10]) title('2.39d') xne = sin(0.1*pi*n + 0.75*pi) - 3*cos(0.8*pi*n + 0.2*pi) + cos(1.3*pi*n); subplot(4,1,4) stem(n,xne,'.'); axis([-40,40,-5,5]) title('2.39e')

效果如下:



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有