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