数字信号处理实验2

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数字信号处理实验2 ——离散系统频率响应和零极点分布姓名:李倩

学号:

班级:通信四班

指导教师:周争

一.实验原理

离散时间系统的常系数线性差分方程:

求一个系统的频率响应:

H(e^jw)是以2pi为周期的连续周期复函数,将其表示成模和相位的形式:

H(e^jw)=|H(e^jw)|*e^(jarg[H(e^jw)])

其中|H(e^jw)|叫做振幅响应(幅度响应),频率响应的相位arg[H(e^jw)]叫做系统的相位响应。

将常系数线性差分方程的等式两边求FT,可以得到系统的频率响应与输入输出的频域关系式:

H(e^jw)=Y(e^jw)/X(e^jw)

将上式中的e^jw用z代替,即可得系统的系统函数:

H(z)=Y(z)/X(z)

H(z)=∑h(n)*z^(-n)(n的取值从负无穷到正无穷)

将上式的分子、分母分别作因式分解,可得到LTI系统的零极点增益表达式为:

H(z)=g∏(1-zr*z^(-1))/∏(1-pk*z^(-1))

其中g为系统的增益因子,pk(k=1,2,3,…,N)为系统的极点,zr(r=1,2,3,…,M)为系统的零点。通过系统的零极点增益表达式,可以判断一个系统的稳定性,对于一个因果的离散时间系统,若所有的极点都在单位圆内,则系统是稳定的。

二.实验内容

一个LTI离散时间系统的输入输出差分方程为

y(n)-1.6y(n-1)+1.28y(n-2)=0.5x(n)+0.1x(n-1)

(1)编程求此系统的单位冲激响应序列,并画出其波形。

(2)若输入序列x(n)=&(n)+2&(n-1)+3&(n-2)+4&(n-3)+5&

(n-4),编程求此系统输出序列y(n),并画出其波形。

(3)编程得到系统频响的幅度响应和相位响应并画图。

(4)编程得到系统的零极点分布图,分析系统的因果性和稳定性。三.程序与运行结果

(1)编程求此系统的单位冲激响应序列,并画出其波形。

程序:

clear;

N=100;

b=[0.5 0.1];

a=[1 -1.6 1.28];

h1=impz(b,a,N); %计算系统的冲激响应序列的前N个取样点x1=[1 zeros(1,N-1)]; %生成单位冲激序列

h2=filter(b,a,x1); %计算系统在输入单位冲激序列时的输出subplot(2,1,1);

stem(h1);

xlabel('时间序号n');

ylabel('单位冲激响应序列值');

title('单位冲激响应序列h1(n)');

subplot(2,1,2);

stem(h2);

xlabel('时间序号n');

ylabel('单位冲激响应序列值');

title('单位冲激响应序列h2(n)');

运行结果:

0102030

405060708090100

-1

012

5

时间序号n

单位冲激响应序列值

单位冲激响应序列h1(n)

0102030

405060708090100

-1

012

5

时间序号n

单位冲激响应序列值

单位冲激响应序列h2(n)

结果说明:可以用impz 函数直接求出系统的单位冲激响应序列,也可输入单位冲激序列,用filter 函数求出系统的单位冲激响应序列,两者求得的结果相同。单位冲激序列可以用zeros 函数来实现。 (2) 若输入序列x(n)=&(n)+2&(n-1)+3&(n-2)+4&(n-3)+5&

(n-4),编程求此系统输出序列y(n),并画出其波形。 程序: clear; N=100; n=0:99; b=[0.5 0.1]; a=[1 -1.6 1.28]; h1=impz(b,a,N);

x2=[1 2 3 4 5 zeros(1,N-5)]; %生成一个只在n=0,1,2,3,4处有对应值1,2,3,4,5,其他n值情况下值为零的序列

y1=conv(x2,h1); %计算卷积求系统输出

y2=filter(b,a,x2); %求系统输出

subplot(2,1,1);

stem(n,y1(1:length(y2))); %使得y1和y2的图形取值范围相同

xlabel('时间序号n');

ylabel('输出序列幅度值');

title('输出序列y1(n)');

subplot(2,1,2);

stem(n,y2);

xlabel('时间序号n');

ylabel('输出序列幅度值');

title('输出序列y2(n)');

运行结果:

0102030

405060708090100

6

时间序号n 输出序列幅度值

输出序列y1(n )

10

20

30

40506070

80

90

100

6

时间序号n

输出序列幅度值

输出序列y2(n )

结果说明:由卷积算出来的输出y 的序列长度为

length(x)+length(h)-1,将其长度限定为用filter 函数求出的输出y 的序列长度相同后,两者的图相同。

(3) 编程得到系统频响的幅度响应和相位响应并画图。 程序: clear; b=[0.5 0.1]; a=[1 -1.6 1.28]; fs=1000;

[h,f]=freqz(b,a,256,fs); %计算系统的频率响应值与对应的频率值

相关文档
最新文档