信号与系统实验指导书

发布时间:2016-06-23 10:33:23   来源:文档文库   
字号:

《信号与系统》实验指导书

武汉理工大学教材中心

20097


实验一 常用连续时间信号的产生

一、实验目的

1、了解常用连续时间信号的产生方法;

2、掌握MATLAB程序的编程方法;

3、熟悉MATLAB函数的调用方法。

二、实验原理

在时间轴上连续取值的信号,称为连续时间信号。

常用的时域连续信号主要有单位冲激信号、单位阶跃信号、实指信号、复指信号、正()弦信号、方波信号、锯齿波信号、抽样信号等。

1、单位冲激信号

2、单位阶跃信号

3、实指信号

4、复指信号

5、正()弦信号

6、抽样信号

三、实验用函数

1plot

功能:绘制二维图形。

调用格式:

plot(t,y)t为横轴,y为纵轴的线性图形。

2length

功能:计算某一变量的长度或采样点数。

调用格式:

N=length(t);计算时间向量t的个数并赋给变量N

3axis

功能:限定图形坐标的范围。

调用格式:

axis([x1,x2,y1,y2]);横坐标从x1—x2,纵坐标从y1—y2

4real

功能:取某一复数的实部。

调用格式:

x=real(h);取复数h的实部赋给x

5imag

功能:取某一复数的虚部。

调用格式:

y=imag(h);取复数h的实部赋给y

6abs

功能:求幅值或绝对值。

调用格式:

x=abs(h);取复数h的幅值x

7angel

功能:求相位。

调用格式:

y=angel(h);取复数h的相位赋给y

8square

功能:产生矩形波。

调用格式:

x=square(t);产生周期是,幅值从-1~1的方波。

x=square(t,duty);产生指定周期的矩形波,其中,duty用于指定脉冲宽度与整个周期的比例。

9sawtooth

功能:产生锯齿波或三角波。

调用格式:

x=sawtooth(t);产生周期是,幅值从-1~1的锯齿波。

x=sawtooth(t,width);用于产生三角波,当width=0.5时,可产生对称的标准三角波;当width=1时,就产生锯齿波。

四、参考实例

1.1 Matlab产生一个单位阶跃信号。在的区间里,在t=1处跃变。

%先建立函数stepseq(t,t0)

function y=stepseq(t,t0)

y=(t-t0>=0);

%编写主程序调用该函数

t=-3:0.01:5;

t0=1;

y=stepseq(t,t0);

plot(t,y)

axis([-3,5,-0.2,1.2])

程序运行结果如图1-1所示:

1-1 阶跃波形

1.2 产生A=2a=-0.3a=0.3的实指信号,并在的范围内显示波形。

Matlab程序如下:

A=2; a1=-0.3; a2=0.3;

t=-5:0.01:5;

y1=A*exp(a1*t);

y2=A*exp(a2*t);

subplot(2,1,1); plot(t,y1)

subplot(2,1,2); plot(t,y2)

程序运行结果如图1-2所示

1-2 实指信号波形

1.3 绘制信号的波形。

Matlab程序如下:

t=0:0.01:3;

a=-3; b=4;

f=exp((a+j*b)*t);

subplot(2,2,1); plot(t,real(f)); title('实部');

subplot(2,2,2); plot(t,imag(f)); title('虚部') ;

subplot(2,2,3); plot(t,abs(f)); title('幅值');

subplot(2,2,4); plot(t,angle(f)); title('相位');

程序运行结果如图1-3所示

1-3 复指信号波形

1.4 周期矩形信号。一连续周期矩形信号频率为10Hz,信号幅度在-1~1之间,脉冲宽度与周期的比例是1:2,用128点采样,显示三个周期的信号波形。

Matlab程序如下:

f1=10;Um=1;N=128;

T=1/f1;nt=3;dt=T/N;

t=0:dt:nt*T;

xt=Um*square(2*pi*f1*t);

plot(t,xt)

axis([0,nt*T,-1.1,1.1])

程序运行结果如图1-4所示

1-4 周期矩形信号波形

1.5 锯齿波信号。试绘制频率为10Hz,采样频率为100Hz,幅度在-1~1之间,两个周期的三角波和锯齿波。

Matlab程序如下:

f1=10;Um=1;nt=2;

fs=100;N=fs/f1;

T=1/f1;dt=T/N;

t=0:dt:nt*T;

x1=Um*sawtooth(2*pi*f1*t);

x2=Um*sawtooth(2*pi*f1*t,0.5);

subplot(2,1,1);plot(t,x1)

subplot(2,1,2);plot(t,x2)

程序运行的结果如图1-5所示

1-5 周期锯齿波波形

五、实验任务

1、调试部分例题程序,掌握Matlab基本操作方法。

2、编写程序,完成下列函数波形:

1}

2}

3

六、实验报告

1、简述实验目的、原理。

2、写出上机调试通过的实验任务的程序并描述其图形曲线。

3、思考题:使用Matlab时需注意的问题。

实验二 连续系统的响应求解

一、实验目的

1、加深对LTI系统的频率基本概念的理解。

2、了解利用MATLAB进行连续时间系统研究的基本方法。

3、熟悉相关函数的使用方法,并能编写简单的程序实现响应求解。

二、实验原理

由连续时间系统的时域和频域分析方法可知,线性时不变系统的微分方程式为:

对于复杂信号激励下的线性系统,可以将激励信号在时域中分解为单位脉冲信号或单位阶跃信号,把这些单位激励信号分别加在系统中求其响应,然后把这些响应叠加,即可得到复杂信号加在系统中的零状态响应。

三、实验用函数

1impulse

功能:求解连续系统的冲激响应。

调用格式:

impulse(b,a):计算并显示出连续系统的冲激响应h(t)的波形。

impulse(b,a,t):当用户指定t值时,t为实数,将显示连续时间系统在0~t秒间的冲激响应波形,t为向量(t1:dt:t2),则显示指定时间范围内的冲激响应波形。

2step

功能:求解连续系统的阶跃响应。

调用格式:

step(b,a):计算并显示出连续系统的阶跃响应g(t)的波形。

step(b,a,t):当用户指定t值时,t为实数,将显示连续时间系统在0~t秒间的阶跃响应波形,t为向量(t1:dt:t2),则显示指定时间范围内的阶跃响应波形。

3lsim

功能:求解连续系统的零状态响应。

调用格式:

lsim(b,a,x,t):计算并显示出连续系统的零状态响应的波形。

四、实例

1、已知一个RLC串联振荡电路系统函数为

其中L=22mHC=2000pFR=100,求其时域的冲激响应和阶跃响应。

MATLAB程序如下:

L=22e-3; C=2e-9; R=100;

a=[L*C,R*C,1]; b=[1];

t=0:1e-6:8e-4;

ht=impulse(b,a,t);

gt=step(b,a,t);

subplot(1,2,1)

plot(t,ht); title('冲激响应 ')

subplot(1,2,2)

plot(t,gt); title('阶跃响应 ')

程序运行结果如图2-1

2-1 冲激响应和阶跃响应

2、用仿真函数lsim计算连续系统的零状态响应。

2.3 已知系统的微分方程为:

系统的输入信号为:,求其零状态响应。

Matlab程序如下

ts=0; te=5; dt=0.01; t=ts:dt:te;

b=[1]; a=[1,2,100];

f=10*sin(2*pi*t);

y=lsim(b,a,f,t);

plot(t,y)

程序执行结果如图3-3所示

2-2

五、实验任务

1、输入并运行例题程序,熟悉基本指令的使用。

2、已知某连续时间系统的微分方程为:,求当输入信号为,该系统的零状态响应r(t)

六、实验报告

1、简述实验目的和原理。

2、列写上机调试通过的程序,并描绘其波形曲线。

实验三 连续系统的卷积应用

一、实验目的

1、熟悉Matlab卷积函数的调用方法;

2、掌握应用卷积求解连续时间系统响应的方法,通过实验加深对卷积定理的认识。

二、实验原理

卷积是信号与系统分析中一个重要的工具,它反映了求解系统响应的物理过程。

1、卷积的定义式:

2、卷积的图解法:

卷积的图解法能直观地理解卷积的计算过程,特别是对只有波形而不易写出其函数表达式的函数进行卷积运算时。

其运算步骤:

1)自变量t变换为:将函数f1(t)f2(t)换成

2)反褶:将函数以纵轴为对称轴反折,得到

3)平移:将反褶后的信号沿横轴平移tt>0右移,t<0左移);

4)相乘:将函数的重叠部分相乘;

5)积分:沿轴对乘积函数积分。

3、卷积性质

交换律、分配律、结合律、时移、卷积的微分与积分等。

三、实验用函数

1、卷积函数conv

功能:进行两个序列的卷积运算。

调用格式:

y=conv(x,h);用于求解两有限长序列的卷积。

2lsim

功能:对连续系统的响应进行仿真。

调用格式:

y=lsim(b,a,x,t);将输入信号x加在由b,a定义的连续时间系统,将求出的数值解存入变y中,如果单独调用函数lsim(b,a,x,t),则直接在图形区域显示零状态响应的时域仿真波形。

四、参考实例

1、在利用Matlab提供的卷积函数进行卷积运算时,主要是确定卷积结果的时间区间。conv函数默认两信号的时间序列从n=0开始,卷积结果对应的时间序列也从n=0开始。

2.1 已知两信号分别为:

求两信号的卷积和并画出卷积波形。

Matlab程序如下

t1=0:0.1:10;

f1=exp(-0.6*t1);

t2=0:0.1:15;

f2=ones(1,length(t2));

y=conv(f1,f2);

subplot(3,1,1); plot(f1)

subplot(3,1,2); plot(f2)

subplot(3,1,3); plot(y)

程序运行结果如图3-1所示

3-1

2、任意信号的卷积运算。由于conv函数默认信号的时间从0开始,如果有信号不是从0开始,则需要编程用两个向量来确定一个信号,一个是信号波形的非零幅度样值,一个是其对应的时间向量。通过编写函数实现上述功能。

扩展函数为sconv,其代码如下:

function [y,ny]=sconv(x1,x2,t1,t2,dt)

y=conv(x1,x2);

ny1=t1(1)+t2(1);

ny2=t1(length(x1))+t2(length(x2));

ny=ny1:dt:ny2;

2.1 已知两信号分别为:

f1(t)=0.5t (0

f2(4)=2t (-1

计算两信号的卷积并画出卷积波形。

Matlab程序如下:

p= 0.01;

t1= 0:p:2; f1= 0.5*t1;

t2= -1:p:3; f2= 2*t2;

[f,k]=sconv (f1,f2,t1,t2,p);

subplot(3,1,1); plot(t1,f1)

subplot(3,1,2); plot(t2,f2)

subplot(3,1,3); plot(k,f)

程序运行结果如图3-2所示

3-2

五、实验任务

1、调试运行参考程序,理解其基本意义。

2、设h[t]=(0.9)tu[t],输入x[t]=u[t]-u[t-10],求系统输出y[t]=x[t]*h[t] (其中 -5<=t<=10)

六、实验报告

1、简述实验目的、原理。

2、写出上机调试通过的实验任务的程序并描述其图形曲线。

3、思考题:运用卷积函数conv时需要注意什么问题。

实验四 连续时间信号的傅立叶分析

一、实验目的

1、熟悉傅立叶的基本概念。

2、掌握MATLAB中连续时间信号频谱的分析方法。

3、熟悉相关函数的使用方法。

二、实验原理

任一周期性连续时间信号如果满足狄利赫莱条件,可通过傅立叶级数求得其频谱

其逆变换表达式为

而非周期信号不能直接由傅立叶级数表示。但可以借助傅立叶分析方法导出非周期信号的傅立叶变换。

一个非周期连续时间信号,其频谱可由傅立叶变换得

其逆变换表达式为

对连续时间信号进行处理时,首先要将其离散化,才能利用MATALB进行频谱分析。处理时一般把周期信号的一个周期作为窗口的显示内容,对非周期信号则将信号的非零部分作为窗口显示的内容。然后将窗口长度根据需要分成N份。

三、实验用函数

1linspace

功能:对向量进行线性分割。

调用格式:

linspace(a,b,n):在ab之间均匀产生n个值。

2grid

功能:在指定的图形坐标上绘制分割线。

调用格式:

grid

3mesh

功能:绘制三维网格图。

调用格式:

mesh(x,y,z):绘制三维网格图。

四、实例

1、非周期信号的频谱

有一非周期方波信号x(t)的脉冲宽度为1ms,信号持续时间为2ms,在0~2ms区间外信号为0。试求其含有20次谐波的信号的频谱特性。求其逆变换并与原时间信号的波形进行比较。

解:取窗口长度为0~2ms,信号的傅立叶变换为

MATLAB作数值计算的要求,将时间t分成N份,用相加来代替积分,

求和问题转换为用x(t)行向量乘以列向量来实现。X=x*exp(-j*t’*w)*dt

MATLAB程序

T=2;f1=1/T;N=256; %输入窗口长度、频率和采样点数

t=linspace(0,T,N); %进行时间分割,在0~T之间均匀地产生N

dt=T/(N-1);

x=[ones(1,N/2),zeros(1,N/2)]; %建立时间信号x(t)

f=linspace(-(20*f1),(20*f1),N); %进行频率分割,在-20~20次谐波间均匀产生N

w=2*pi*f;

X=x*exp(-j*t'*w)*dt; %求信号的傅立叶变换

subplot(1,2,1); plot(f,abs(X)); grid; title('非周期信号的幅度谱')

dw=(20*2*pi*f1)/(N-1); %求两个频率样点的间隔

x2=X*exp(j*w'*t)/pi*dw; %求傅立叶逆变换

subplot(1,2,2); plot(t,x,'r',t,x2); title('原信号与傅立叶逆变换比较')

程序运行结果如图4-1

4-1

2、周期信号的频谱

设有一周期方波信号,幅度E=1.5V,周期T=100,脉冲宽度与周期之比为,时间轴上采样点数取1000点。试求其含有20次谐波的信号的频谱特性;求其傅立叶逆变换波形并与原时间波形进行比较。

解:取窗口长度为0~T,由题意信号的傅立叶级数为

其傅立叶级数逆变换为

MATLAB程序:

T=100;f1=1/T;N=1000;

t=linspace(0,T,N);

dt=T/(N-1);

x=1.5*[ones(1,N/2),zeros(1,N/2)];

n=[-20:20];

w1=2*pi*f1;

X=x*exp(-j*t'*n*w1)*dt/T;

subplot(1,2,1); stem(n,abs(X)); grid; title('周期信号的幅度谱')

x2=X*exp(j*n'*w1*t);

subplot(1,2,2); plot(t,x,'r',t,x2); title('原信号与傅立叶逆变换比较')

程序运行结果如图4-2

4-2

3、用MATLAB图形观察吉布斯效应。(提示:任意周期信号表示为傅立叶级数时,需要无限多项才能逼近原信号,但在实际应用中经常采用有限项级数来代替无限项级数。所选项数越多越接近原信号。当原信号是脉冲信号时,其高频分量主要影响脉冲的跳变沿,低频分量主要影响脉冲的顶部,因此,输出信号波形总是要发生失真,该现象称为吉布斯现象。)

一个以原点为中心奇对称的周期性方波,可以用奇次正弦波的叠加来逼近,即

,假定方波的脉冲宽度为400,周期为800,观察正弦波分别取不同次谐波的逼近情况。

MATLAB程序:


T1=800;nf=19;

t=0:1:T1/2;

w1=2*pi/T1;

N=round((nf+1)/2);

y=zeros(N,max(size(t)));

x=zeros(size(t));

for k=1:2:nf

x=x+sin(w1*k*t)/k;

y((k+1)/2,:)=x;

end

mesh(y);

axis([0,T1/2,0,N,0,1])


五、实验任务

1、输入并运行例题程序,熟悉基本指令的使用。

2、已知一个脉冲信号,在窗口为100ms的范围内,脉冲宽度与信号的周期之比为1/4,进行256点的采样,显示原时域信号和0~20次谐波的频谱特性。

六、实验报告

1、简述实验目的、原理。

2、写出上机调试通过的实验任务的程序并描述其图形曲线。

实验五 连续系统的零极点分析

一、实验目的

1、观察连续系统的零极点对系统冲激响应的影响。

2、了解连续系统的零极点与系统因果性、稳定性的关系。

3、熟悉相关函数的使用方法。

二、实验原理

线性系统的稳定性

一个连续系统的稳定性由其自身的性质决定,与激励信号无关。系统的特性可以用系统函数H(s)和系统的冲激响应h(t)来表征。

因果系统可划分为三种情况:

1)稳定系统。当H(s)全部极点落在s左半平面,则系统是稳定的。

2)不稳定系统。当H(s)极点落在s右半平面,或在虚轴上具有二阶以上的极点,则经过足够长的时间后,h(t)在继续增大,则系统是不稳定的。

3)临界稳定系统。当H(s)极点落在虚轴上,且只有一阶,则经过足够长的时间后,h(t)趋于一个非零的数值或形成一个等幅振荡,则系统处于临界稳定。

三、实验用函数

1roots

功能:求多项式的根。

调用格式:

r=roots(a):由多项式的分子和分母系数向量求根向量。其中,多项式的分子或分母系数向量按降幂排列,得到的根向量为列向量。

2tf2zp

功能:将系统传递函数模型转换为系统零极点增益模型。

调用格式:

[z,p,k]=tf2zp(num,den):输入传递函数分子、分母的系数向量,求得零极点增益模型中零点向量、极点向量及增益系数。且均为列向量。

3zp2tf

功能:将系统零极点增益模型转换为传递函数模型。

调用格式:

[num,den]=zp2tf(z,p,k):输入零极点增益模型的零点向量、极点向量及增益系数,求得传递函数分子、分母系数向量。

4pzmap

功能:显示LTI系统的零极点分布图

调用格式:

pzmap(b,a):绘制由行向量ba构成的系统函数所确定的零极点分布图。

pzmap(p,z):绘制由零点和极点构成的零极点分布图。

[p,z]=pzmap(b,a):由行向量ba构成的系统函数确定零极点。

四、实例

1、已知系统函数:

求出该系统的零极点,并画出其零极点分布图。

解:由已知条件可得,其分子、分母的系数向量分别为:

b=[1,-1];

a=[1,2,2];

MATLAB实现:

b=[1,-1];

a=[1,2,2];

zs=roots(b);

ps=roots(a);

plot(real(zs),imag(zs),'o',real(ps),imag(ps),'kx','markersize',12)

axis([-2,2,-2,2]);

grid;

legend('零点','极点');

程序运行结果如图5-1

5-1

2、已知系统函数分别为:

求这些系统的零极点分布图及系统的冲激响应,并判断系统的稳定性。

解:由已知条件可得:

该系统函数的系数向量分别为:b=[1]a=[1,1]

该系统函数的系数向量分别为:b=[1]a=[1,2,17]

MATLAB程序:

b1=[1]; a1=[1,1];

subplot(2,2,1); pzmap(b1,a1);

axis([-2,2,-1,1]);

subplot(2,2,2); impulse(b1,a1);

axis([0,5,0,1.2]);

b2=[1]; a2=[1,2,17];

subplot(2,2,3); pzmap(b2,a2);

axis([-2,2,-6,6]);

subplot(2,2,4); impulse(b2,a2);

axis([0,5,-0.1,0.2]);

程序运行结果如图5-2

5-2

由上图可看出,以上两个系统的极点均落在S的左半平面,且系统的冲激响应的曲线随着时间增长而收敛,所以可以判定该系统是稳定的。

五、实验任务

1、输入并运行例题程序,熟悉基本指令的使用。

2、已知系统函数分别为

求以上系统的零极点分布图以及系统的冲激响应,并判断系统的稳定性。

3、已知系统函数为

求以上系统的零极点分布图以及系统的冲激响应,并判断系统的稳定性。

六、实验报告

1、简述实验目的、原理。

2、写出上机调试通过的实验任务的程序并描述其图形曲线。

3、思考题:研究S平面上多重极点对系统响应的影响。

实验六 连续系统的频率响应

一、实验目的

1、加深对连续系统的频率响应特性概念的理解。

2、掌握连续系统的零极点与频响特性之间的关系。

3、熟悉相关函数的使用方法。

二、实验原理

线性时不变系统的频域分析法是一种变换域分析法,它把时域中求解响应的问题通过傅立叶变换转换成频域中的问题。整个过程在频域内进行,因此它主要是研究信号频谱通过系统后产生的变化,利用频域分析法可分析系统的频率响应、波形失真、物理可实现等实际问题。

在时域分析中我们知道,系统的零状态响应等于输入信号与系统单位冲激响应的卷积积分,即

e(t)h(t)的傅立叶变换均存在,由时域卷积定理可知

称为系统函数,由于它是频率的函数,故又称为频率响应函数。一般为频率的复函数,又可写为幅值与相位的形式,即

式中的幅值,其随频率变化关系称为幅频响应;为其相位,其随频率变化关系称为相频响应。

三、实验用函数

1freqs

功能:连续时间系统的频率响应。

调用格式:

h=freqs(b,a,w):用于计算连续时间系统的复频域响应,其中,w用于指定频率值。

[h,w]=freqs(b,a):自动设定200个频率点来计算频率响应,将200个频率值记录在w中。

[h,w]=freqs(b,a,n):设定n个频率点计算频率响应。

freqs(b,a):不带输出变量的freqs函数,将在当前图形窗口中描绘幅频和相频曲线。

2abs

功能:求幅值。

调用格式:

m=abs(h):用于求取h的幅值。

3angle

功能:求相角。

调用格式:

p=angle(h):用于求取h的相角(以弧度为单位),相角介于之间。

四、实例

已知RC一阶高通电路图的系统函数H(s)

其中:R=200C=0.47。求其幅度频率响应与相位频率响应。

MATLAB程序

r=200;c=0.47e-6;

b=[r*c,0];

a=[r*c,1];

w=0:40000;

h=freqs(b,a,w);

subplot(2,1,1); plot(w,abs(h)); grid; ylabel('幅度')

subplot(2,1,2); plot(w,angle(h)/pi*180); grid; ylabel('相位')

程序执行结果如图6-1

6-1

五、实验任务

1、输入并运行例题程序,熟悉基本指令的使用。

2、已知二阶RLC并联电路如图所示,其中R=200,C=0.47,L=22mH。列写出该电路的系统函数,并求该系统的幅度频率响应、相位频率响应以及零极点分布图。(提示:系统函数

二阶RLC并联电路

六、实验报告

1、简述实验目的、原理。

2、写出上机调试通过的实验任务的程序并描述其图形曲线。

3、思考题:连续系统的零极点对系统幅频响应有何影响?

实验七 信号的时域抽样与重建

一、实验目的

1、加深对对信号时域抽样与重建基本原理的理解。

2、了解用MATLAB语言进行信号时域抽样与重建的方法。

3、观察信号抽样与重建的图形。

二、实验原理

离散时间信号大多数由连续时间信号进行抽样获的。在信号进行处理的过程中,要使有限带宽信号被抽样后能够不失真地还原出原模拟信号,抽样信号的周期Ts及抽样频率Fs的取值必须符合奈奎斯特定理。

如果Fs的取值大于两倍的信号最高频率fm,只要经过一个低通滤波器,抽样信号就能不失真地还原出原模拟信号。反之,则频谱将发生混叠,抽样信号将无法不失真地还原出原模拟信号。

三、实例

1、对连续信号进行采样

已知一个连续时间信号

其中:f0=1HZ,取最高有限带宽频率fm=5f0。分别显示原连续时间信号波形和

3种情况下抽样信号的波形。

解:分别取Fs=fmFs=2fmFs=3fm三种抽样频率

MATLAB程序

f0=1;T=1/f0;

fm=5*f0;Tm=1/fm;

t=-2:0.1:2;

x=sin(2*pi*f0*t)+1/3*sin(6*pi*f0*t);

subplot(4,1,1);plot(t,x)

axis([min(t),max(t),1.1*min(x),1.1*max(x)]);

title('原连续信号和抽样信号');

for i=1:3;

fs=i*fm;Ts=1/fs;

n=-2:Ts:2;

xs=sin(2*pi*f0*n)+1/3*sin(6*pi*f0*n);

subplot(4,1,1+i);stem(n,xs,'filled');

axis([min(n),max(n),1.1*min(xs),1.1*max(xs)]);

end

程序执行结果如图7-1

7-1

2、连续信号和抽样信号的频谱

根据理论可知,信号的频谱图可以直观地反映出抽样信号能否恢复原模拟信号波形。通过对上例中3种情况求振幅频谱,来进一步分析和证明时域抽样定理。

MATLAB程序:

f0=1;T=1/f0;

t=-2:0.1:2;

N=length(t);

x=sin(2*pi*f0*t)+1/3*sin(6*pi*f0*t);

fm=5*f0;Tm=1/fm;

wm=2*pi*fm;

k=0:N-1;w1=k*wm/N;

X=x*exp(-j*t'*w1)*Tm;

subplot(4,1,1);plot(w1/(2*pi),abs(X))

axis([0,max(4*fm),1.1*min(abs(X)),1.1*max(abs(X))]);

for i=1:3;

if i<=2 c=0;else c=1; end

fs=(i+c)*fm;Ts=1/fs;

n=-2:Ts:2;

xs=sin(2*pi*f0*n)+1/3*sin(6*pi*f0*n);

N=length(n);

ws=2*pi*fs;

k=0:N-1;w=k*ws/N;

Xs=xs*exp(-j*n'*w)*Ts;

subplot(4,1,1+i);plot(w/(2*pi),abs(Xs));

axis([0,max(4*fm),1.1*min(abs(Xs)),1.1*max(abs(Xs))]);

end

程序运行结果如图7-2所示:

7-2

从图7-2可以看出,当时,抽样信号的频谱没有混叠现象,反之,抽样信号的频谱发生了混叠,如图中第二幅图所示。

3、利用时域卷积重建例题信号

时域卷积是用时域抽样信号xs(t)与理想滤波器系统的单位冲激响应h(t)进行卷积积分来求解。卷积积分的公式通过推导化简为内插公式

MATLAB程序:

f0=1;T0=1/f0; %基波频率、周期

fm=5*f0;Tm=1/fm; %最高频率为基波的5

t=0:0.01:3*T0;

x=sin(2*pi*f0*t)+1/3*sin(6*pi*f0*t);

subplot(4,1,1);plot(t,x)

for i=1:3;

fs=i*fm;Ts=1/fs; %设置不同采样频率、周期

n=0:(3*T0)/Ts;

t1=0:Ts:3*T0;

xs=sin(2*pi*f0/fs*n)+1/3*sin(6*pi*f0/fs*n); %抽样信号

T_N=ones(length(n),1)*t1-n'*Ts*ones(1,length(t1));

x1=xs*sinc(2*pi*fs*T_N); %内插公式计算

subplot(4,1,1+i);plot(t1,x1)

axis([min(t1),max(t1),1.1*min(x1),1.1*max(x1)])

end

程序运行结果如图7-3所示:

7-3

从图7-3可以看出,当时,信号基本被还原,反之,信号出现失真,如图中第二幅图所示。

五、实验任务

1、输入并运行例题程序,熟悉基本指令的使用。

2、利由频域相乘重建信号。

(提示:满足奈奎斯特抽样定理的信号xs(t),只要经过一个理想的低通滤波器,其中

将原信号有限带宽以外的频率部分滤除,就可以重建x(t)信号,该方法从频域的角度进行处理,即用,则滤波器的输出端就会出现恢复的连续信号。)

六、实验报告

1、简述实验目的、原理。

2、写出上机调试通过的实验任务的程序并描述其图形曲线。

3、思考题:通过实验,总结信号抽样时需注意的问题,及使用那些方法进行信号的重建。

实验八 连续时间系统分析与设计(综合设计实验)

一、实验目的

1、理解连续时间系统的系统函数在分析连续系统的时域特性、频域特性及稳定性的重要作用及意义。

2、掌握利用MATLAB分析连续系统的时域响应、频率响应和零极点的基本方法。

3、掌握根据系统函数的零极点设计简单的滤波器的方法。

二、实验任务

根据系统零极点对幅频特性曲线影响设计下面系统

S平面上配置零极点,并使用freqs命令绘出相应的幅频特性曲线,重复这个过程直至找到满足下面指标的零极点。并就观察零极点图与其对应的 幅频响应之间的关系。

1)设计一个2个零点、2个极点、具有实系数的高通滤波器,满足

2)设计一个具有实系数的低通滤波器,满足

三、实验报告

1、简述实验目的、原理。

2、写出上机调试通过的实验任务的程序并描述其图形曲线。

3、总结本次设计所获得的经验与教训。

附录:

附录1MATLAB的基本操作与使用方法

MATLAB的工作环境主要由命令窗口(Command Windows)、文本编辑器(File Editor)、图形显示窗口等组成。

命令窗口基本使用方法。在MATLAB命令窗口中输入一条命令,按键,该指令就被立即执行并在窗口中显示结果。如图1所示。

1

如果一个程序比较复杂的话,则不适合在命令窗口中进行处理,而应采用文件方式,这将用到文本编辑器。在文本编辑器中把程序写成一个由多条语句构成的文件并存储起来,需要运行时,在命令窗口输入文件回车即可。如图2所示。

2

文本编辑器除了可以编写程序以外,还可以编写函数,可以像系统的库函数一样被调用。为区别程序和函数,函数文件的第一行是函数申明行,关键字是function,如:

function y=two_add(x1,x2)

下面以两个数求和为例了解函数的编写和调用过程,如图3所示。

3

程序的执行结果是数值的话将直接在命令窗口中显示,如果是图形,将自动打开图形显示窗口进行显示。

MATLAB使用的注意事项:

1、变量不需要先定义,随时用随时起名字即可;

2、用文本编辑器编写的程序、函数的文件扩展名均为”.m”

3、程序文件在起名字时要注意不能用数字和中文作为文件名;

4、函数文件在保存时会自动以定义的函数名作为其文件名,不允许修改,否则函数无法运行;

5、变量和常量的标识符的最大长度为19个字符,标识符中的第一个字符必须是英文字符。

6MATLAB变量区分大小写。

附录2、综合设计实验参考解法和参考程序

[]在高通与低通滤波器的设计中,是采用S平面上配置零极点,观察其对应的频谱图是否符合要求。

首先根据二阶高通滤波器模型:

以下解法只供参考,方法不唯一:若令

1) ,可以得出:

2) 考虑一种情况:,如下图所示:

3) 考虑另一种理想情况:,如下图所示:

2)、3)得出一组大致范围:

我们采用试探方法给上面模型配置不同数值:

[1]

[2]

[3]

[4]

[5]

结果表明:[3]显示的频谱图比较符合数据要求。另外,极点实部越小,通带越靠后;虚部越大,频谱波形的陡峭程度越大。

二阶低通滤波器模型:

我们采用试探方法给上面模型配置不同数值:(大概原则是)

[1]k=50,b=5,c=50;(发现频谱有一部分超出要求范围,其他指标非常接近要求)

[2]k=60,b=10,c=60;(发现频谱带宽不符合要求)

[3]k=65,b=15,c=65;(同[2],可见bc“差距”越小,带宽越小)

[4]k=70,b=10,c=70;(仍然是带宽不符合,需加大bc“差距”)

[5]k=70,b=8,c=70;(符合要求)

根据已经得到的数据知道此时极点,如果还需进一步观察极点对频谱图的影响,可以对极点的实部和虚部或者模的大小进行调整,并观察它们的规律。

参考程序:

[1] 高通的一个参考程序:

k=1;

b=[1 0 0]*k;

a=conv([1 85+157j],[1 85-157j]);

sys=tf('s'); %系统函数

sys=tf(b,a)

p=roots(a);

z=roots(b);

figure(1)

subplot(1,2,1); %零极点图

plot(real(p),imag(p),'*');hold on;

plot(real(z),imag(z),'o'); xlabel('t');title('零极点图');

grid on

T=0:0.1:3;

h=impulse(b,a,T);

subplot(1,2,2); %对应的冲激响应h(t)

plot(h); axis([0 30 -400 100]);

xlabel('t');title('冲激响应h(t)');

grid on

f=0:0.1:100;

w=2*pi*f;

H=freqs(b,a,w);

figure(2) %频谱图

plot(w,abs(H));xlabel('w');title('频谱图');

grid on

[2]低通的一个参考程序:

b=70;

a=[1 8 70];

sys=tf('s'); %系统函数

sys=tf(b,a)

p=roots(a)

z=roots(b);

figure(1)

subplot(1,2,1); %零极点图

plot(real(p),imag(p),'*');hold on;

plot(real(z),imag(z),'o');xlabel('t');title('零极点图');

grid on

T=0:0.1:3;

h=impulse(b,a,T);

subplot(1,2,2); %对应的冲激响应

plot(h);xlabel('t');title('冲激响应h(t)');

grid on

f=0:0.1:6;

w=2*pi*f;

H=freqs(b,a,w);

figure(2) %频谱图

plot(w,abs(H));xlabel('w');title('频谱图');

grid on

本文来源:https://www.2haoxitong.net/k/doc/90ae9806ad51f01dc381f1ad.html

《信号与系统实验指导书.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式