数字信号处理实验报告二.docx

上传人:b****6 文档编号:7082051 上传时间:2023-01-17 格式:DOCX 页数:15 大小:186.48KB
下载 相关 举报
数字信号处理实验报告二.docx_第1页
第1页 / 共15页
数字信号处理实验报告二.docx_第2页
第2页 / 共15页
数字信号处理实验报告二.docx_第3页
第3页 / 共15页
数字信号处理实验报告二.docx_第4页
第4页 / 共15页
数字信号处理实验报告二.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

数字信号处理实验报告二.docx

《数字信号处理实验报告二.docx》由会员分享,可在线阅读,更多相关《数字信号处理实验报告二.docx(15页珍藏版)》请在冰豆网上搜索。

数字信号处理实验报告二.docx

数字信号处理实验报告二

数字信号处理实验报告

(二)

学院:

计算机科学与信息学院专业:

网络工程班级:

网络092

姓名

王荣森

学号

0908060386

实验组

实验时间

2012/5/9

指导教师

吕晓丹

成绩

实验项目名称

实验二、离散系统的时域分析

实验目的

1、熟悉并掌握离散系统的差分方程表示法;

2、加深对冲激响应和卷积分析方法的理解。

实验要求

1、在MATLAB中,熟悉利用函数

实现差分方程的仿真;

2、在MATLAB中,熟悉用函数

计算卷积,用

求系统冲激响应的过程。

实验原理

在时域中,离散时间系统对输入信号或者延迟信号进行运算处理,生成具有所需特性的输出信号,具体框图如下:

其输入、输出关系可用以下差分方程描述:

输入信号分解为冲激信号,

记系统单位冲激响应

,则系统响应为如下的卷积计算式:

时,h[n]是有限长度的(n:

[0,M]),称系统为FIR系统;反之,称系统为IIR系统。

实验仪器

PcMATLAB

实验内容

1、以下程序中分别使用conv和filter函数计算h和x的卷积y和y1,运行程序,并分析y和y1是否有差别,为什么要使用x[n]补零后的x1来产生y1;具体分析当h[n]有i个值,x[n]有j个值,使用filter完成卷积功能,需要如何补零?

%ProgramP2_7

clf;

h=[321-210-403];%impulseresponse

x=[1-23-4321];%inputsequence

y=conv(h,x);

n=0:

14;

subplot(2,1,1);

stem(n,y);

xlabel('Timeindexn');ylabel('Amplitude');

title('OutputObtainedbyConvolution');grid;

x1=[xzeros(1,8)];

y1=filter(h,1,x1);

subplot(2,1,2);

stem(n,y1);

xlabel('Timeindexn');ylabel('Amplitude');

title('OutputGeneratedbyFiltering');grid;

2、编制程序求解下列两个系统的单位冲激响应和阶跃响应,并绘出其图形。

要求分别用filter、conv、impz三种函数完成。

 给出理论计算结果和程序计算结果并讨论。

实验步骤

及实验数据

1、以下程序中分别使用conv和filter函数计算h和x的卷积y和y1,运行程序,并分析y和y1是否有差别,为什么要使用x[n]补零后的x1来产生y1;具体分析当h[n]有i个值,x[n]有j个值,使用filter完成卷积功能,需要如何补零?

%ProgramP2_7

clf;

h=[321-210-403];%impulseresponse

x=[1-23-4321];%inputsequence

y=conv(h,x);

n=0:

14;

subplot(2,1,1);

stem(n,y);

xlabel('Timeindexn');ylabel('Amplitude');

title('OutputObtainedbyConvolution');grid;

x1=[xzeros(1,8)];

y1=filter(h,1,x1);

subplot(2,1,2);

stem(n,y1);

xlabel('Timeindexn');ylabel('Amplitude');

title('OutputGeneratedbyFiltering');grid;

程序运行结果:

由图可看出,y与y1并无差别。

使用x[n]补零后的x1来产生y1,是因为存在边界效应,只要脉冲响应采样电部分位于输入信号采样值之外,输出就不确定,如:

x1-23-43212

h30-401-2123241

需变换成如下才能确定输出:

x1-23-4321200000000000

h30-401-2123241

此时n=18。

用conv函数计算能再输入序列后自动补零,而filter函数不能。

分析:

(1)

h=[142321-210-403];%impulseresponsei=12

x=[1-23-43212];%inputsequencej=8

n=0:

17;

x1=[xzeros(1,10)];%补十个零值

y1=filter(h,1,x1);

stem(n,y1);

xlabel('Timeindexn');ylabel('Amplitude');

title('OutputGeneratedbyFiltering');

grid

(1)图

(2)

h=[142321-210-403];%impulseresponsei=12

x=[1-23-43212];%inputsequencej=8

n=0:

18;

x1=[xzeros(1,11)];%补11个零值

y1=filter(h,1,x1);

stem(n,y1);

xlabel('Timeindexn');ylabel('Amplitude');

title('OutputGeneratedbyFiltering');grid

(2)图

(3)

h=[142321-210-403];%impulseresponsei=12

x=[1-23-43212];%inputsequencej=8

n=0:

30;

x1=[xzeros(1,23)];%补23个零值

y1=filter(h,1,x1);

stem(n,y1);

xlabel('Timeindexn');ylabel('Amplitude');

title('OutputGeneratedbyFiltering');grid;

(3)图

对照

(1)、

(2)图,当n=18时两图有区别,

(2)图能完全卷积,当补零数少于j-1,就不能完全卷积。

对照

(2)、(3)图可知,不零数可大于j-1,须满足n的长度与补零后x1的长度相等。

h[n]有i个值,x[n]有j个值,以n为x轴,n=0:

N,使用x[n]补零后的x1来产生y1,由上述图可知,要完全卷积,x1至少需补j-1个零值。

其中N>=(i+j-1)-1,n的长度与补零后x1的长度相等,若x1中补a个零值(a>=j-1),则N=i+a-1。

2、编制程序求解下列两个系统的单位冲激响应和阶跃响应,并绘出其图形。

要求分别用filter、conv、impz三种函数完成。

给出理论计算结果和程序计算结果并讨论。

理论计算结果:

单位冲激响应:

n012345……

h[n]1-1.751.19-0.670.355-0.18…….

Y[n]1-1.751.19-0.670.355-0.18……

单位阶跃响应:

n012345……

Y[n]1-0.750.44-0.2340.12-0.06……

单位冲激响应:

n012345……

Y[n]00.250.250.250.250……

单位阶跃响应:

n012345……

Y[n]00.250.50.7511……

程序计算结果:

I.

a.单位冲激响应:

(1)用filter函数

a1=[1,0.75,0.125];

b1=[1,-1];

n=0:

20;

x1=[1zeros(1,20)];

y1filter=filter(b1,a1,x1);

stem(n,y1filter);

title('y1filter');

xlabel('x');

ylabel('y');

(2)用conv函数

a1=[1,0.75,0.125];

b1=[1,-1];

x1=[1zeros(1,10)];

[h]=impz(b1,a1,10);

y1conv=conv(h,x1);

n=0:

19;

stem(n,y1conv,'filled')

(3)用impz函数

a1=[1,0.75,0.125];

b1=[1,-1];

impz(b1,a1,21);

b.单位阶跃响应:

(1)用filter函数

a1=[1,0.75,0.125];

b1=[1,-1];

n=0:

20;

x2=ones(1,21);

y1filter=filter(b1,a1,x2);

stem(n,y1filter);

title('y1filter_step');

xlabel('x');

ylabel('y');

(2)用conv函数

a1=[1,0.75,0.125];

b1=[1,-1];

x2=ones(1,21);

[h]=impz(b1,a1,20);

y1=conv(h,x2);

y1conv=y1(1:

21);%为何y1conv要取y1中1:

21的值,解释见

n1=0:

20;%y2单位阶跃响应用conv函数中注释

stem(n1,y1conv,'filled');

title('y1conv');

xlabel('n');

ylabel('y1[n]');

(3)用impz函数

a=[1,0.75,0.125];

b=1;

impz(b,a)

II.y[n]=0.25(x[n-1]+x[n-2]+x[n-3]+x[n-4])

a.单位冲激响应:

(1)用filter函数

a2=1;

b2=[00.25*ones(1,4)];

n=0:

9;

x1=[1zeros(1,9)];

y2filter=filter(b2,a2,x1);

stem(n,y2filter);

title('y2filter');

xlabel('x');

ylabel('y')

(2)用conv函数

a2=1;

b2=[00.25*ones(1,4)];

x1=[1zeros(1,5)];

[h]=impz(b2,a2,5);

y2conv=conv(h,x1);

n=0:

9;

stem(n,y2conv,'filled')

(3)用impz函数

a2=1;

b2=[00.25*ones(1,4)];

impz(b2,a2,10);

b.单位阶跃响应:

(1)用filter函数

a2=1;

b2=[00.25*ones(1,4)];

n=0:

20;

x2=ones(1,21);

y2filter=filter(b2,a2,x2);

stem(n,y2filter);

title('y2filter_step');

xlabel('x');

ylabel('y')

(2)用conv函数

h=[00.25*ones(1,4)];

x2=ones(1,21);

n=0:

20;

y2=conv(h,x2);

y2conv=y2(1:

21);%当x[n]输入序列为无限时,因为画图需取有

stem(n,y2conv,'filled');%限个值,题中x2取21个值,h有5个值,卷积

title('y2conv');%结果y2有21+5—1=25个值,进行卷积时,

xlabel('n');%x2有限个值后与y2对应位置以补零进行计

ylabel('y[n]')%算,而实际这部分值为1,所以,应将y2中对

%应x2补零位置的值去掉。

当x[n]为有限序列

%时,不用如上考虑。

(3)用impz函数

S[n]=y[n]=0.25

+0.5

+0.75

+u[n-4]

源程序:

n=0:

20;

b=[0,0.25,0.5,0.75,ones(1,17)];

a=1;

impz(b,a,21)

实验总结

指导教师意见

 

签名:

年月日

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 其它模板

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1