实验一离散时间信号的时域分析
更新时间:2023-08-09 23:09:01 阅读量: 工程科技 文档下载
- 实验一离散时间信号的分析推荐度:
- 相关推荐
实验一离散时间信号的时域分析
陈一凡20112121006
一、实验目的:
学习使用MATLAB程序产生信号和绘制信号;
学习使用MATLAB运算符产生基本离散时间序列——指数序列; 学习使用MATLAB三角运算符产生正弦序列;
学习使用MATLAB命令产生长度为N且具有零均值和单位方差的正态分布的随机信号;学习使用MATLAB中三点滑动平均算法来实现噪声的移除; 学习使用MATLAB程序产生振幅调制信号; 学习使用MATLAB函数产生方波和锯齿波; 二、实验原理简述:
运用运算符和特殊符号,基本矩阵和矩阵控制,基本函数,数据分析,二维图形,通用图形函数,信号处理工具箱等命令,产生以向量形式存储的信号。 三、 实验内容与实验结果
1、产生并绘制一个单位样本序列 运行程序
clf
n=-10:20;
u=[zeros(1,10) 1 zeros(1,20)]; stem(n,u);
xlabel('时间序号);ylabel('振幅'); title('单位样本序列'); axis([-10 20 0 1.2]);
实验结果如图1所示
图1
2.1、生成一个复数值的指数序列:
运行程序:
clf;
c=-(1/12)+(pi/6)*i; K=2; n=0:40;
x=K*exp(c*n); subplot(2,1,1); stem(n,real(x));
xlabel('时间序号n');ylabel('振幅'); title('实部'); subplot(2,1,2); stem(n,imag(x));
xlabel('时间序号n');ylabel('振幅'); title('虚部');
实验结果如图2所示
实部
振幅
051015
2025时间序号n
虚部
303540
振幅
051015
2025时间序号n
3035
40
图2
2.2、生成一个实数值的指数序列: 运行程序:
clf;
n=0:35;a=1.2;K=0.2; x=K*a.^n; stem(n,x);
xlabel('时间序号n');ylabel('振幅');
实验结果如图3所示
振幅
时间序号n
图3
3、产生一个正弦信号: 运行程序:
n=0:40; f=0.1; phase=0; A=1.5;
arg=2*pi*f*n-phase; x=A*cos(arg); clf;
stem(n,x);
axis([0 40 -2 2]); grid;
title('正弦序列'); xlabel('时间序号n'); ylabel('振幅'); axis;
实验结果如图4所示
正弦序列
振幅
时间序号n
图4
4、产生长度为N且具有零均值和单位方差的正态分布的随机信号: 运行程序:
x=4*rand(1,100)-2 plot(x);
axis([0,100,-2,2]); title('扫频正弦信号'); xlabel('时间序号n'); ylabel('振幅'); grid;axis;
实验结果如图5所示:
扫频正弦信号
21.5
10.5
振幅
0-0.5-1-1.5-2
0102030
405060
时间序号n
708090100
图5
并产生如下所示序列:
x =
Columns 1 through 11
1.8005 -1.0754 0.4274 -0.0561 1.5652 1.0484 -0.1741 -1.9260 1.2856 -0.2212 0.4617 Columns 12 through 22
1.1677 1.6873 0.9528 -1.2949 -0.3772 1.7419 1.6676 -0.3589 1.5746 -1.7684 -0.5885 Columns 23 through 33
1.2527 -1.9606 -1.4444 -1.1889 -1.2051 0.4152 -0.9112 -1.2047 -1.9389 0.9871 -0.2196 Columns 34 through 44
1.7273 -0.1360 -0.3254 1.3849 0.1006 -1.1894 0.6885 1.3525 -1.9214 0.7251 -0.4821 Columns 45 through 55
1.3272 0.0113 0.8379 -0.2844 -0.7815 -1.2414 -1.2263 0.7289 -0.7889 0.1667 -1.3965 Columns 56 through 66
0.7916 -0.4865 1.4400 1.4146 0.3743 -0.0138 1.5991 1.2865 0.5796 1.2719 0.6409 Columns 67 through 77
-0.6321 -0.8411 -0.6352 0.1363 0.9085 -0.7628 1.3540 0.2723 -0.5183 0.8110 0.1863 Columns 78 through 88
-0.2205 0.7783 0.4852 1.1793 1.8274 0.0904 1.5206 -1.3082 1.9190 -0.9142 -0.9907 Columns 89 through 99
1.5030 0.9492 -1.4539 -1.9530 1.5756 -1.2034 -0.8051 0.6458 -0.8624 -0.1231 -1.7409 Column 100 1.9533
5、利用三点滑动平均算法实现信号中噪声的移除: 运行程序:
clf; R=51;
d=0.8*(rand(R,1)-0.5); m=0:R-1;
s=2*m.*(0.9.^m); x=s+d';
subplot(2,1,1);
plot(m,d','r-',m,s,'g--',m,x,'b-.');
xlabel('时间序号n');ylabel('振幅'); legend('d[n] ','s[n] ','x[n] ');
x1=[0 0 x];x2=[0 x 0];x3=[x 0 0]; y=(x1+x2+x3)/3; subplot(2,1,2);
plot(m,y(2:R+1),'r-',m,s,'g--'); legend('y[n] ','s[n] ');
xlabel('时间序号n');ylabel('振幅');
实验结果如图6所示:
10
5
振幅
0-5
时间序号n
86
振幅
420
时间序号n
图6
6.1、产生一个振幅调制信号: 运行程序:
n=0:100;
m=0.4;fH=0.1; fL=0.01; xH=sin(2*pi*fH*n); xL=sin(2*pi*fL*n); y=(1+m*xL).*xH; stem(n,y);grid;
xlabel('时间序列n');ylabel('振幅');
实验结果如图7所示:
振幅
0102030
405060时间序列n
708090100
图7
6.2、产生频率随时间线性增加的扫频正弦信号: 运行程序:
n=0:100; a=pi/2/100; b=0;
arg=a*n.*n+b*n; x=cos(arg); clf;
stem(n,x);
axis([0,100,-1.5,1.5]); title('扫频正弦信号'); xlabel('时间序号n'); ylabel('振幅'); grid;axis;
实验结果如图8所示:
扫频正弦信号
振幅
0102030
405060
时间序号n
708090100
图8
7.1、绘制最大振幅为2.7,周期为10,占空比为60%的方波信号: 运行程序:
t=0:30;
y=2.7*square(2*pi*0.1*t,60); stem(t,y);
xlabel('时间序号n'); ylabel('振幅');
实验结果如图9所示:
振幅
时间序号n
图9
7.2、绘制最大振幅为2.7,周期为10,占空比为30%的方波信号: 运行程序:
t=0:30;
y=2.7*square(2*pi*0.1*t,30);
stem(t,y);
xlabel('时间序号n'); ylabel('振幅');
实验结果如图10所示:
振幅
0510
15
时间序号n
202530
图10
7.3、产生一个振幅为2,周期为20的方波信号: 运行程序:
t=0:50;
y=2*sawtooth(2*pi*0.05*t) stem(t,y);
xlabel('时间序号n'); ylabel('振幅');
实验结果如图11所示:
振幅
时间序号n
图11
并产生了锯齿波序列值如下所示:
y =
Columns 1 through 11
-2.0000 -1.8000 -1.6000 -1.4000 -1.2000 -1.0000 -0.8000 -0.6000 -0.4000 -0.2000 0 Columns 12 through 22
0.2000 0.4000 0.6000 0.8000 1.0000 1.2000 1.4000 1.6000 1.8000 -2.0000 -1.8000 Columns 23 through 33
-1.6000 -1.4000 -1.2000 -1.0000 -0.8000 -0.6000 -0.4000 -0.2000 0 0.2000 0.4000 Columns 34 through 44
0.6000 0.8000 1.0000 1.2000 1.4000 1.6000 1.8000 -2.0000 -1.8000 -1.6000 -1.4000 Columns 45 through 51
-1.2000 -1.0000 -0.8000 -0.6000 -0.4000 -0.2000 0 7.4、产生一个振幅为2,周期为20的方波信号:
运行程序:
t=0:50;
y=2*sawtooth(2*pi*0.05*t,0.5) stem(t,y);
xlabel('时间序号n'); ylabel('振幅');
实验结果如图12所示:
振幅
时间序号n
图12
并产生了锯齿波序列值如下所示: y =
Columns 1 through 11
-2.0000 -1.6000 -1.2000 -0.8000 -0.4000 0 0.4000 0.8000 1.2000 1.6000 2.0000
Columns 12 through 22
1.6000 1.2000 0.8000 0.4000 0 -0.4000 -0.8000 -1.2000 -1.6000 -2.0000 -1.6000 Columns 23 through 33
-1.2000 -0.8000 -0.4000 0 0.4000 0.8000 1.2000 1.6000 2.0000 1.6000 1.2000 Columns 34 through 44
0.8000 0.4000 0 -0.4000 -0.8000 -1.2000 -1.6000 -2.0000 -1.6000 -1.2000 -0.8000 Columns 45 through 51
-0.4000 0 0.4000 0.8000 1.2000 1.6000 2.0000
四、实验分析:
针对实验1 产生并绘制了一个单位样本序列 n=-10:20即产生从-10到20的一个向量
u=[zeros(1,10) 1 zeros(1,20)];即产生单位样本序列 stem(n,u);即绘制单位样本序列 针对实验2 产生一个实指数序列 clf;即清除所有的内存变量
n=0:35;即产生一个从0到35的向量 a=1.2;K=0.2;即对对各系数进行限定 x=K*a.^n;即函数表达式
stem(n,x);即绘制实指数信号
xlabel('时间序号n');ylabel('振幅');即将横坐标记为时间序号n,纵坐标记为振幅 产生一个复数值的指数序列 c=-(1/12)+(pi/6)*i;即复数的表达式 K=2;即对常数进行定义
n=0:40;即产生一个从0到40的向量 x=K*exp(c*n);即指数表达式
subplot(2,1,1);即将平面分成上下两个区域,并在上半部分画图 stem(n,real(x));即在平面的上半部分画实部图
xlabel('时间序号n');ylabel('振幅');
title('实部');即对该图进行命名,名为实部 subplot(2,1,2);即在下半部分画图 stem(n,imag(x));即画虚部图
xlabel('时间序号n');ylabel('振幅');
title('虚部');即对该图进行命名,名为虚部 针对实验3产生一个正弦序列 n=0:40;
f=0.1;即对频率进行限定
phase=0;即对初相角进行限定 A=1.5;即对系数进行限定
arg=2*pi*f*n-phase;即角度函数 x=A*cos(arg);即正弦函数 clf;
stem(n,x);
axis([0 40 -2 2]);即对图形的横纵坐标轴的范围进行限定 grid;即产生二维图形 title('正弦序列'); xlabel('时间序号n'); ylabel('振幅');
axis;即产生二维图形
针对实验4产生一个随机信号
x=4*rand(1,100)-2;即产生长度为100且具有零均值和单位方差的正态分布的随机信号的函数表达式 plot(x);即绘制二维图形
axis([0,100,-2,2]); title('扫频正弦信号'); xlabel('时间序号n'); ylabel('振幅'); grid;axis;
针对实验5实现信号的噪声移除
R=51;
d=0.8*(rand(R,1)-0.5);即产生随机噪声 m=0:R-1;即产生未污染的信号
s=2*m.*(0.9.^m);即产生被噪声污染的信号 x=s+d';其中对d进行了转置 subplot(2,1,1);
plot(m,d','r-',m,s,'g--',m,x,'b-.');即绘制图形,m,s,x xlabel('时间序号n');ylabel('振幅'); legend('d[n] ','s[n] ','x[n] '); x1=[0 0 x];x2=[0 x 0];x3=[x 0 0]; y=(x1+x2+x3)/3; subplot(2,1,2);
plot(m,y(2:R+1),'r-',m,s,'g--'); legend('y[n] ','s[n] ');
xlabel('时间序号n');ylabel('振幅');
针对实验6产生振幅调制信号
n=0:100;
m=0.4;fH=0.1; fL=0.01;即对高频和低频进行限定 xH=sin(2*pi*fH*n);即产生高频信号 xL=sin(2*pi*fL*n);即产生低频信号 y=(1+m*xL).*xH;即产生振幅调制信号 stem(n,y);grid;
xlabel('时间序列n');ylabel('振幅');
产生一个扫频正弦函数
n=0:100; a=pi/2/100; b=0;
arg=a*n.*n+b*n;即对角度进行限定 x=cos(arg);正弦扫频函数表达式 clf;
stem(n,x);
axis([0,100,-1.5,1.5]); title('扫频正弦信号'); xlabel('时间序号n'); ylabel('振幅'); grid;axis;
针对实验7产生方波和锯齿波信号
t=0:30;时间范围是0到30,取样间隔为1
y=2.7*square(2*pi*0.1*t,60);产生一个高度为2.7占空比为6:4的方波
stem(t,y)
7.2、t=0:30时间范围是0到30,取样间隔为1
y=2.7*square(2*pi*0.1*t,30);产生一个高度为2.7占空比为3:7的方波 stem(t,y)
7.3、t=0:50时间范围是0到50,取样间隔为1
y=2*sawtooth(2*pi*0.05*t);即产生一个高度为2的锯齿波 stem(t,y);
7.4、t=0:50;时间范围是0到50,取样间隔为1
y=2*sawtooth(2*pi*0.05*t,0.5);产生一个高度为2的锯齿波 stem(t,y);
五、实验总结
在此次实验中,我学会了用MATLAB程序绘制图形,产生信号。 习题求解:
Q1.3修改程序P1.1,以产生带有延时11个样本的延时单位样本序列ud[]的。运行修改的程序并显示产生的序列。程序如下,结果如图13所示 clf;
n=-10:20;
u=[zeros(1,21) 1 zeros(1,9)]; stem(n,u);
xlabel('时间序号n');ylabel('振幅'); title('单位样本序列'); axis([-10 20 0 1.2])
单位样本序列
振幅
时间序号n
图13
Q1.14若参数a小于1,会发生什么情况?将参数a更改为0.9,将参数K更改为20,再次运行程序P1.3,程序如下,结果如图14所示 clf;
n=0:35;a=0.9;K=20; x=K*a.^n; stem(n,x);
xlabel('时间序号n');ylabel('振幅');
振幅
时间序号n
图14
分析:参数小于1表示生成一个递减的实数值的指数函数;
Q1.23修改上述程序,以产生长度为50、频率为0.08、振幅为2.5、相移为90度的一个正弦序列并显示他。该序列的周期是多少?程序如下,图形如图15所示: n=0:50; f=0.08; phase=90; A=2.5;
arg=2*pi*f*n-phase; x=A*cos(arg); clf;
stem(n,x);
axis([0 50 -2 2]);
grid;
title('正弦序列'); xlabel('时间序号n'); ylabel('振幅');
正弦序列
振幅
时间序号n
图15
分析:周期为25
Q1.31使用语句x=s+d能产生被噪声污染的信号吗?若不能,为什么? 程序如下: clf; R=51;
d=0.8*(rand(R,1)-0.5); m=0:R-1;
s=2*m.*(0.9.^m); x=s+d;
subplot(2,1,1);
plot(m,d,'r-',m,s,'g--',m,x,'b-.'); xlabel('时间序号n');ylabel('振幅'); legend('d[n] ','s[n] ','x[n] '); x1=[0 0 x];x2=[0 x 0];x3=[x 0 0]; y=(x1+x2+x3)/3; subplot(2,1,2);
plot(m,y(2:R+1),'r-',m,s,'g--'); legend('y[n] ','s[n] ');
xlabel('时间序号n');ylabel('振幅');
程序在运行过程中出现了错误,不能产生被噪声污染的信号。原因:随机信号必须要经过转置才能八产生被噪声污染的信号。
Q1.34在载波信号xH[n]和调制信号zL[n]采用不同频率、不同调制指数m的情况下,运行程序P1.6,以产生振幅调制信号y[n]。程序如下,图形如图16所示。
n=0:100;
m=2;fH=0.5; fL=0.02; xH=sin(2*pi*fH*n); xL=sin(2*pi*fL*n); y=(1+m*xL).*xH; stem(n,y);grid;
xlabel('时间序列n');ylabel('振幅');n=0:100; m=2;fH=0.5; fL=0.02; xH=sin(2*pi*fH*n); xL=sin(2*pi*fL*n); y=(1+m*xL).*xH; stem(n,y);grid;
xlabel('时间序列n');ylabel('振幅');
-14
振幅
102030
405060时间序列n
708090100
图16
Q1.38如何修改上述程序才能产生一个最小频率为0.1、最大频率为0.3的扫描正弦信号?程序如下所示,图形如17所示
n=0:100; a=0.1; b=0.3;
arg=a*n.*n+b*n; x=cos(arg); clf;
stem(n,x);
axis([0,100,-1.5,1.5]); title('扫频正弦信号'); xlabel('时间序号n');
ylabel('振幅'); grid;axis;
扫频正弦信号
振幅
0102030
405060时间序号n
708090100
正在阅读:
实验一离散时间信号的时域分析08-09
2013年贵州省学习数据库高级10-24
Opinion mining and sentiment analysis04-18
抗冲切验算05-12
能力比机遇更重要12-03
醋泡鸡蛋 小偏方治大病12-23
理想KS800c一体机维修代码04-18
探索奇妙的世界作文400字07-04
宣传册统计04-26