1、实验目的:
1)了解时域离散信号的特点;
2)掌握MATLAB在时域内产生常用离散时间信号的方法;
3)熟悉离散时间信号的时域基本运算;
4)掌握离散时间信号的绘图命令。
2、实验内容:
2-1)、编程实现单位阶跃延迟序列u(n-2)图形。(注:图形的起点为0,终点为6,加注图名称)。
1. n0=0; nf=6; ns=2; %起点为0,终点为6,在2出有单位阶跃序列 2. n=n0:nf; %生成离散信号的时间序列 3. f=[zeros(1,ns-n0),ones(1,nf-ns+1)]; %生成离散信号f(n) 4. %也可用逻辑运算方法产生,f=[(n-ns)>=0] 5. stem(n,f,'filled'), axis([n0, nf, -0.1, 1.1]) %散点图 6. title('u(n-2)'); %加标题
2-2)、已知复指数序列,按照其实部和虚部分别绘图,其中取α=-(1/12),ω=π/6,n取[0,30]。
1. n0 = 0; nf = 30; n = n0:nf; 2. a = -1/12; b = pi/6; %加分号! 3. f = exp((a + b*j)*n); %表达式 ,此处代码有修改!!!!!!! 4. subplot(1,2,1), stem(n,real(f),'filled'); 5. xlabel('n'); ylabel('实部'); grid 6. subplot(1,2,2), stem(n,imag(f),'filled'); 7. xlabel('n'); ylabel('虚部'); grid
2-3)、已知一时域周期性余弦信号的频率为2 Hz,振幅值幅度为2。在窗口上显示1个周期的信号波形,并对该信号的一个周期进行50点采样获得离散信号。试显示原连续信号和其采样获得的离散信号波形。
1. % 正余弦序列 2. f=2; Um=2; nt=1; %输入信号频率、振幅和显示周期数 3. N=50; T=1/f; %N为信号一个周期的采样点数,T为信号周期 4. dt=T/N %采样时间间隔 5. n=0: nt*N; %建立离散信号的时间序列 6. tn=n*dt; %确定时间序列样点在时间轴上的位置 7. y=Um*cos(2*f*pi.*tn); 8. subplot(2,1,1); plot(tn,y); %显示原连续信号 9. axis([0 max(tn) -1.1*max(y) 1.1*max(y)]); ylabel('y(t)'); %限制范围 一个周期 10. subplot(2,1,2); stem(tn,y); %采样获得的离散信号波形 11. axis([0 max(tn) -1.1*max(y) 1.1*max(y)]); ylabel('y(n)');
2-4)、已知离散时间信号,用MATLAB绘出x(n)、x(-n)、x(n+2)、x(n-2)的波形。
1. x = [1 2 3 3 3 3]; %离散时间信号 2. n = [-2 -1 0 1 2 3]; %确定采样点的序号 3. subplot(221); stem(n,x,'filled'); 4. subplot(222); stem(-n,x,'filled'); 5. subplot(223); stem(n+2,x,'filled'); 6. subplot(224); stem(n-2,x,'filled');
2-5)、已知序列f1(n)={-6 2 0 -5 8 4 3 -1 7},-6≤n≤2;f2(n)={1 -2 3 0 -3 2 -1},-2≤n≤4,求f3(n)=f1(n)+f2(n),并绘制出f1、f2、f3三者的图形。
1. n1 = -6:2; f1 = [-6 2 0 -5 8 4 3 -1 7]; %序列f1(n) 2. n2 = -2:4; f2 = [1 -2 3 0 -3 2 -1]; %序列f2(n) 3. new_n=min([n1,n2]):max([n1,n2]) %构造和序列 n=[-6:4] 4. x1=zeros(1,length(new_n)); x2=x1; %初始化新向量 5. x1(find((new_n>=min(n1))&(new_n<=max(n1))))=f1; %在新序列中放置f1,其中find函数找到索引位置[1 2 3 4 5 6 7 8 9] 6. x2(find((new_n>=min(n2))&(new_n<=max(n2))))=f2; %在新序列中放置f2,其中find函数找到索引位置[4 5 6 7 8 9 10] 7. f=x1+x2; %序列相加 8. subplot(1,3,1), stem(new_n,x1,'filled'),title('序列f1'); 9. subplot(1,3,2), stem(new_n,x2,'filled'),title('序列f2'); 10. subplot(1,3,3), stem(new_n,f, 'filled'),title('序列相加');
2-6、已知一正弦信号: ,试编程实现截取该信号的[-5 5]区间的波形(注:加窗截取方式,在同一窗口下显示三个图形)。
1. n = -10:10; x = 2*sin(2*pi*n/10); 2. f1=[(n+5)>=0]; 3. f2=[(n-5)>0]; 4. f=f1-f2; 5. x1=x.*f;%x是一个行向量所以要点乘 6. subplot(3,1,1); stem(n,x,'filled'); title('正弦信号'); 7. subplot(3,1,2); stem(n,f,'filled'); title('截取信号'); 8. subplot(3,1,3); stem(n,x1,'filled');title('截取图形');