Matlab 进行离散时间信号序列的生成 | 您所在的位置:网站首页 › 指数波形图 › Matlab 进行离散时间信号序列的生成 |
目录 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('正弦信号')得到如下结果: 确定了指数函数的指数以及系数,就可以进行绘制: A=2; a=0.2; t=-10:0.01:10; ft=A*exp(a*t); plot(t,ft); grid on; %在图上画方格得到的图像如下(使用 grid on 可以绘制表格): 单位冲击信号,即 得到的信号如下: 当 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)');得到如下所示的图像: 代码如下: 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,'.');在确定的范围内得到的连续时间和离散时间信号如下图: 即在时域内离散不连续的信号 (1) 正弦信号 n = -40:60; xn=cos(0.1*pi*n + 0.3*pi); stem(n,xn,'.'); axis([-40,60,-1.5,1.5]) title('正弦信号')得到图像如下: 实现上图的代码如下: 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 实验室设备网 版权所有 |