数字信号处理实验一 离散时间信号分析与离散时间系统分析
一、【实验内容及基本要求】:
1.任务1:用Matlab实现下列基本离散时间信号(序列)并画出图形。
1)单位脉冲序列 δ(n)及其移位信号 δ(n-5);
2)单位阶跃序列 u(n);
3)矩形序列 RN(n),其中N=8;
4)实指数序列x(n)=anu(n),分别画出a=1.6,a=-1.6,a=0.9,a=-0.9的实指数序列。
5)正弦序列x(n)=sin(πn/10);__
2.任务2:用Matlab计算下列两个序列的和,并画出y(n)图形。
y(n)= 2 δ(n-3)+__ 5 δ(n-5) + R 8(n-2).
3.任务3:设序列x(n)的波形如图1所示,使用Matlab计算x(n)的DTFT,分别通过DTFT的定义(即教材公式1.9),及x(n)的表达式(即等比数列求和公式)这2种方法绘制出幅度特性图与相位特性图(如图2所示)。
4.任务4:用Matlab实现下列信号的离散卷积,并画出输入信号及卷积信号的图形。
y(n)= [2 δ(n-3)+__ 5 δ(n-5)] * R 8(n-2).
二、【实验过程及实验步骤】:
任务1:用Matlab实现下列基本离散时间信号(序列)并画出图形。
1)单位脉冲序列 δ(n)及其移位信号 δ(n-5);
%单位脉冲序列δ(n)代码如下:
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)');
Matlab
结果如图:

%②其移位信号δ(n-5)代码如下:
n = -5:10;
x = n ==5; %当n为5时,x的值为1
stem(n, x, 'filled');
axis([-5 10 0 1.1*max(x)]);%规定坐标轴的范围
xlabel('时间(n)');ylabel('幅度(n)');
Matlab
结果如图:

2)单位阶跃序列 u(n);
%单位阶跃信号
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)');
Matlab
结果如图:

3)矩形序列 R N(n),其中N=8代码如下:
%矩形序列
n=0:8;
x= n>=0&n<=7; %当x大于等于0小于等于7时为1
stem(n,x,'filled');
axis([0 8 -0.1 1.1]);
title('矩阵序列');
xlabel('x');
ylabel('n');
Matlab
结果如图:

4)实指数序列x(n)=anu(n),分别画出a=1.6,a=-1.6,a=0.9,a=-0.9的实指数序列代码如下:
n=1:11;
a1=1.6;a2=-1.6;a3=0.9;a4=-0.9;
x1=a1.^n;x2=a2.^n;x3=a3.^n;x4=a4.^n;
subplot(2,2,1);
stem(n,x1,'filled'),grid on;
xlabel('n');title('a=1.6');
subplot(2,2,2);
stem(n,x2,'filled'),grid on;
xlabel('n');title('a=-1.6');
subplot(2,2,3);
stem(n,x3,'filled'),grid on;
xlabel('n');title('a=0.9');
subplot(2,2,4);
stem(n,x4,'filled'),grid on;
xlabel('n');title('a=-0.9');
Matlab

结果如图:

5)正弦序列x(n)=sin(πn/10)代码如下:
n = -20:20;
x = sin(pi * n / 10);
stem(n, x,'filled');
xlabel('n');
ylabel('Amplitude');
title('正弦序列');
Matlab
结果如图:

任务2:用Matlab计算下列两个序列的和,并画出y(n)图形。
y(n)= 2δ(n-3)+ 5δ(n-5) + R8(n-2).
代码如下:
n = -5:10;
% 定义输入信号
x1 = 2 * (n == 3);
x2 = 5 * (n == 5);
x3 = 1 * (n>=2 & n<=9);
x = x1 + x2 + x3;
% 定义冲激响应
h = ones(size(n));
h(n < 2) = 0;
% 绘制输入信号及序列和信号图形
figure;
subplot(4, 1, 1);
stem(n, x1, 'filled');
xlabel('n');
ylabel('Amplitude');
title('输入信号 2δ(n-3)');
grid on;
subplot(4, 1, 2);
stem(n, x2, 'filled');
xlabel('n');
ylabel('Amplitude');
title('输入信号 5δ(n-5)');
grid on;
subplot(4, 1, 3);
stem(n, x3, 'filled');
xlabel('n');
ylabel('Amplitude');
title('输入信号 R8(n-2)');
grid on;
subplot(4, 1, 4);
stem(n, x, 'filled');
xlabel('n');
ylabel('Amplitude');
title('序列和信号 y(n)');
grid on;
Matlab

结果如图:

任务3:设序列x(n)的波形如图1所示,使用Matlab计算x(n)的DTFT,分别通过DTFT的定义(即教材公式1.9),及x(n)的表达式(即等比数列求和公式)这2种方法绘制出幅度特性图与相位特性图(如图2所示)
图1 x(n)波形图
图2 x(n)经DTFT后的幅度特性与相位特性曲线(频谱)
代码如下:
%用DTFT定义计算
n=0:5;xn=ones(1, 6);
k=-100:100;w=(pi/100)* k;
X=xn*(exp( -j* pi/100)).^ (n'*k);
magX=abs(X) ;angX=angle(X);
subplot(2,1,1);plot(w/pi,magX) ;
grid;
axis([-1,1,0, 8]);
title('幅度特性');
xlabel('频率(单位\pi)');
ylabel('幅度|x(e^ j\omega)|');
subplot(2,1,2);
plot(w/pi,angX/pi);
grid;
axis([-1,1,-1,1]);title('相位特性');
xlabel('频率(单位\pi)');ylabel('弧度/\pi');
%用表达式计算
w=w+(w==0)*eps;%避免0/0
x=exp(-j*5*w/2).* sin (3*w)./ sin (w/2);
figure(2);
subplot(2,1,1);plot( w/pi, abs(x)) ;
grid;
axis([-1,1,0, 8]);
title('幅度特性');
xlabel('频率(单位\pi)');
ylabel('幅度|x(e^ j\omega)|');
subplot(2,1,2);
plot(w/pi,angX/pi);
grid;
axis([-1,1,-1,1]);
title('相位特性');
xlabel('频率(单位\pi)');ylabel('弧度/\pi');
Matlab

结果如图:

任务4:用Matlab实现下列信号的离散卷积,并画出输入信号及卷积信号的图形。
y(n)= [2δ(n-3)+ 5δ(n-5)] * R8(n-2).
代码如下:
n = -10:20;
% 定义输入信号
x1 = 2 * (n == 3);
x2 = 5 * (n == 5);
x = x1 + x2;
% 定义冲激响应
h = ones(size(n));
h(n < 2) = 0;
% 计算离散卷积
y = conv(x, h, 'same');
% 绘制输入信号及卷积信号图形
figure;
subplot(3, 1, 1);
stem(n, x1, 'filled');
xlabel('n');
ylabel('Amplitude');
title('输入信号 2δ(n-3)');
grid on;
subplot(3, 1, 2);
stem(n, x2, 'filled');
xlabel('n');
ylabel('Amplitude');
title('输入信号 5δ(n-5)');
grid on;
subplot(3, 1, 3);
stem(n, y, 'filled');
xlabel('n');
ylabel('Amplitude');
title('卷积信号 y(n)');
grid on;
Matlab

结果如图所示:

