当前位置:
文档之家› (完整版)数字信号处理实验二
(完整版)数字信号处理实验二
xlabel('时间序号 n'); ylabel('振幅');
title('信号 #1');
subplot(2,2,2);
plot(n, s2);
axis([0, 100, -2, 2]);
xlabel('时间序号 n'); ylabel('振幅');
title('信号 #2');
subplot(2,2,3);
plot(n, y);
axis([0, 100, -2, 2]);
xlabel('时间序号 n'); ylabel('振幅');
title('输出信号');
axis;
%扫频信号通过2.2系统:
clf;
n = 0:100;
s1 = cos(2*pi*0.05*n);
s2 = cos(2*pi*0.47*n);
xlabel('时间序号n'); ylabel('振幅');
在M=2的基础上,线性时不变系统由y[n]=0.5(x[n]+x[n-1])变成 y[n]=0.5(x[n]-x[n-1]),则在MATLAB上,程序P2.1更改:
num可以直接表示为num=[1 -1],通用的表达式为:num=[1 -ones(1,M-1)]。
得到图像为
2.4 修改程序P2.1,用一个长度为101、最低频率为0、最高频率为0.5的扫频正弦信号作为输入信号(见程序P1.7),计算其输出信号。你能用该系统对扫频信号的响应来解释习题Q2.1和习题Q2.2的结果吗?
2.28 分别用conv函数和filter函数求得输出,进行图像比较。
六、实验记录(数据、图表、波形、程序等)
2.1 对M=2,运行上述程序,生成输入x[n]=s1[n]+s2[n]的输出信号。输入x[n]的哪个分量被该离散时间系统抑制?
% Program P2_1
clf;
n = 0:100;
s1 = cos(2*pi*0.05*n);
xlabel('时间序号 n'); ylabel('振幅');
title('输入信号');
subplot(2,2,4);
plot(n, y);
axis([0, 100, -2, 2]);
xlabel('时间序号 n'); ylabel('振幅');
title('输出信号');
axis;
2.2若线性时不变系统由y[n]=0.5(x[n]+x[n-1])变成y[n]=0.5(x[n]-x[n-1]),对输入x[n]=s1[n]+s2[n]的影响是什么?
xlabel('时间序号 n'); ylabel('振幅');
title('信号 #2');
subplot(2,2,3);
plot(n, x);
axis([0, 100, -2, 2]);
xlabel('时间序号 n'); ylabel('振幅');
title('输入信号');
subplot(2,2,4);
个信号,再对输出信号进行分析。
2.2 在2.1的基础上编写num=ones[1 -1],运行程序得出结论。
2.4 分别用扫频信号通过2.1、2.2的系统,进行比较分析。
2.7 分别计算出y1[n]和y2[n],得到yt[n];再利用filter函数求得y[n],计算差值输出,比较y[n]和yt[n]。
实验二 离散时间系统的时域分析
实验室名称: 实验时间:
姓 名: 学号: 专业: 指导教师:
成绩
教师签名: 年 月 日
一、实验目的
1.利用MATLAB仿真简单的离散时间系统,研究其时域特性;
2.对线性时不变系统进行重点分析研究,掌握其特性。
二、实验内容
2.1 对M=2,运行上述程序,生成输入x[n]=s1[n]+s2[n]的输出信号。输入x[n]的哪个分量被该离散时间系统抑制?
y = filter(num,den,x,ic);
yt = a*y1 + b*y2;
d = y - yt;
subplot(3,1,1)
stem(n,y);
ylabel('振幅');
title('加权输入: a \cdot x_{1}[n] + b \cdot x_{2}[n]的输出');
subplot(3,1,2)
%扫频信号通过2.1系统:
clf;
n = 0:100;
s1 = cos(2*pi*0.05*n);
s2 = cos(2*pi*0.47*n);
a = pi/2/100;
b = 0;
arg = a*n.*n + b*n;
x = cos(arg);
M = input('滤波器所需的长度=');
num = ones(1,M);
x2 = cos(2*pi*0.4*n);
x = a*x1 + b*x2;
num = [2.2403 2.4908 2.2403];
den = [1 -0.4 0.75];
ic = [0 0];
y1 = filter(num,den,x1,ic);
y2 = filter(num,den,x2,ic);
y = filter(num,1,x)/M;
subplot(2,2,1);
plot(n, s1);
axis([0, 100, -2, 2]);
xlabel('时间序号 n'); ylabel('振幅');
title('信号 #1');
subplot(2,2,2);
plot(n, s2);axiຫໍສະໝຸດ ([0, 100, -2, 2]);
s2 = cos(2*pi*0.47*n);
x = s1+s2;
M = input('滤波器所需的长度=');
num = ones(1,M);
y = filter(num,1,x)/M;
subplot(2,2,1);
plot(n, s1);
axis([0, 100, -2, 2]);
xlabel('时间序号 n'); ylabel('振幅');
% Program P2_4
clf;
n = 0:40; D = 10;a = 3.0;b = -2;
x = a*cos(2*pi*0.1*n) + b*cos(2*pi*0.4*n);
xd = [zeros(1,D) x];
num = [2.2403 2.4908 2.2403];
den = [1 -0.4 0.75];
2.7 运行程序P2.3,对由加权输入得到的y[n]与在相同权系数下输出y1[n]和y2[n]相加得到的yt[n]进行比较,这两个序列是否相等?该系统是线性系统吗?
2.12 运行程序P2.4并比较输出序列y[n]和yd[n-10]。这两个系列之间有什么关系?该系统是时不变系统吗?
2.19 运行程序P2.5,生成式(2.15)所给离散时间系统的冲激响应。
ic = [0 0];
y = filter(num,den,x,ic);
yd = filter(num,den,xd,ic);
d = y - yd(1+D:41+D);
subplot(3,1,1)
stem(n,y);
ylabel('振幅');
title('输出 y[n]'); grid;
subplot(3,1,2)
2.19 运行程序P2.5,生成式(2.15)所给离散时间系统的冲激响应。
% Program P2_5
clf;
N = 40;
num = [2.2403 2.4908 2.2403];
den = [1 -0.4 0.75];
y = impz(num,den,N);
stem(y);
xlabel('时间序号n'); ylabel('振幅');
title('冲激响应'); grid;
2.20 修改程序P2.5,产生如下因果线性时不变系统的冲激响应的前45个样本:
clf;
N = 45;
num = [0.9 -0.45 0.35 0.002];
den = [1 0.71 -0.46 -0.62];
y = impz(num,den,N);
stem(y);
plot(n, x);
axis([0, 100, -2, 2]);
xlabel('时间序号 n'); ylabel('振幅');
title('输入信号');
subplot(2,2,4);
plot(n, y);
axis([0, 100, -2, 2]);
xlabel('时间序号 n'); ylabel('振幅');
三、实验器材及软件
1.微型计算机1台
2. MATLAB 7.0软件
四、实验原理
1.三点平滑滤波器是一个线性时不变的有限冲激响应系统,将输出延时一个抽样周期,可得到三点平滑滤波器的因果表达式,生成的滤波器表示为
归纳上式可得