文档库 最新最全的文档下载
当前位置:文档库 › 实验二离散时间信号的时域分析讲解

实验二离散时间信号的时域分析讲解

实验二离散时间信号的时域分析讲解
实验二离散时间信号的时域分析讲解

实验二离散时间信号的时域分析

陈一凡20112121006

一、实验目的:

学习使用MATLAB命令产生滑动平均滤波器;

学习使用MATLAB命令产生一个简单的非线性离散时间系统;

学习使用MATLAB命令产生线性与非线性系统;

学习使用MATLAB命令产生时不变系统和时变系统;

学习使用MATLAB命令产生线性时不变系统的冲激响应;

学习使用MATLAB命令产生线性时不变系统的级联;

学习使用MATLAB命令产生有限冲击响应系统的输出序列;

学习使用MATLAB命令产生线性时不变系统的冲击响应的绝对值之和;

学习使用MATLAB命令产生两个离散时间系统;

二、实验原理简述:

运用运算符和特殊符号,基本矩阵和矩阵控制,基本函数,数据分析,二维图形,通用图形函数,信号处理工具箱等命令,产生离散时间系统等。

三、实验内容与实验结果

1、产生并绘制一个滑动平均滤波器

运行程序

clf;

n=0:100;

s1=cos(2*pi*0.05*n);

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('振幅');

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,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('振幅'); title('输出信号'); axis ;

滤波器所需的长度=2 实验结果如图1所示 ans =

0 100 -2 2

50

100

-2

-101

2时间序号n 振幅

信号#1

50

100

-2

-101

2时间序号n 振幅

信号#2

50

100

-2-101

2时间序号n

振幅

输入信号

50

100

-2-101

2时间序号n

振幅

输出信号

图1

2、生成一个简单的非线性离散时间系统: 运行程序: clf;

n=0:200;

x=sin(2*pi*0.05*n)+1; x1=[x 0 0]; x2=[0 x 0]; x3=[0 0 x];

y=x2.*x2-x1.*x3; y=y(2:202); subplot(2,1,1) plot(n,x)

xlabel('时间序号n');ylabel('振幅'); title('输入信号') subplot(2,1,2) plot(n,y)

xlabel('时间序号n');ylabel('振幅'); title('输出信号'); 实验结果如图2所示

0204060

80100120140160180200

0.511.5

2时间序号n 振幅

输入信号

0204060

80100120140160180200

-0.5

0.5

1时间序号n

振幅

输出信号

图2

3.生成一个产生线性与非线性系统: 运行程序: clf; n=0:40; a=2;b=-3;

x1=cos(2*pi*0.1*n); 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,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) stem(n,y);

ylabel('振幅');

title('加权输出t:a\cdot y_{1}[n]+b\cdot y_{2}[n]'); subplot(3,1,3) stem(n,d);

xlabel('时间序号n');ylabel('振幅'); title('差信号'); 实验结果如图3所示

5

10

15

20

25

30

35

40

-40-20020振幅

加权输入:a ? x 1[n]+b ? x 2[n]的输出

0510152025303540

-50

050

振幅

加权输出t:a ? y 1[n]+b ? y 2[n]

051015

2025303540

-5

05

x 10

-15

时间序号n

振幅

差信号

图3

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]; 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) stem(n,yd(1:41)); ylabel('振幅');

title(['由于延时输入x[n',num2str(D),']的输出']);grid; subplot(3,1,3) stem(n,d);

xlabel('时间序号n');ylabel('振幅'); title('差值信号');grid; 实验结果如图4所示

5

10

15

20

25

30

35

40

-40-20020振幅

输出y[n]

0510152025303540

-50050振幅

由于延时输入x[n10]的输出

051015

2025303540

-1

01

时间序号n

振幅

差值信号

图4

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; 实验结果如图5所示:

51015

2025303540

-3-2-101

2

3

4

时间序号n

振幅

冲激响应

图5

6、编写程序得到线性时不变系统的级联: 运行程序: clf;

x=[1 zeros(1,40)]; n=0:40;

den=[1 1.6 2.28 1.325 0.68];

num=[0.06 -0.19 0.27 -0.26 0.12]; y=filter(num,den,x);

num1=[0.3 -0.2 0.4];den1=[1 0.9 0.8]; num2=[0.2 -0.5 0.3];den2=[1 0.7 0.85]; y1=filter(num1,den1,x); y2=filter(num2,den2,y1); d=y-y2;

subplot(3,1,1); stem(n,y);

ylabel('振幅');

title('四阶实现的输出');grid subplot(3,1,2); stem(n,y2); ylabel('振幅');

title('级联实现的输出');grid subplot(3,1,3); stem(n,d);

xlabel('时间序号n');ylabel('振幅'); title('差值信号');grid ; 实验结果如图6所示:

0510152025303540

-101

振幅

四阶实现的输出

0510152025303540

-1

01

振幅

级联实现的输出

5

10

15

202530

35

40

-0.5

00.5

x 10

-14

时间序号n

振幅

差值信号

图6

7、产生一个振幅调制信号: 运行程序: clf;

h=[3 2 1 -2 1 0 -4 0 3]; x=[1 -2 3 -4 3 2 1]; y=conv(h,x); n=0:14;

subplot(2,1,1); stem(n,y);

xlabel('时间序号n');ylabel('振幅'); title('用卷积得到的输出');grid; x1=[x zeros(1,8)]; y1=filter(h,1,x1); subplot(2,1,2); stem(n,y1);

xlabel('时间序号n');ylabel('振幅');title('由滤波生成的输出');grid;

实验结果如图7所示:

024

68101214

-20

-10010

20时间序号n 振幅

用卷积得到的输出

2

4

6810

12

14

-20-10010

20时间序号n

振幅

由滤波生成的输出

图7

8、产生线性时不变系统的冲击响应的绝对值之和:

运行程序: clf;

num=[1 -0.8];den=[1 1.5 0.9]; N=200;

h=impz(num,den,N+1); parsum=0; for k=1:N+1;

parsum=parsum+abs(h(k));

if abs(h(k))<10^(-6),break,end end n=0:N; stem(n,h)

xlabel('时间序号n');ylabel('振幅'); disp('值=');disp(abs(h(k))); 结果得 值=

1.6761e-005

实验结果如图8所示:

0204060

80100120140160180200

-3

-2

-1

1

2

3

时间序号n

振幅

图8

9、产生两个离散时间系统:

运行程序: clf;

n=0:299;

x1=cos(2*pi*10*n/256); x2=cos(2*pi*100*n/256); x=x1+x2;

num1=[0.5 0.27 0.77]; y1=filter(num1,1,x); den2=[1 -0.53 0.46]; num2=[0.45 0.5 0.45]; y2=filter(num2,den2,x); subplot(2,1,1);

plot(n,y1);axis([0 300 -2 2]); ylabel('振幅');

title('系统#1的输出'); grid;

subplot(2,1,2);

plot(n,y2);axis([0 300 -2 2]);

xlabel('时间序号n');ylabel('振幅'); title('系统#2的输出'); grid;

实验结果如图9所示:

050100150200250300

-2

-101

2振幅

系统#1的输出

050100

150200250300

-2

-101

2时间序号n

振幅

图9

四、实验分析:

针对实验1 产生滑动平均滤波器;

s1=cos(2*pi*0.05*n);即产生一个低频正弦信号; s2=cos(2*pi*0.47*n);即产生一个高频正弦信号; x=s1+s2;即滑动平均滤波器的实现;

M=input('滤波器所需的长度=');即定义输入; num=ones(1,M);

y=filter(num,1,x)/M;即定义滑动平均滤波器;

此程序是通过从若干个正弦信号之和所组成的信号中滤出高频分量,来实现滑动平均滤波器。

针对实验2 产生一个简单的非线性离散时间系统; x=sin(2*pi*0.05*n)+1;即产生一个正弦输入信号; x1=[x 0 0];即x1[n]=x[n+1]; x2=[0 x 0];即x2[n]=x[n]; x3=[0 0 x];即x3[n]=x[n-1];

y=x2.*x2-x1.*x3;即对输出信号的计算

此程序中输入信号是由两个正弦序列的和组成的,通过三点平滑滤波器的因果表达式得出线性时不变系统,产生输出信号。

针对实验3产生线性与非线性系统;

clf;

n=0:40;

a=2;b=-3;

x1=cos(2*pi*0.1*n);

x2=cos(2*pi*0.4*n);

x=a*x1+b*x2;即三个输入序列;

num=[2.2403 2.4908 2.2403];即对filter函数计算系统输出的num赋值;den=[1 -0.4 0.75];即对filter函数计算系统输出的den赋值;

ic=[0 0];即设置零初始条件

y1=filter(num,den,x1,ic);即计算输出y1[n];

y2=filter(num,den,x2,ic);即计算输出y2[n];

y=filter(num,den,x,ic);即计算输出y3[n];

yt=a*y1+b*y2;

d=y-yt;即计算差值输出d[n];

subplot(3,1,1)

stem(n,y);

ylabel('振幅');

title('加权输入:a\cdot x_{1}[n]+b\cdot x_{2}[n]的输出');

subplot(3,1,2)

stem(n,y);

ylabel('振幅');

title('加权输出t:a\cdot y_{1}[n]+b\cdot y_{2}[n]');

subplot(3,1,3)

stem(n,d);

xlabel('时间序号n');ylabel('振幅');

title('差信号');

此程序是在因果系统的线性特性的基础上,输入三个不同的输入序列,计算相应的输出响应。

针对实验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];

ic=[0,0];即设置初始条件;

y=filter(num,den,x,ic);计算输出y[n];

yd=filter(num,den,xd,ic);计算输出yd[n];

d=y-yd(1+D:41+D);计算差值输出d[n];

subplot(3,1,1)

stem(n,y);

ylabel('振幅');

title('输出y[n]');grid;

subplot(3,1,2)

stem(n,yd(1:41));

ylabel('振幅');

title(['由于延时输入x[n',num2str(D),']的输出']);grid;

subplot(3,1,3)

stem(n,d);

xlabel('时间序号n');ylabel('振幅');

title('差值信号');grid;

此程序通过描述因果系统的线性特征,输入两个不同的输入序列,计算并画出相应的输出序列。

针对实验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;

此程序用命令impz计算因果线性时不变离散时间系统的冲激相应的前N个样本。

针对实验6产生线性时不变系统的级联;

clf;

x=[1 zeros(1,40)];即生成输入;

n=0:40;

den=[1 1.6 2.28 1.325 0.68];即四阶系统的系数;

num=[0.06 -0.19 0.27 -0.26 0.12];

y=filter(num,den,x);即计算四阶系统的输出;

num1=[0.3 -0.2 0.4];den1=[1 0.9 0.8];即两个二阶系统的系数;

num2=[0.2 -0.5 0.3];den2=[1 0.7 0.85];

y1=filter(num1,den1,x);即级联第一级的输出y1[n];

y2=filter(num2,den2,y1);即级联第二级的输出y2[n];

d=y-y2;即y1[n]和y2[n]之间的差;

subplot(3,1,1);

stem(n,y);

ylabel('振幅');

title('四阶实现的输出');grid

subplot(3,1,2);

stem(n,y2);

ylabel('振幅');

title('级联实现的输出');grid

subplot(3,1,3);

stem(n,d);

xlabel('时间序号n');ylabel('振幅');

title('差值信号');grid;

此程序在实际应用中,由于高阶因果线性时不变离散时间系统可以用低阶因果线性时不变离散时间系统级联得到。四阶离散时间系统可用二阶离散时间系统的级联实现。先产生了序列x[n],把它作为四阶系统的输入,生成输出y[n];然后用同样的输入x[n]应用到第一级得到输出序列y1[n]。接下来,用y1[n]作为第二级的输入得到他的输出y2[n]。最后求出y[n]和y2[n]之间的差,并画出所有的输出信号和差值信号。

针对实验7产生有限冲击响应系统的输出序列

clf;

h=[3 2 1 -2 1 0 -4 0 3];

x=[1 -2 3 -4 3 2 1];

y=conv(h,x);即实现卷积;

n=0:14;

subplot(2,1,1);

stem(n,y);

xlabel('时间序号n');ylabel('振幅');

title('用卷积得到的输出');grid;

x1=[x zeros(1,8)];

y1=filter(h,1,x1);

subplot(2,1,2);

stem(n,y1);

xlabel('时间序号n');ylabel('振幅');title('由滤波生成的输出');grid;

在此程序中假设待卷积的两个序列都为有限长序列,通过卷积运算符可得到有限冲激响应系统的输出序列。

针对实验8产生线性时不变系统的冲击响应的绝对值之和;

clf;

num=[1 -0.8];den=[1 1.5 0.9];

N=200;

h=impz(num,den,N+1);

parsum=0;

for k=1:N+1;

parsum=parsum+abs(h(k));

if abs(h(k))<10^(-6),break,end

end

n=0:N;

stem(n,h)

xlabel('时间序号n');ylabel('振幅');

disp('值=');disp(abs(h(k)));

由于一个线性时不变系统的冲激响应是绝对可和的,则该程序就是BIBO稳定的。此程序就是计算因果iir线性是不变系统的冲激响应的绝对值之和。

针对实验9产生两个离散时间系统

clf;

n=0:299;

x1=cos(2*pi*10*n/256);即产生输入序列;

x2=cos(2*pi*100*n/256);

x=x1+x2;

num1=[0.5 0.27 0.77];即计算输出序列;

y1=filter(num1,1,x);即系统#1的输出;

den2=[1 -0.53 0.46];

num2=[0.45 0.5 0.45];

y2=filter(num2,den2,x);即系统#2的输出;

subplot(2,1,1);即画出输出序列;

plot(n,y1);axis([0 300 -2 2]);

ylabel('振幅');

title('系统#1的输出');grid;

subplot(2,1,2);

plot(n,y2);axis([0 300 -2 2]);

xlabel('时间序号n');ylabel('振幅');

title('系统#2的输出');grid;

此程序用差分方程描述了两个离散时间系统。

五、实验总结

在此次实验中,我学会了用MATLAB程序绘制图形,并且掌握了线性离散时间系统和线性时不变系统,离散时不变系统,有界输入有界输出系统,单位阶跃响应,卷积,级联,因果系统有了详细深入的认识。

习题求解:

Q2.4修改程序P2.1,用一个长度为101、最低频率为0、最高频率为0.5的扫描正弦信号作为输入信号,计算其输出信号。程序如下,结果如图10所示:clf;

n=0:100;

s1=cos(2*pi*0.0*n);

s2=cos(2*pi*0.5*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('振幅');

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,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('振幅'); title('输出信号'); Axis ;

输入滤波器所需的长度=2 得到结果: ans =

0 100 -2 2

50

100

-2

-101

2时间序号n 振幅

信号#1

50

100

-2

-101

2时间序号n 振幅

信号#2

50

100

-2-101

2时间序号n

振幅

输入信号

50

100

-2-101

2时间序号n

振幅

输出信号

图10

Q2.6用形如x[n]=sin(w0n)+K 的正弦信号作为输入信号,求出系统的输出信号。程序如下,结果如图11所示: clf;

n=0:200;

K=1; f=0.05; w=2*pi*f; x=cos(w*n)+K; x1=[x 0 0]; x2=[0 x 0]; x3=[0 0 x];

y=x2.*x2-x1.*x3; y=y(2:202); subplot(2,1,1) plot(n,x)

xlabel('时间序号n');ylabel('振幅'); title('输入信号') subplot(2,1,2) plot(n,y)

xlabel('时间序号n');ylabel('振幅'); title('输出信号')

0204060

80100120140160180200

0.511.5

2时间序号n 振幅

输入信号

0204060

80100120140160180200

-2

2

4时间序号n

振幅

输出信号

图11

Q2.11假定另一个系统为y[n]=x[n]x[n-1],修改程序P2.3,计算这个系统的输出序列y1[n],y2[n],和y[n].比较y[n]和yt[n]。运行程序如下,结果如图12; clf; n=0:40;

x1=cos(2*pi*0.1*n); x2=cos(2*pi*0.4*n);

y=x1.*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); y3=filter(num,den,y,ic); yt=y1+y2; d=y3-yt;

subplot(3,1,1) stem(n,y); ylabel('振幅');

title('加权输入:a\cdot x_{1}[n]+b\cdot x_{2}[n]的输出'); subplot(3,1,2) stem(n,y); ylabel('振幅');

title('加权输出t:a\cdot y_{1}[n]+b\cdot y_{2}[n]'); subplot(3,1,3) stem(n,d);

xlabel('时间序号n');ylabel('振幅'); title('差信号');

0510152025303540

-1

01

振幅

加权输入:a ? x 1[n]+b ? x 2[n]的输出

0510152025303540

-101

振幅

加权输出t:a ? y 1[n]+b ? y 2[n]

051015

2025303540

-10

010

时间序号n

振幅

差信号

图12

Q2.17考虑另一个系统,y[n]=nx[n]+x[n-1],修改程序P2.4。运行程序如下,结果如图13; 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]; 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) stem(n,yd(1:41)); ylabel('振幅');

title(['由于延时输入x[n',num2str(D),']的输出']);grid; subplot(3,1,3) stem(n,d);

xlabel('时间序号n');ylabel('振幅'); title('差值信号');grid;

5

10

15

20

25

30

35

40

-40-20020振幅

输出y[n]

0510152025303540

-50050振幅

由于延时输入x[n10]的输出

051015

2025303540

-1

01

时间序号n

振幅

差值信号

图13

Q2.20修改程序P2.,5产生如下因果线性时不变系统的冲激响应的前45个样本:y[n]+0.71- y[n-1]-0.46y[n-2]-0.62y[n-3]=0.9x[n]-0.45x[n-1]+0.35x[n-2]+0.002x[n-3]。运行程序如下,结果如

clf; N=45;

num=[1 0.71-0.46 -0.62]; den=[0.9 -0.45 0.35 0.002]; y=impz(num,den,N); stem(y);

xlabel('时间序号n');ylabel('振幅'); title('冲激响应');grid;

5

10

15

202530

35

40

45

-0.8

-0.6-0.4-0.200.20.4

0.60.81

1.2时间序号n

振幅

冲激响应

图14

Q2.26修改程序P2.6,将两个二阶系统顺序颠倒并在零初始条件下重复此过程。运行程序如下,结果如图15; clf;

x=[1 zeros(1,40)]; n=0:40;

den=[1 1.6 2.28 1.325 0.68];

num=[0.06 -0.19 0.27 -0.26 0.12]; y=filter(num,den,x);

num1=[0.2 -0.5 0.3];den1=[1 0.7 0.85]; num2=[0.3 -0.2 0.4];den2=[1 0.9 0.8]; y1=filter(num1,den1,x); y2=filter(num2,den2,y1); d=y-y2;

subplot(3,1,1);

ylabel('振幅');

title('四阶实现的输出');grid subplot(3,1,2); stem(n,y2);

ylabel('振幅');

title('级联实现的输出');grid subplot(3,1,3); stem(n,d);

xlabel('时间序号n');ylabel('振幅'); title('差值信号');grid

0510152025303540

-101

振幅

四阶实现的输出

0510152025303540

-1

01

振幅

级联实现的输出

051015

2025303540

-5

05

x 10

-15

时间序号n

振幅

差值信号

图15

Q2.28修改程序P2.7,用FIR 滤波器h[n]对输入x[n]滤波,求得y1[n]。运行程序如下,结果如图16; clf;

h=[3 2 1 -2 1 0 -4 0 3]; x=[1 -2 3 -4 3 2 1]; y=conv(h,x); n=0:14;

subplot(2,1,1); stem(n,y);

xlabel('时间序号n');ylabel('振幅'); title('用卷积得到的输出');grid;

利用labview进行信号的时域分析

利用labview进行信号的时域分析 信号的时域分析主要是测量测试信号经滤波处理后的特征值,这些特征值以一个数值表示信号的某些时域特征,是对测试信号最简单直观的时域描述。将测试信号采集到计算机后,在测试VI 中进行信号特征值处理,并在测试VI 前面板上直观地表示出信号的特征值,可以给测试VI 的使用者提供一个了解测试信号变化的快速途径。信号的特征值分为幅值特征值、时间特征值和相位特征值。 用于信号时域分析的函数,VIs,Express VIs主要位于函数模板中的Signal Processing子模板中,其中多数对象位于Waveform Measurements子模板,如图所示 LabVIEW8.0中用于信号分析的Waveform Measurements子模板 基本平均值与均方差VI 基本平均值与均方差VI-------Basic Averaged DC—RMS.vi用于测量信号的平均以及均方差。计算方法是在信号上加窗,即将原有信号乘以一个窗函数,窗函数的类型可以选择矩形窗、Haning窗、以及Low side lob窗,然后计算加窗后信号的均值以及均方差值。 演示程序的前面板和后面板如下图所示 Basic Averaged DC—RMS演示程序的前面板

Basic Averaged DC—RMS演示程序的后面板 平均值与均方差值 平均值与均方差值VI------Averaged DC—RMS.vi同样也是用于计算信号的平均值与均方差值,只是Averaged DC—RMS.vi的输出是一个波形函数,这里我们可以看到加窗截断后,正弦信号的平均值和均方差随时间变化的波形。 编写程序演示Average DC----Averaged—RMS.vi的使用方法,程序的后面板和前面板如下图所示 Averaged DC—RMS演示程序的后面板

matlab实现:常见的离散时间信号

1. 单位抽样序列,或称为离散时间冲激,单位冲激: ? ??=01)(n δ 00≠=n n 如果)(n δ在时间轴上延迟了k 个单位,得到)(k n -δ即: ???=-01)(k n δ 0≠=n k n 2.单位阶跃序列 ? ??01)(n u 00<≥n n 在MATLAB 中可以利用ones( )函数实现。 );,1(N ones x = 3.正弦序列 )(cos )(0φω+=n A n x 这里, ,,0ωA 和φ都是实数,它们分别称为本正弦信号)(n x 的振幅,角频率和初始相位。 πω200=f 为频率。 4.复正弦序列 n j e n x ω=)( 5.实指数序列 n A n x α=)( 6. 随机序列 长度为N 的随机序列 基本数学函数参考教材P69页以及随后的使用说明。 注意使用行向量,特别是冒号运算符。 举例,长度为N 的实指数序列在MATLAB 中实现: n a x N n .^1 :0=-= 1. 单位采样 长度为N 的单位采样序列u(n)可以通过下面的MATLAB 命令获得:

u=[1 )1,1(-N zeros ]; 延迟M 个采样点的长度为N 的单位采样序列ud(n)(M

实验一离散时间信号分析

实验一离散时间信号分析 一、实验目的 1. 初步掌握Matlab 的使用,掌握编写M 文件和函数文件 2. 掌握各种常用序列的表达,理解其数学表达式和波形表示之间的关系。 3. 掌握生成及绘制数字信号波形的方法。 4. 掌握序列的基本运算及实现方法。 5. 研究信号采样时采样定理的应用问题。 二、实验原理 1.序列的基本概念 离散时间信号在数学上可用时间序列{x(n)}来表示,其中x(n)代表序列的第n个数字,n 代表时间的序列,n 的取值范围为-∞< n<+∞的整数,n 取其它值x(n)没有意义。离散时间信号可以是由模拟信号通过采样得到,例如对模拟信号x a(t)进行等间隔采样,采样间隔为T,得到{x (nT )} a 一个有序的数字序列就是离散时间信号,简称序列。 2.常用序列 常用序列有:单位脉冲序列(单位抽样)δ(n)、单位阶跃序列u(n)、矩形序列R N(n)、 实指数序列、复指数序列、正弦型序列等。 3.序列的基本运算

序列的运算包括移位、反褶、和、积、标乘、累加、差分运算等。 4.序列的卷积运算 y(n)=∑ x (m )h (n ?m )+∞m=?∞ =x(n)*h(n) 上式的运算关系称为卷积运算,式中* 代表两个序列卷积运算。两个序列的卷积是一个序列与另一个序列反褶后逐次移位乘积之和,故称为离散卷积,也称两序列的线性卷积。其计算的过程包括以下4 个步骤。 (1)反褶:先将x (n )和h (n )的变量n 换成m ,变成x (m )和h (m ),再将h (m )以纵 轴为对称轴反褶成h (-m )。 (2)移位:将h (-m )移位n ,得h (n- m )。当n 为正数时,右移n 位;当n 为负数时, 左移n 位。 (3)相乘:将h (n -m )和x (m )的对应点值相乘。 (4)求和:将以上所有对应点的乘积累加起来,即得y (n )。 三、主要实验仪器及材料 PC 机、Matlab7.0。 四、实验内容 1.知识准备 认真复习以上基础理论,理解本实验所用到的实验原理。 2.离散时间信号(序列)的产生 利用MATLAB 产生和绘制下列有限长序列:

实验1离散时间信号的产生与运算

数字信号处理 实验报告 班级: 学号: 姓名:word文档可自由复制编辑

实验1离散时间信号的产生与运算 一、实验目的 (1)了解离散时间信号的特点。 (2)掌握在计算机中生成及绘制各种常用离散时间信号序列的方法。 (3)掌握序列的加、减、乘、除和平移、反转、尺度变换等基本运算及计算机的 实现方法。 二、实验原理 信号是随时间变化的物理量,而计算机只能处理离散信号。离散信号是在某些不连续的时间上有信号值,而在其它时间点上没有定义的一类信号。离散信号一般可以由连续信号通过模数转换得到。 常用的离散信号有单位脉冲序列、单位阶跃序列、复指数序列、正弦信号序列、随机序列等。 离散信号的基本运算包括信号的加、减、乘、除。离散信号的时域变换包括信号的平移、反转、尺度变换等。 三、实验内容与方法 1、编写程序,生成如下数字信号:sqrt(2*k)u(k错误!未找到引用源。3), δ(k+5)。 (1) f(k)=sqrt(2*k)u(k错误!未找到引用源。3) 代码: k=(1:10); n=3; u=[(k-n)>=0]; a=sqrt(2*k); stem(k,a.*u); title('sqrt(2*k)u(k 3)的图像'); xlabel('时间(k)');ylabel('幅值f(k)'); 运行图: word文档可自由复制编辑

(2) f(k)= δ(k+5) 代码: k1=-10;k2=0;k=k1:k2; n=-5; %单位脉冲出现的位置 f=[(k-n)==0]; stem(k,f,'filled');title('δ(k+5)序列的图像') xlabel('时间(k)');ylabel('幅值f(k)'); 运行图: word文档可自由复制编辑

用MATL新编实现常用的离散时间信号及其时域运算

用M A T L新编实现常用的离散时间信号及其 时域运算 公司内部编号:(GOOD-TMMT-MMUT-UUPTY-UUYY-DTTI-

实验四用MATLAB实现常用的离散时间信号及其时域运算 —— 摘要:在MATLAB中,只能用向量来表示离散时间信号。与连续信号不同,离散时 间信号无法用符号运算来表示。用适当的MATLAB语句表示出信号后,就可以利用MATLAB的绘图命令stem来绘出直观的信号波形图,stem是专门用于绘制离散时 间信号的。在MATLAB中离散序列的时域运算和变换不能用符号运算来实现,而必 须用向量表示的方法,即在MATLAB中离散序列的相加、相乘需表示成两个向量的 相加、相乘,因而参加运算的两序列向量必须有相同的维数。 一、实验目的:(1)学习MATLAB语言及其常用指令; (2)学习和掌握用MATLAB语言产生离散时间信号的编程方法; (3)通过编程绘制出离散时间信号的波形,加深理解信号的时域运 算。 二、实验内容:(1)运用MATLAB的绘图指令绘制离散时间信号; (2)用MATLAB语言实现离散时间信号的时域运算。 三、实验原理:(1)单位阶跃序列和单位样值序列。 离散时间信号只在某些离散的瞬时给出信号的值,因此,它是时间上不连续的 序列。单位阶跃序列和单位样值序列在离散时间信号与系统的分析中是两个非 常典型的序列,分别记为u(n)和δ(n)。它们的定义分别如下: 1 n≥0 1 n≥0 u(n)= δ(n)= 0 n<0 0 n≠0

若单位阶跃序列的起始点为n0,单位样值序列出现在n0时刻,则表达式分别为: 1 n≥n0 1 n=n0 u(n-n0)= δ(n-n0)= 0 n

典型连续信号和离散信号时域波形图

一.典型连续信号和离散信号的时域波形。 1.单边指数信号)()(t u Ae t y t α=; 2.单位冲激信号)()(0t t t y +=δ; 3.单位阶跃信号)()(0t t u t y +=; 4.矩形脉冲信号)]()([)(21t t u t t u A t y +-+?=; 5.正弦信号)()sin()(t u t A t y ω?=; 6.单位序列)()(0n n n y +=δ; 7.单位阶跃序列)()(0n n u n y +=; 8.单位矩形序列)()()(21n n u n n u n y +-+=; 9.指数序列)()(n u a A n y n ?=; 10.正弦序列)()sin()(n u n A n y ω?=。

单边指数信号 function zhishu(A,a,t1,t2,dt) t1=0 t2=10 A=1 A=-0.4 dt=0.01 t=t1:dt:t2; y=A*exp(a*t); plot(t,y) axis([t1,t2,0,1.2]) xlabel('t') ylabel('y(t)') title(' 单边指数信号') 单位冲激信号 function chongji(t1,t2,t0) dt=0.01; t1=10; t2=-5; t=t1:dt:t2; n=length(t); x=zeros(1,n); x(1,(-t0-t1)/dt+1)=1/dt; stairs(t,x); axis([t1,t2,0,1.2/dt]) xlabel('t') ylabel('y(t)') title('单位冲激信号')

离散时间信号的表示及运算

第2章 离散时间信号的表示及运算 2.1 实验目的 ● 学会运用MATLAB 表示的常用离散时间信号; ● 学会运用MATLAB 实现离散时间信号的基本运算。 2.2 实验原理及实例分析 2.2.1 离散时间信号在MATLAB 中的表示 离散时间信号是指在离散时刻才有定义的信号,简称离散信号,或者序列。离散序列通常用)(n x 来表示,自变量必须是整数。 离散时间信号的波形绘制在MATLAB 中一般用stem 函数。stem 函数的基本用法和plot 函数一样,它绘制的波形图的每个样本点上有一个小圆圈,默认是空心的。如果要实心,需使用参数“fill”、“filled”,或者参数“.”。由于MA TLAB 中矩阵元素的个数有限,所以MA TLAB 只能表示一定时间范围内有限长度的序列;而对于无限序列,也只能在一定时间范围内表示出来。类似于连续时间信号,离散时间信号也有一些典型的离散时间信号。 1. 单位取样序列 单位取样序列)(n δ,也称为单位冲激序列,定义为 ) 0()0(0 1)(≠=?? ?=n n n δ (12-1) 要注意,单位冲激序列不是单位冲激函数的简单离散抽样,它在n =0处是取确定的值1。在MATLAB 中,冲激序列可以通过编写以下的impDT .m 文件来实现,即 function y=impDT(n) y=(n==0); %当参数为0时冲激为1,否则为0 调用该函数时n 必须为整数或整数向量。 【实例2-1】 利用MATLAB 的impDT 函数绘出单位冲激序列的波形图。 解:MATLAB 源程序为 >>n=-3:3; >>x=impDT(n); >>stem(n,x,'fill'),xlabel('n'),grid on >>title('单位冲激序列') >>axis([-3 3 -0.1 1.1])

离散时间信号表与运算

离散时间信号表与运算

————————————————————————————————作者:————————————————————————————————日期:

实验一 离散时间信号的表示与运算 一 实验目的 1、熟悉MATLAB 的绘图函数; 2、掌握单位取样序列、单位阶跃序列、矩形序列和正余弦序列的产生方法; 3、掌握离散时间信号基本运算的MATLAB 实现; 4、掌握离散时间信号线性卷积和运算的MATLAB 实现。 二 实验设备 1、计算机 2、MA TLAB R2007a 仿真软件 三 实验原理 1)序列相加和相乘 设有序列)(1n x 和)(2n x ,它们相加和相乘如下: ) ()()()()()(2121n x n x n x n x n x n x ?=+= 注意,序列相加(相乘)是对应序列值之间的相加(相乘),因此参加运算的两个序列必须具有相同的长度,并且保证位置相对应。如果不相同,在运算前应采用zeros 函数将序列左右补零使其长度相等并且位置相对应。在MATLAB 中,设序列用x1和x2表示,序列相加的语句为:x=x1+x2;然而要注意,序列相乘不能直接用x=x1*x2,该式表示两个矩阵的相乘,而不是对应项的相乘。对应项之间相乘的实现形式是点乘“.*”,实现语句为:x=x1.*x2。 2)序列翻转 设有序列:)()(n x n y -=,在翻转运算中,序列的每个值以n=0为中心进行翻转,需要注意的是翻转过程中序列的样值向量翻转的同时,位置向量翻转并取反。MATLAB 中,翻转运算用fliplr 函数实现。设序列)(n x 用样值向量x 和位置向量nx 表述,翻转后的序列 )(n y 用样值向量y 和位置向量ny 描述。 3)序列的移位 移位序列)(n x 的移位序列可表示为:)()(0n n x n y -=,其中,00>n 时代表序列右移 0n 个单位;00

时域离散信号的产生与基本运算

实验一 时域离散信号的产生与基本运算 一、实验目的 1、了解常用的时域离散信号及其特点。 2、掌握MATLAB 产生常用时域离散信号的方法。 3、掌握时域离散信号简单的基本运算方法。 二、实验内容 1、自己设定参数,分别表示并绘制单位抽样序列、单位阶跃序列、正弦序列、 实指数序列、随机序列。 2、自己设定参数,分别表示并绘制信号移位、信号相加、信号相乘、信号翻转、 信号和、信号积、信号能量。 3、已知信号 (1) 描绘)(n x 序列的波形。 (2) 用延迟的单位脉冲序列及其加权和表示)(n x 序列。 (3) 描绘以下序列的波形:)2()(),2(2)(),2(2)(321n x n x n x n x n x n x -=+=-= 三、实现步骤 1、自己设定参数,分别表示并绘制单位抽样序列、单位阶跃序列、正弦序列、 实指数序列、随机序列。 (1)单位抽样序列 程序: x=zeros(1,10);

x(2)=1; stem(x,'filled') axis([0,10,-0.2,1]); title('μ¥??3é?ùDòáD'); -0.20 0.2 0.4 0.6 0.8 图 1 (2)单位阶跃序列 程序: N=10; u=ones(1,N); stem(u,'filled') axis([-10,10,0,1]); title('μ¥???×??DòáD');

00.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 单位阶跃序列 图 2 (3)正弦序列 程序: x=-20:1:20; y=sin(0.2*pi.*x+0.5*pi); stem(x,y,'filled'); axis([-20,20,-2,2]); title('?y?òDòáD');

连续时间信号的抽样及频谱分析-时域抽样信号的频谱--信号与系统课设

1 引言 随着科学技术的迅猛发展,电子设备和技术向集成化、数字化和高速化方向发展,而在学校特别是大学中,要想紧跟技术的发展,就要不断更新教学和实验设备。传统仪器下的高校实验教学,已严重滞后于信息时代和工程实际的需要。仪器设备很大部分陈 旧,而先进的数字仪器(如数字存储示波器)价格昂贵不可能大量采购,同时其功能较为单一,与此相对应的是大学学科分类越来越细,每一专业都需要专用的测量仪器,因此仪器设备不能实现资源共享,造成了浪费。虚拟仪器正是解决这一矛盾的最佳方案。基于PC 平台的虚拟仪器,可以充分利用学校的微机资源,完成多种仪器功能,可以组合成功能强大的专用测试系统,还可以通过软件进行升级。在通用计算机平台上,根据测试任务的需要来定义和设计仪器的测试功能,充分利用计算机来实现和扩展传统仪器功能,开发结构简单、操作方便、费用低的虚拟实验仪器,包括数字示波器、频谱分析仪、函数发生器等,既可以减少实验设备资金的投入,又为学生做创新性实验、掌握现代仪器技术提供了条件。 信号的时域分析主要是测量测试信号经滤波处理后的特征值,这些特征值以一个数值表示信号的某些时域特征,是对测试信号最简单直观的时域描述。将测试信号采集到计算机后,在测试VI 中进行信号特征值处理,并在测试VI 前面板上直观地表示出信号的特征值,可以给测试VI 的使用者提供一个了解测试信号变化的快速途径。信号的特征值分为幅值特征值、时间特征值和相位特征值。 尽管测量时采集到的信号是一个时域波形,但是由于时域分析工具较少,所以往往把问题转换到频域来处理。信号的频域分析就是根据信号的频域描述来估计和分析信号的组成和特征量。频域分析包括频谱分析、功率谱分析、相干函数分析以及频率响应函数分析。 信号在时域被抽样后,他的频谱X(j )是连续信号频谱X(j )的形状以抽样频率为间隔周期重复而得到,在重复过程中幅度被p(t)的傅里叶级数Pn加权。因为Pn只是n的函数,所以X(j )在重复的过程中不会使其形状发生变化。假定信号x(t)的频谱限制在- m~+ m的范围内, 若以间隔Ts对xa(t)进行抽样,可知抽样信号X^(t)的频谱X^(j )是以s为周期重复。显然,若在抽样的过程中s<2 m,则X^(j )将发生频谱混叠现象,只有在抽样的过程中满足s>=2 m条件,X^(j )才不会产生频谱的混叠,接收端完全可以由x^(t)恢复原连续信号xa(t),这就是低通信号抽样定理的核心内容。

用MATLAB实现常用的离散时间信号及其时域运算

实验四用MATLAB实现常用的离散时间信号及其时域运算 —— 摘要:在MATLAB中,只能用向量来表示离散时间信号。与连续信号不同,离散时间信号无法用符号运算来表示。用适当的MATLAB语句表示出信号后,就可以利用MATLAB的绘图命令stem来绘出直观的信号波形图,stem是专门用于绘制离散时间信号的。在MATLAB中离散序列的时域运算和变换不能用符号运算来实现,而必须用向量表示的方法,即在MATLAB中离散序列的相加、相乘需表示成两个向量的相加、相乘,因而参加运算的两序列向量必须有相同的维数。 一、实验目的:(1)学习MATLAB语言及其常用指令; (2)学习和掌握用MATLAB语言产生离散时间信号的编程方法; (3)通过编程绘制出离散时间信号的波形,加深理解信号的时域运算。 二、实验内容:(1)运用MATLAB的绘图指令绘制离散时间信号; (2)用MATLAB语言实现离散时间信号的时域运算。 三、实验原理:(1)单位阶跃序列和单位样值序列。 离散时间信号只在某些离散的瞬时给出信号的值,因此,它是时间上不连续的序列。单位阶跃序列和单位样值序列在离散时间信号与系统的分析中是两个非常典型的序列,分别记为u(n)和δ(n)。它们的定义分别如下: 1 n≥0 1 n≥0 u(n)= δ(n)= 0 n<0 0 n≠0 若单位阶跃序列的起始点为n0,单位样值序列出现在n0时刻,则表达式分别为: 1 n≥n0 1 n=n0 u(n-n0)= δ(n-n0)= 0 n

单位样值序列与连续时间的单位冲激信号的异同。 (2)离散时间信号的时域运算。 与连续时间系统的研究类似,在离散系统分析中,经常遇到离散时间信号的运算,包括两信号的相加、相乘以及序列自身的移位、反褶、尺度等等,也需要了解在运算过程中序列的表达式以及对应的波形的变化。 序列x(n)的移位:x(n-n0) 序列x(n)的反褶:x(-n) 序列x(n)的尺度变换:x(an) 两序列x1(n)与x2(n)的相加减:x1(n) ±x2(n) 两序列与的相乘:x1(n) ·x2(n) (3)学习如何使用MATLAB语言产生离散时间信号并对离散时间信号进行时域运算。四、实验任务: (1)编制用于产生下列信号的通用程序,要求对于任意给定的参数都能实现所要求的信号。调试并运行这些通用的程序。 ①x(n)=Aδ(n-n0) 程序:function un(t1,t2,t0) t=t1:t2; n=length(t); tt=t1:t2; n1=length(tt); f=zeros(1,n); f(1,t0-t1+1)=3; stem(t,f),grid on title('μ¥??3??÷D?o?') axis([t1,t2 -0.2 4])

实验用MATLAB产生时域离散信号

实验1用M A T L A B产生时域离散信号 一、.实验目的: 1、了解常用时域离散信号及其特点 2、掌握用MATLAB产生时域离散信号的方法 二、实验内容及步骤 1、阅读并上机验证实验原理部分的例题程序,理解每一条语句的含义。 改变例题中的有关参数(如信号的频率、周期、幅度、显示时间的取值范围、采样点数等),观察对信号波形的影响。 2、编写程序,产生以下离散序列: n1=-3;n2=4;n0=0; n=n1:n2; x=[n==n0]; stem(n,x,'filled'); axis([n1,n2,0,*max(x)]); xlabel('时间(n)');ylabel('幅度x(n)'); title('单位脉冲序列'); (2)n1=-5;n2=5;n0=0; n=n1:n2; x=[n>=n0]; stem(n,x,'filled') axis([n1,n2,0,*max(x)]); xlabel('时间(n)');ylabel('幅度x(n)'); title('单位阶跃序列'); n1=20;a=;w=*pi; n=0:n1; x=exp((a+j*w)*n); subplot(2,2,1);plot(n,real(x)); title('复指数信号的实部'); subplot(2,2,3);stem(n,real(x),'filled'); title('复指数序列的实部'); subplot(2,2,2);plot(n,imag(x)); title('复指数信号的虚部'); subplot(2,2,4);stem(n,imag(x),'filled'); title('复指数序列的虚部');

实验一离散时间信号的分析

武汉工程大学 信号分析与处理实验一 专业:通信02班 学生姓名:李瑶华 学号:1304200113 完成时间:2016年6月1日

实验一: 离散时间信号的分析 一、实验目的 1.认识常用的各种信号,理解其数学表达式和波形表示。 2.掌握在计算机中生成及绘制数字信号波形的方法。 3.掌握序列的简单运算及计算机实现与作用。 4.理解离散时间傅立叶变换、Z 变换及它们的性质和信号的频域特性。 二、实验设备 计算机,MATLAB 语言环境。 三、实验基础理论 1.序列的相关概念 2.常见序列 ● 单位取样序列?? ?≠==0n 0,0 n 1n ,)(δ ● 单位阶跃序列? ??<≥=0,00 ,1)(n n n u ● 单位矩形序列???-≤≤=其他,01 0,1)(N n n R N ● 实指数序列)()(n u a n x n = ● 复指数序列n jw e n x )(0)(+=σ ● 正弦型序列)n sin()(0?+=w A n x 3.序列的基本运算 ● 移位 y(n)=x(n-m) ● 反褶 y(n)=x(-n) ● 和 )()()(21n x n x n y += ● 积 )()()(21n x n x n y ?= ● 标乘 y(n)=mx(n) ● 累加∑-∞ == n m m x n y )()( ● 差分运算 ???--=?-+=?) 1()()() ()1()(x n x n x n x n x n x n 后相差分前向差分

4.离散傅里叶变换的相关概念 ● 定义 ∑+∞ -∞ =-=n jwn jw e n x e X )()( ● 两个性质 1) [] )2()2()2()()(,2)(ππππ++∞ -∞ =+-+--== =∑w j n n w j jw n w j jwn jw e X e n x e X e e w e X 故有。由于的周期函数,周期为是 2) 当x (n )为实序列时,)(jw e X 的幅值)(jw e X 在π20≤≤w 区间内是偶对称函 数,相位)(arg jw e X 是奇对称函数。 5.Z 变换的相关概念 ● 定义 ∑+∞ -∞ =-= n n z n x z X )()((双边Z 变换) ∑+∞ =-=0 )()(n n z n x z X (单边Z 变换) 四、实验内容与步骤 1.离散时间信号(序列)的产生 利用MATLAB 语言编程产生和绘制单位样值信号、单位阶跃序列、指数序列、正弦序列及随机离散信号的波形表示。 1. 单位取样序列的产生函数 function [x,n]=impseq(n0,n1,n2) %产生x(n)=delta(n-n0);n1<=n,n0<=n2; %[x,n]=impseq(n0,n1,n2) if ((n0n2)|(n1>n2)) error('参数必须满足n1<=n0<=n2') end n=[n1:n2]; %x=[zeros(1,(n0-n1)),1,zeros(1,(n2-n0))]; x=[(n-n0)==0]; 2. 单位阶跃序列的产生函数 function [x,n]=stepseq(n0,n1,n2) %产生x(n)=u(n-n0);n1<=n,n0<=n2; %[x,n]=stepseq(n0,n1,n2) if ((n0n2)|(n1>n2)) error('参数必须满足n1<=n0<=n2') end n=[n1:n2];

实验一 时域离散信号与系统变换域分析(2015)资料

实验一 时域离散信号与系统变换域分析 一、实验目的 1.了解时域离散信号的产生及基本运算实现。 2.掌握离散时间傅里叶变换实现及系统分析方法。 3. 熟悉离散时间傅里叶变换性质。 4. 掌握系统Z 域分析方法。 5. 培养学生运用软件分析、处理数字信号的能力。 二、实验设备 1、计算机 2、Matlab7.0以上版本 三、实验内容 1、对于给定的时域离散信号会进行频谱分析,即序列的傅里叶变换及其性质分析。 2、对于离散系统会进行频域分析及Z 域分析。包括频谱特性、零极点画图、稳定性分析。 3、对于差分方程会用程序求解,包括求单位冲击序列响应,零输入响应、零状态响应、全响应,求其系统函数,及其分析。 4、信号时域采样及其频谱分析,序列恢复。 5、扩展部分主要是关于语音信号的读取及其播放。 四、实验原理 1、序列的产生及运算 在Matlab 中自带了cos 、sin 、exp (指数)等函数,利用这些函数可以产生实验所需序列。 序列的运算包括序列的加法、乘法,序列)(n x 的移位)(0n n x -,翻褶)(n x -等。序列的加法或乘法指同序号的序列值逐项对应相加或相乘,但Matlab 中“+”“.*”运算是对序列的值直接进行加或乘,不考虑两序列的序号是否相同,因此编程时考虑其序号的对应。 2、序列的傅里叶变换及其性质 序列的傅里叶变换定义:)(|)(|)()(ω?ωωω j j n n j j e e X e n x e X ==∑∞-∞=-,其幅度特性为|)(|ωj e X , 在Matlab 中采用abs 函数;相位特性为)(ω?,在Matlab 中采用angle 函数。 序列傅里叶变换的性质:

离散时间信号分析

离散时间信号分析 实验目的:利用MA TLAB进行离散时间序列的基本运算,掌握基本的MA TLAB函数的编写和调试方法。 实验内容: (1)信号相加 x(n)=x1(n)+x2(n) 当两个相加的序列长度不同时或位置不对应时,首先必须调整二者的位置对齐,然后通过zeros函数左右补零使其长度相等后再相加。下面的参考代码利用函数sigadd说明了这些运算,其验证将在后续实验中进行。 MATLAB参考代码 function[y,n]=sigadd(x1,n1,x2,n2) %implements y(n)=x1(n)+x2(n) %--------------------------------------------- %[y,n]=sigadd(x1,n1,x2,n2) %y=sum sequence over n,which includes n1 and n2 %x1=first sequence over n1 %x2=second sequence over n2(n2 can be different from n1) % n=min(min(n1),min(n2)):max(max(n1),max(n2));%duration of y(n) y1=zeros(1,length(n)); y2=y1; y1(find((n>=min(n1))&(n<=max(n1))==1))=x1;%x1 with duration of y y2(find((n>=min(n2))&(n<=max(n2))==1))=x2;%x2 with duration of y y=y1+y2;%sequence addition (2)信号相乘 信号相乘,即两个序列的乘积(或称“点乘”),表达式为: x(n)=x1(n)?x2(n) 在MA TLAB中,用运算符“.*”实现。

《离散时间信号的表示及运算》

实验一 离散时间信号的表示及运算 一、实验目的 1.掌握离散时间信号的时域表示; 2.掌握离散时间信号的基本运算; 3.用MA TLAB 表示的常用离散时间信号及其运算; 4.掌握用MA TLAB 描绘二维图形的方法。 二、实验原理 离散时间信号是指在离散时刻才有定义的信号,简称离散信号,或者序列。离散序列通常用)(n x 来表示,自变量必须是整数。离散时间信号的波形绘制在MATLAB 中一般用stem 函数。 对离散时间序列实行基本运算可得到新的序列,这些基本运算主要包括加、减、乘、除、移位、反折等。两个序列的加减乘除是对应离散样点值的加减乘除,因此,可通过MATLAB 的点乘和点除、序列移位和反折来实现。 一些常用序列 1.单位冲激序列(单位抽样))(n δ ?? ?≠==0,00,1)(n n n δ (1) 2.单位阶跃序列)(n u ???=,,01)(n u 00<≥n n (2) 3.矩形序列)(n R N ???=,,01)(n R N 其他10-≤≤N n (3) 4.正弦序列和指数序列 正弦序列 )s i n ()(0?ω+=n A n x (4) 式中:A 为幅度,0ω为数字域的频率,它反映了序列变化的速率,?为起始相位。 实指数序列 )()(n u a n x n = (5)

式中,a 为实数。当1a 时,序列是发散的。a 为负数时,序列是摆动的。 复指数序列 n j e n x )(0)(ωσ+= (6) 它具有实部和虚部,0ω是复正弦的数字域频率。 三、实验内容 1.用Matlab 编制程序分别产生单位抽样序列)(n δ、单位阶跃序列)(n u 、矩形序列)()(5n R n x =、正弦序列)8 sin(2)(n n x π=、复指数序列n j e n x )641()(π+=,并画波形图; 绘制)(n δ波形 绘制n j e n x ][)()2.01.0(π+-=的实部和虚部的波形。

实验一离散时间信号与系统分析

实验一 离散时间信号与系统分析 一、实验目的 1.掌握离散时间信号与系统的时域分析方法。 2.掌握序列傅氏变换的计算机实现方法,利用序列的傅氏变换对离散信号、系统及系统响应进行频域分析。 3.熟悉理想采样的性质,了解信号采样前后的频谱变化,加深对采样定理的理解。 二、实验原理 1.离散时间系统 一个离散时间系统是将输入序列变换成输出序列的一种运算。若以][?T 来表示这种运算,则一个离散时间系统可由下图来表示: 图 离散时间系统 输出与输入之间关系用下式表示 )]([)(n x T n y = 离散时间系统中最重要、最常用的是线性时不变系统。 2.离散时间系统的单位脉冲响应 设系统输入)()(n n x δ=,系统输出)(n y 的初始状态为零,这是系统输出用)(n h 表示,即)]([)(n T n h δ=,则称)(n h 为系统的单位脉冲响应。 可得到:)()()()()(n h n x m n h m x n y m *=-= ∑∞ -∞= 该式说明线性时不变系统的响应等于输入序列与单位脉冲序列的卷积。 3.连续时间信号的采样 采样是从连续信号到离散时间信号的过渡桥梁,对采样过程的研究不仅可以了解采样前后信号时域何频域特性发生的变化以及信号内容不丢失的条件,而且有助于加深对拉氏变换、傅氏变换、Z 变换和序列傅氏变换之间关系的理解。 对一个连续时间信号进行理想采样的过程可以表示为信号与一个周期冲激脉冲的乘 积,即:)()()(?t t x t x T a a δ=

其中,)(?t x a 是连续信号)(t x a 的理想采样,)(t T δ是周期冲激脉冲 ∑∞ -∞=-= m T mT t t )()(δδ 设模拟信号)(t x a ,冲激函数序列)(t T δ以及抽样信号)(?t x a 的傅立叶变换分别为)(Ωj X a 、)(Ωj M 和)(?Ωj X a ,即 )]([)(t x F j X a a =Ω )]([)(t F j M T δ=Ω )](?[)(?t x F j X a a =Ω 根据连续时间信号与系统中的频域卷积定理,式(2.59)表示的时域相乘,变换到频域为卷积运算,即 )]()([21)(?Ω*Ω=Ωj X j M j X a a π 其中 ?∞ ∞ -Ω-==Ωdt e t x t x F j X t j a a a )()]([)( 由此可以推导出∑∞-∞=Ω-Ω=Ωk s a a jk j X T j X )(1)(? 由上式可知,信号理想采样后的频谱是原来信号频谱的周期延拓,其延拓周期等于采样频率。根据香农定理,如果原信号是带限信号,且采样频率高于原信号最高频率的2倍,则采样后的离散序列不会发生频谱混叠现象。 4.有限长序列的分析 对于长度为N 的有限长序列,我们只观察、分析在某些频率点上的值。 ???-≤≤=n N n n x n x 其它010),()( 一般只需要在π2~0之间均匀的取M 个频率点,计算这些点上的序列傅立叶变换: ∑-=-=1 0)()(N n jn j k k e n x e X ωω 其中,M k k /2πω=,1,,1,0-=M k 。)(ωj e X 是一个复函数,它的模就是幅频特 性曲线。 三、主要实验仪器及材料

实验一-离散时间信号分析

实验一 离散时间信号分析 一、实验目的 1. 初步掌握 Matlab 的使用,掌握编写M 文件和函数文件 2. 掌握各种常用序列的表达,理解其数学表达式和波形表示之间的关系。 3. 掌握生成及绘制数字信号波形的方法。 4. 掌握序列的基本运算及实现方法。 5. 研究信号采样时采样定理的应用问题。 二、实验原理 1.序列的基本概念 离散时间信号在数学上可用时间序列{x (n )}来表示,其中x (n )代表序列的第n 个数字,n 代表时间的序列,n 的取值范围为-∞< n<+∞的整数,n 取其它值x (n )没有意义。离散时间信号可以是由模拟信号通过采样得到,例如对模拟信号x a (t ) 进行等间隔采样,采样间隔为T ,得到{x (nT )} a 一个有序的数字序列就是离散时间信号,简称序列。 2.常用序列 常用序列有:单位脉冲序列(单位抽样)δ (n )、单位阶跃序列u (n )、矩形序列R N (n ) 、 实指数序列、复指数序列、正弦型序列等。 3.序列的基本运算 序列的运算包括移位、反褶、和、积、标乘、累加、差分运算等。 4.序列的卷积运算 y(n)=∑x (m )h (n ?m )+∞m=?∞=x(n)*h(n) 上式的运算关系称为卷积运算,式中* 代表两个序列卷积运算。两个序列的卷积是一个序列与另一个序列反褶后逐次移位乘积之和,故称为离散卷积,也称两序列的线性卷积。其计算的过程包括以下4 个步骤。 (1)反褶:先将x (n )和h (n )的变量n 换成m ,变成x (m )和h (m ),再将h (m )以纵 轴为对称轴反褶成h (-m )。 (2)移位:将h (-m )移位n ,得h (n- m )。当n 为正数时,右移n 位;当n 为负数时, 左移n 位。 (3)相乘:将h (n -m )和x (m )的对应点值相乘。 (4)求和:将以上所有对应点的乘积累加起来,即得y (n )。 三、主要实验仪器及材料 PC 机、Matlab7.0。

信号与系统 信号的时域分析 及Matlab实现

信号与系统 课程实验报告 实验四 实验名称 信号的时域分析 及Matlab 实现 系 别 教师姓名 实验地点 5309 实验日期 2011-06-20 学生姓名 学号 一、实验内容 1.预习实验原理。 2.对实验内容编写程序(M 文件),上机运行。 3.记录并整理实验数据。 二、实验目的 1.掌握用Matlab 分析系统时间响应的方法。 2.掌握用Matlab 分析连续、离散系统的冲激响应的方法。 3.理解系统零、极点分布与系统稳定性关系。 三、涉及实验的相关情况介绍(包含使用软件或实验设备等情况) 计算机一台(安装MATLAB6.5版本或以上版本) 四、实验试做记录(含程序、数据记录及分析) 1.设) 2)(1()(p s p s s s H --= 设①p1=-2,p2=-30; ②p1=-2,p2=3 (1)针对极点参数①②,画出系统零、极点分布图,判断该系统稳定性。 程序: clear num=[1]; den=[1,32,60]; [r,poles,k]=residue(num,den); p=roots(den);

z=roots(num); subplot(2,2,1);plot(real(p),imag(p),'*');hold on; plot(real(z),imag(z),'o');grid on T=0:0.1:10; y1=impulse(num,den,T); subplot(2,2,2);plot(T,y1);grid;title('脉冲响应') 结果: 位于s左半平面,稳定 (2)针对极点参数①②,绘出系统的脉冲响应曲线,并观察t→∞时,脉冲响应变化趋势。 程序: clear num=[1]; den=[1,-1,-6]; [r,poles,k]=residue(num,den); p=roots(den); z=roots(num); subplot(2,2,1);plot(real(p),imag(p),'*');hold on; plot(real(z),imag(z),'o');grid on T=0:0.1:10; y1=impulse(num,den,T); subplot(2,2,2);plot(T,y1);grid;title('脉冲响应') 结果:

离散时间信号期末试题

一、单项选择题(本大题共10小题,每小题2分,共20分) 在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。 第一 2.若一线性移不变系统当输入为x(n)=δ(n)时输出为y(n)=R3(n),则当输入为u(n)-u(n-2)时输出为( c )。 A.R3(n) B.R2(n) C.R3(n)+R3(n-1) D.R2(n)+R2(n-1) 3.下列哪一个单位抽样响应所表示的系统不是因果系统?( d ) A.h(n)=δ(n) B.h(n)=u(n) C.h(n)=u(n)-u(n-1) D.h(n)=u(n)-u(n+1) 4.离散系统的差分方程为y(n)=x(n)+ay(n-1),则系统的频率响应( a )。 A.当|a|<1时,系统呈低通特性 B.当|a|>1时,系统呈低通特性 C.当0

相关文档
相关文档 最新文档