数字信号处理实验总结Word格式文档下载.doc

上传人:b****9 文档编号:13059085 上传时间:2022-10-04 格式:DOC 页数:33 大小:772.50KB
下载 相关 举报
数字信号处理实验总结Word格式文档下载.doc_第1页
第1页 / 共33页
数字信号处理实验总结Word格式文档下载.doc_第2页
第2页 / 共33页
数字信号处理实验总结Word格式文档下载.doc_第3页
第3页 / 共33页
数字信号处理实验总结Word格式文档下载.doc_第4页
第4页 / 共33页
数字信号处理实验总结Word格式文档下载.doc_第5页
第5页 / 共33页
点击查看更多>>
下载资源
资源描述

数字信号处理实验总结Word格式文档下载.doc

《数字信号处理实验总结Word格式文档下载.doc》由会员分享,可在线阅读,更多相关《数字信号处理实验总结Word格式文档下载.doc(33页珍藏版)》请在冰豆网上搜索。

数字信号处理实验总结Word格式文档下载.doc

③正弦序列,,其中A=2;

f=10;

=0.005;

A=2;

f=10;

Ts=0.005;

n=0:

x=A*sin(2*pi*f*n*Ts);

stem(n,x)

③指数序列,

x=0.9.^n;

④复指数序列,,画出该序列的实部、虚部,幅值和相位。

可通过下列语句实现:

实部real(x),虚部imag(x),幅值abs(x),相位angle(x)

n=-20:

20;

x=exp(0.05+j*pi/6*n);

xr=real(x);

xi=imag(x);

xm=abs(x);

xa=angle(x);

figure;

subplot(411);

stem(n,xr);

title('

实部'

);

subplot(412);

stem(n,xi);

虚部'

subplot(413);

stem(n,xm);

模'

subplot(414);

stem(n,xa);

相角'

2、用MATLAB实现两个序列相加:

序列1:

x1=[10.50.30],n1=1:

4;

序列2:

x2=[0.20.30.40.50.81],n2=1:

6;

实现x=x1+x2,n=1:

8,并画出x的图形。

MATLAB中可用算术运算符“+”实现序列相加,但两个序列的长度必须相等。

如果序列长度不等,或者长度虽然相等但采样的位置不同,就不能运用“+”了。

当两序列的长度不等或位置不对应时,首先应使两者位置对齐,然后通过zeros函数左右补零使其长度相等后再进行相加。

x1=[1,0.5,0.3,0];

x2=[0.2,0.3,0.4,0.5,0.8,1];

n1=1:

4;

n2=1:

6;

n=1:

8;

x3=[x1,0,0];

x=x3+x2;

y=[x,0,0];

stem(n,y)

3、用MATLAB实现序列的反转:

实现,序列x(n)采用,并画出y(n)的图形。

可利用fliplr(x)函数,例如:

x=[1234];

y=fliplr(x);

结果为y=[4321],要实现对fliplr(x)函数进行合理运用。

x=[zeros(1,3),1,ones(1,7)];

y=fliplr(x);

n1=-fliplr(n);

stem(n1,y);

4、序列的尺度变换,实现插值和抽取:

已知序列用MATLAB分别实现下列尺度变换。

可对序列x(n)的下标进行取余计算,余数为零即为插值和抹去的点,函数如下:

mod(nx,m),nx为序列x(n)的下标,m为插值或抽取的倍数。

clearall;

x=[1,2,3,4,5,6,7,8];

n=-4:

3;

n1=n(1:

2:

length(n));

y1=x(1:

length(x));

subplot(211);

stem(n1,y1);

axis([-5307]);

y2=zeros(1,16);

fork=1:

8

y2(2*k)=x(k);

End;

subplot(2,1,2);

stem(-8:

6,y2(2:

end));

四、思考题

1.若用C语言实现有限长序列的加法,编程如何实现?

与MATLAB相比,优缺点,繁简度如何?

2.MATLAB中可用算术运算符“+”实现序列相加,用算术运算符“*”实现序列相乘,试问用MATLAB求任意序列相加、相乘时,分别应注意什么?

3.分析stem(n,x)和plot(t,x)函数使用时的异同点。

实验二离散时间系统的表达及计算

1.掌握离散系统的性质、输入输出关系及卷积运算;

2.掌握离散系统常系数线性差分方程的解法。

一个离散时间系统在数学上的定义是将输入序列x(n)映射成输出序列y(n)的唯一性变

换或运算。

它的输入是一个序列,输出也是一个序列,其本质是将输入序列转变成输出序列的一个运算。

在数字信号处理中,通常研究的离散系统大都为LSI系统。

1.求两个序列的卷积(离散线性卷积)

对于一个LSI系统,设其输入序列为,其中。

系统为单位冲激响应,编程求出输出序列,并画出图形。

输出序列应是输入序列和系统单位冲激相应序列的卷积,在Matlab中可用conv函数来实现两个序列的卷积。

但是使用conv函数求卷积时,两序列卷积后的输出序列的下标不是任意的(具体是多少,查函数),所以需要自己构造下标。

n=-5:

50;

u1=stepseq(0,-5,50);

u2=stepseq(10,-5,50);

x=u1-u2;

h=((0.9).^n).*u1;

[y,ny]=conv1(x,n,h,n);

stem(ny,y);

function[x,n]=stepseq(n0,n1,n2);

ifnargin~=3

disp('

Usage:

Y=stepseq(n0,n1,n2)'

elseif((n0<

n1)|(n0>

n2)|(n1>

n2))

error('

arguments?

must?

satisfy?

n1<

=n0<

=n2'

n=[n1:

n2];

x=[(n-n0)>

=0];

function[y,ny]=conv1(x,nx,h,nh)

ifnargin~=4

Y=conv_m(x,nx,h,nh)'

return;

end;

nyb=nx

(1)+nh

(1);

nye=nx(length(x))+nh(length(x));

ny=[nyb:

nye];

y=conv(x,h);

2.求两个序列的卷积(离散周期卷积)

已知序列,,计算它们的周期卷积。

将和的主值序列x(n)和y(n)作线性卷积,然后再将线性卷积序列以N为周期进行周期延拓。

x=[1,0,1,2,1];

y=[1,1,0,1,2];

z=conv(x,y);

m=0:

h=[z(6:

9),0];

h1=h+z(1:

5);

h2=[h1h1h1];

stem(h2)

3.已知LSI系统的差分方程为:

,其中

求单位冲激响应,并画出图形。

可以使用filter函数来完成,其调用格式为,注意b,a,x参数都代表什么,如何设置。

clearall

b=[1];

a=[1-10.9];

100;

N=120;

x=[zeros(1,20),1,zeros(1,100)];

y=filter(b,a,x);

stem(n,y);

axis([-20100-22]);

4.已知LSI系统的差分方程为:

求单位阶跃响应,并画出图形。

a=[1-10.9];

N=120;

n=-20:

x=[zeros(1,20),1,ones(1,100)];

g=filter(b,a,x);

stem(n,g);

思考题

1.conv函数来实现两个序列的卷积,其默认下标为?

(10分)

2.离散线性卷积与离散周期卷积的区别?

(20分)

3.解差分方程时,a、b分别代表什么?

当差分方程为时,a、b分别为多少?

4.解释filter函数?

实验三z变换及反变换

一.实验目的

1.通过Matlab编程,熟悉z变换定义及逆z变换常用方法,加深对z变换性质及其收敛域

的理解;

2.通过Matlab编程实现离散信号及系统的z域分析;

3.掌握利用Matlab编程求解差分方程的方法。

二.实验原理

z变换性质、求逆z变换的方法、系统的z域表示方法及差分方程的求解方法。

三.实验内容

1.z正变换:

已知序列x1=[1,0,5,6],其中;

与x2=[1,3,5,2],其中,,求其卷积信号x=x1*x2的z变换。

例将序列x1进行Z变换,则根据公式

(与序列x1比较)

也就是说,没必要在Matlab命令窗口中显示出完整序列z变换的表达式,通过序列的位置信息和该位置信息上所对应的序列值,即可在报告中将该序列的z变换写出来。

x1=[1,0,5,6];

x2=[1,3,5,2];

symsz;

x=conv(x1,x2);

s=0;

forn=1:

length(x)

s=s+x(n)*z^(-n+1);

s

x=131023434012

s=3/z+10/z^2+23/z^3+43/z^4+40/z^5+12/z^6+1

2.z反变换:

已知与,求的逆z变换;

思路与上题相同。

通过X1(z)和X2(z)找出序列x1(n)和x2(n),直接求x1(n)和x2(n)的卷积,即是求X1(z)·

X2(z)的逆z变换。

注意序列x1(n)和x2(n)的n的取值范围。

n1=-1:

1;

n2=-2:

x1=[1,2,3];

x2=[2,4,3,5];

y=conv(x1,x2);

n=n1

(1)+n2

(1):

n1(3)+n2(4);

3.离散时间线性时不变系统的时域实现:

已知因果LSI系统的差分方程为:

,写出系统传递函数H(z)及其收敛域,编程实现以下内容:

①系统冲激响应h(n),并绘图;

②系统的单位阶跃响应g(n),并绘图;

③系统函数的幅频响应H(ejw),并绘出幅频和相频特性。

①冲激响应可用impz(b,a,n)函数,可查看MatlabHelp了解它的相关用法。

impz函数:

数字滤波器的冲激响应,用来求系统的冲激响应h(n)。

b是差分方程中输入的系数,a是差分方程中输出的系数。

注意缺项的系数前要添加系数0。

这个函数本身就有画图功能。

如果n是一个整形变量,impz计算的是在这些整数点位置上的冲激响应,且从0开始。

②单位阶跃响应可用stepz(b,a,n)函数,可查看MatlabHelp了解它的相关用法。

与impz用法相似。

③幅频响应

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

当前位置:首页 > 党团工作 > 思想汇报心得体会

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

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