资源描述
实验一 典型连续时间信号和离散时间信号
一、实验目的
掌握利用Matlab画图函数和符号函数显示典型连续时间信号波形、典型时间离散信号、连续时间信号在时域中的自变量变换。
二、实验内容
1、典型连续信号的波形表示(单边指数信号、复指数信号、抽样信号、单位阶跃信号、单位冲击信号)
1)画出教材P28习题1-1(3) 的波形图。
function y=u(t)
y=t>=0;
t=-3:0.01:3;
f='exp(t)*(u(6-3*t)-u(-6-3*t))';
ezplot(f,t);
grid on;
2)画出复指数信号当(0<t<10)时的实部和虚部的波形图。
t=0:0.01:10;
f1='exp(0.4*t)*cos(8*t)';
f2='exp(0.4*t)*sin(8*t)';
figure(1)
ezplot(f1,t);
grid on;
figure(2)
ezplot(f2,t);
grid on;
3)画出教材P16图1-18,即抽样信号Sa(t)的波形(-20<t<20)。
t=-10:0.01:10;
f='sin(t)/t';
ezplot(f,t);
grid on;
4)用符号函数sign画出单位阶跃信号u(t-3)的波形(0<t<10)。
t=0:0.01:10;
f='(sign(t-3)+1)/2';
ezplot(f,t);
grid on;
5)单位冲击信号可看作是宽度为,幅度为的矩形脉冲,即t=t1处的冲击信号为
画出, t1=1的单位冲击信号。
t=0:0.01:2;
f='5*(u(t-1)-u(t-1.2))';
ezplot(f,t);
grid on;
axis([0 2 -1 6]);
2、典型离散信号的表示(单位样值序列、单位阶跃序列、实指数序列、正弦序列、复指数序列)
编写函数产生下列序列:
1)单位脉冲序列,起点n0,终点nf,在ns处有一单位脉冲。
2)单位阶跃序列,起点n0,终点nf,在ns前序列值为0,在ns后序列值为1。
对于1)、2)小题,最后以参数n0= -10,nf=10,ns= -3为例,画出各自波形。
(1) 、(2)
n0=-10;nf=10;ns=-3;n=n0:nf;
x1=[zeros(1,ns-n0),1,zeros(1,nf-ns)];
figure(1);
stem(n,x1);
title('单位脉冲序列');
x2=[zeros(1,ns-n0),1,ones(1,nf-ns)];
figure(2);
stem(n,x2);
title('单位阶跃序列');
3)画出教材P21图1-26,即当a=1.2, 0.6, -1.5, -0.8的单边指数序列(-2≤n≤5)。
n=-2:5;
subplot(2,2,1)
x1=1.2.^n.*u(n);stem(n,x1);
title('1.2^n*u(n)');
subplot(2,2,2)
x2=0.6.^n.*u(n);stem(n,x2);
title('0.6^n*u(n)');
subplot(2,2,3)
x3=(-1.5).^n.*u(n);stem(n,x3);
title('(-1.5)^n*u(n)');
subplot(2,2,4)
x4=(-0.8).^n.*u(n);stem(n,x4);
title('(-0.8)^n*u(n)');
4)画出教材P21图1-27,即的正弦序列(-7≤n≤14)。
n=-7:14;
x=sin(pi/7*n);
stem(n,x);
title('x[n]=sin(\Omega_0n) 正弦序列');
5)画出复指数序列和的实部和虚部(-50≤n≤50)。
n=-50:50;
figure(1)
x1=cos(pi/6*n);stem(n,x1);
title('cos(n\pi/6) 实部');
figure(2)
x2=sin(pi/6*n);stem(n,x2);
title('sin(n\pi/6) 虚部');
figure(3)
x3=cos(3*n);stem(n,x3);
title('cos(3*n) 实部');
figure(4)
x4=sin(3*n);stem(n,x4);
title('sin(3*n) 虚部');
3、信号的自变量变换
1)编写程序(函数),画出教材P10图1-13(a)即f(t)的波形(-6<t<6);
2)利用1)中建立的函数,通过自变量替换方式依次画出图1-13(b)、(c)、(d)即f(t+5)、 f(-t+5)、 f(-2t+5)的波形(-6<t<6)。
syms t;
f='u(t)-u(t-2)'+(1+t)*'u(t+1)-u(t)';
subplot(2,2,1);ezplot(f,[-2,3]);
axis([-2 3 -0.2 1.2]);title('f(t)');grid on;
f1=subs(f,t,t+5);
subplot(2,2,2);ezplot(f1,[-7,-2]);
axis([-7 -2 -0.2 1.2]);title('f(t+5)');grid on;
f2=subs(f,t,-t+5);
subplot(2,2,3);ezplot(f2,[2,7]);
axis([2 7 -0.2 1.2]);title('f(-t+5)');grid on;
f3=subs(f,t,-2*t+5);
subplot(2,2,4);ezplot(f3,[-1,4]);
axis([-1 4 -0.2 1.2]);title('f(-2t+5)');grid on;
实验二 连续和离散时间LTI系统的响应及卷积
一、实验目的
掌握利用Matlab工具箱求解连续时间系统的冲激响应、阶跃响应,离散时间系统的单位样值响应,理解卷积概念。
二、实验内容
1、连续时间系统的冲击响应、阶跃响应
a. 利用impulse函数画出教材P44例2-15: LTI系统 的冲击响应的波形。
a=[0 1 3];
b=[0 2];
impulse(b,a);
b. 利用step函数画出教材P45例2-17: LTI系统的阶跃响应的波形。
a=[1 3 2];
b=[0.5 2];
step(b,a);
2、离散时间系统的单位样值响应
利用impz函数画出教材P48例2-21: 的单位样值响应的图形。
a=[1 -3 3 -1];
b=[0 1];
impz(b,a);
3、连续时间信号卷积
画出函数f1(t)=(1+t)[u(t)-u(t-1)]和f2(t)=u(t-1)-u(t-2)的图形,并利用附在后面的sconv.m函数画出卷积积分f1(t)* f2(t)图形。
function sconv(f1,f2,k1,k2)
f3=conv(f1,f2);
ks=k1(1)+k2(1);
ke=k1(end)+k2(end);
k=length(k1)+length(k2)-1;
k3=linspace(ks,ke,k);
subplot(2,2,1)
plot(k1,f1)
title('f1(t)')
xlabel('t')
ylabel('f1(t)')
subplot(2,2,2)
plot(k2,f2)
title('f2(t)')
xlabel('t')
ylabel('f2(t)')
subplot(2,2,3)
plot(k3,f3);
h=get(gca,'position');
h(3)=2.5*h(3);
set(gca,'position',h)
title('f(t)=f1(t)*f2(t)')
xlabel('t')
ylabel('f(t)')
t=-1:0.01:3;
f1=(1+t).*(0.5*sign(t)-0.5*sign(t-1));
f2=(0.5*sign(t-1)-0.5*sign(t-2));
sconv(f1,f2,t,t);
4、画出教材P60例2-28中h[n]、x[n]的图形(图2-14(a)(b)),并利用conv函数求出卷积x[n]*h[n]并画出图形(图2-14(f))。
function dconv(x1,x2,k1,k2)
x3=conv(x1,x2);
ks=k1(1)+k2(1);
ke=k1(end)+k2(end);
k=length(k1)+length(k2)-1;
k3=linspace(ks,ke,k);
subplot(2,2,1)
stem(k1,x1)
title('x1[n]')
xlabel('n')
ylabel('x1[n]')
subplot(2,2,2)
stem(k2,x2)
title('x2[n]')
xlabel('n')
ylabel('x2[n]')
subplot(2,2,3)
stem(k3,x3);
h=get(gca,'position');
h(3)=2.5*h(3);
set(gca,'position',h)
title('x[n]=x1[n]*x2[n]')
xlabel('n')
ylabel('x[n]')
n=0:4;
x1=[ones(1,3),zeros(1,2)];
x2=[1,2,1,zeros(1,2)];
dconv(x1,x2,n,n);
实验三 连续时间周期信号的傅里叶级数
一、实验目的
掌握连续时间周期信号的傅里叶级数的展开和合成,理解吉布斯现象,掌握周期矩形脉冲信号的频谱及脉冲宽度、周期对周期信号频谱的影响。
二、实验内容
1、周期信号的傅里叶级数的展开和合成
画出如下图对称方波(取E=1、T=1),并采用有限项傅里叶级数对原函数进行逼近,画出对称方波的1、3、5、7、9、11次谐波的傅里叶级数合成波形,观察吉布斯现象。
(a)
function F_series(m)
sum=0;
t=-3:0.01:3;
E=1;T=1;
ta=T/2;w=2*pi/T;
for n=1:2*m-1
fn=(2*E*ta/T)*sin(w*ta*n/2)/(w*ta*n/2);
f=(E*ta/T)+cos(n*w*t)*fn-E/2;
sum=sum+f;
end
figure(m)
plot(t,sum);grid on;
title([num2str(2*m-1) '次谐波的傅里叶级数合成波形']);
for i=1:6
F_series(i);
end
2、周期矩形脉冲信号的频谱
a. 取E=1,t=1, 画出周期矩形脉冲(教材P83图3-6)的傅里叶级数的频谱(教材P83图3-7);
b. 取E=1,t=1, 画出教材P85图3-8(a);
c. 取E=1,t=1, 画出教材P85图3-8(c)。
(a)
n=-12:12;
E=1;t=1;
T=5*t;w=2/T;
fn=abs(E*t/T*sinc(w*t*n/2));
stem(n,fn,'filled');
hold on
k=-12:0.01:12;
f=abs(E*t/T*sinc(w*t*k/2));
plot(k,f,'--');
(b)
function f=u(t)
f=t>=0;
t=-12:0.01:12;
y=u(t+1/4)-u(t-1/4)+u(t-19/4)-u(t-21/4)-u(t+19/4)+u(t+21/4)+u(t-39/4)-u(t-41/4)-u(t+39/4)+u(t+41/4);
subplot(2,1,1);
plot(t,y);
axis([-12 12 -0.1 1.1]);
xlabel('t');
ylabel('f(t)');
n=-12:12;
E=1;t=1;
T=10*t;w=2/T;
fn=abs(E*t/T*sinc(w*t*n/2));
subplot(2,1,2);
stem(n,fn,'filled');
hold on;
k=-12:0.01:12;
f=abs(E*t/T*sinc(w*t*k/2));
plot(k,f,'--');
xlabel('w');
ylabel('Fn');
(c)
t=-12:0.01:12;
y=u(t+1/4)-u(t-1/4)+u(t-39/4)-u(t-41/4)-u(t+39/4)+u(t+41/4);
subplot(2,1,1);
plot(t,y);
axis([-12 12 -0.1 1.1]);
xlabel('t');
ylabel('f(t)');
n=-12:12;
E=1;t=1;
T=5*t;w=2/T;
fn=abs(E*t/T*sinc(w*t*n/2));
subplot(2,1,2);
stem(n,fn,'filled');
hold on;
k=-12:0.01:12;
f=abs(E*t/T*sinc(w*t*k/2));
plot(k,f,'--');
xlabel('w');
ylabel('Fn');
实验四 非周期信号的频域分析
一、实验目的
理解非周期信号的频域分析方法,掌握典型信号的幅度谱和相位谱,理解信号的调制特性,掌握傅里叶变换的性质:尺度变换、时移、频移、卷积定理、对称性、微分特性。
二、实验内容
1、利用符号函数fourier和ifourier求傅里叶变换和傅里叶逆变换。
a. 利用符号函数fourier求教材P91双边指数信号当a=3时的傅里叶变换表达式。
b. 利用符号函数ifourier求教材P92第一个公式当a=1时的傅里叶逆变换表达式。
c. 利用符号函数fourier和ezplot画出及其幅频谱。
(a)
function f=Heaviside(t)
f=t>=0;
x='exp(-3*t)'*sym('Heaviside(t)');
F=fourier(x);
subplot(2,1,1);
ezplot(x);
subplot(2,1,2);
ezplot(abs(F));
(b)
>> F=sym('2/(1+w*w)');
>> x=ifourier(F)
x =
exp(-x)*Heaviside(x)+exp(x)*Heaviside(-x)
(c)
x='1/2*exp(-2*t)'*sym('Heaviside(t)');
F=fourier(x);
subplot(2,1,1);
ezplot(x);
subplot(2,1,2);
ezplot(abs(F));
2、幅度调制信号及其频谱
已知线性调制信号表示式如下:
a. ; b.
式中,试分别画出它们的波形图和频谱图。
function f=Dirac(t)
f=Inf.^~t-1;
syms t
y1=cos(t)*cos(9*t);
y2=(1.5+sin(t))*cos(9*t);
y11=fourier(y1);
y22=fourier(y2);
subplot(2,2,1),ezplot(y1);
subplot(2,2,2),ezplot(y11);
subplot(2,2,3),ezplot(y2);
subplot(2,2,4),ezplot(y22);
3、傅里叶变换的性质(尺度变换、时移、频移、卷积定理、对称性)
a. 设,求的频谱,并与的频谱进行比较。
b. 画出、 和的幅度谱和相位谱,观察信号时移对信号频谱的影响。
c. 画出、和的频谱,进行相互比较。
d. 画出、及其、和的图形,验证时域卷积定理。
e. 设,已知信号的傅里叶变换为,求的傅里叶变换,画出各自的图形,并验证对称性。
(a)
f1=sym('Heaviside(t+1)-Heaviside(t-1)');
F1=fourier(f1);
f2=sym('Heaviside(2*t+1)-Heaviside(2*t-1)');
F2=fourier(f2);
subplot(2,1,1)
ezplot(abs(F1));
subplot(2,1,2)
ezplot(abs(F2));
(b)
syms t;
f0='Heaviside(t)';
f=exp(-2*t)*f0/2;
f1=exp(-2*(t-0.4))*subs(f0,t,t-0.4)/2;
f2=exp(-2*(t+0.4))*subs(f0,t,t+0.4)/2;
F=abs(fourier(f));
subplot(2,3,1),ezplot(F);
F1=abs(real(fourier(f1)));
subplot(2,3,2),ezplot(F1);
F2=abs(real(fourier(f2)));
subplot(2,3,3),ezplot(F2);
h=atan(imag(fourier(f))/real(fourier(f)));
subplot(2,3,4),ezplot(h);
h1=atan(imag(fourier(f1))/real(fourier(f1)));
subplot(2,3,5),ezplot(h1);
h2=atan(imag(fourier(f2))/real(fourier(f2)));
subplot(2,3,6),ezplot(h2);
(c)
f1=sym('Heaviside(t+1)-Heaviside(t-1)');
F1=fourier(f1);
f2=f1*'exp(-j*20*t)';
F2=fourier(f2);
f3=f1*'exp(j*20*t)';
F3=fourier(f3);
subplot(3,1,1)
ezplot(abs(F1));
subplot(3,1,2)
ezplot(abs(F2));
subplot(3,1,3)
ezplot(abs(F3));
(d)
t1=-2:0.01:2;
kl=2*length(t1)-1;
ks=2*t1(1);
ke=2*t1(end);
t2=linspace(ks,ke,kl);
f1=stepfun(t1,-1)-stepfun(t1,1);
y1=conv(f1,f1)*0.01/2;
f=sym('Heaviside(t+1)-Heaviside(t-1)');
F1=fourier(f); F2=F1*F1;
subplot(2,2,1),plot(t1,f1);
subplot(2,2,2),plot(t2,y1);
subplot(2,2,3),ezplot(F1);
subplot(2,2,4),ezplot(F2);;
(e)
syms w t;
f=sym('sin(t)/t');
subplot(2,2,1),ezplot(f);
F=fourier(f);
subplot(2,2,2),ezplot(F);
f1=subs(F,'w',t);
subplot(2,2,3),ezplot(f1);
F1=fourier(f1);
subplot(2,2,4),ezplot(F1);
实验五 连续信号的抽样和恢复
一、实验目的
理解模拟信号的抽样与重构过程,理解信号时域抽样对频域的影响,理解抽样定理。
二、实验内容
设信号f(t)=Sa(t)=sin(t)/t,在抽样间隔分别为
(1) Ts=0.7p(令wm=1,wc=1.1wm)
(2) Ts=1.5p(令wm=1,wc=1.1wm)
的两种情况下,对信号f(t)进行采样,试编写MATLAB程序代码,并绘制出抽样信号波形、由抽样信号得到的恢复信号波形。
(提示:利用教材P174公式(5-10)和所附样例)
function simpling(Ts)
wm=1;wc=1.1*wm;
Ts=pi*Ts;ws=2*pi/Ts;
n=-100:100;
nTs=n*Ts;
f=sinc(nTs/pi);
Dt=0.005;
t=-15:Dt:15;
fa=f*Ts*wc/pi*sinc((wc/pi)*(ones(length(nTs),1)*t-nTs'*ones(1,length(t))));
error=abs(fa-sinc(t/pi));
t1=-15:0.5:15;
f1=sinc(t1/pi);
subplot(3,1,1); stem(t1,f1);
xlabel('kTs'); ylabel('f(kTs)');
title('sa(t)=sinc(t/pi)临界抽样信号');
subplot(3,1,2); plot(t,fa);
xlabel('t'); ylabel('fa(t)');
title('由sa(t)=sinc(t/pi)的临界抽样信号重构sa(t)');
grid on;
subplot(3,1,3); plot(t,error);
xlabel('t'); ylabel('error(t)');
title('临界抽样信号与原信号的误差error(t)');
figure(1)
simpling(0.7)
figure(2)
simpling(1.5)
实验六 拉普拉斯变换
一、实验目的
掌握系统零极点求法, 理解其含义; 并能利用零极点分析系统的时域和频域特性; 掌握系统的复频域和频域之间的关系;掌握求系统频率响应的方法。
二、实验内容
1、利用mesh函数画出信号f(t)=sin(t)u(t)的拉普拉斯变换的曲面图。
a=-0.5:0.08:0.5;
b=-2:0.08:2;
[a,b]=meshgrid(a,b); s=a+i*b;
f='sin(t)'*sym('Heaviside(t)');
F=laplace(f);c=subs(F,s);
c=abs(c);mesh(a,b,c);
axis([-0.5,0.5,-2,2,0,15]);
title('单边正弦信号拉氏变换曲面图');
colormap(hsv);
2、利用meshgrid、mesh、surf函数画出信号f(t)= u(t)-u(t-2)的拉普拉斯变换的曲面图,观察曲面图在虚轴剖面上的曲线,并将其与信号傅里叶变换绘制的振幅频谱进行比较。
(a)
a=0:0.1:5;
b=-20:0.1:20;
[a,b]=meshgrid(a,b);
s=a+i*b+eps;
f=sym('Heaviside(t)-Heaviside(t-2)');
F=laplace(f);
c=subs(F,s);
c=abs(c);
figure(1)
mesh(a,b,c);
title('拉普拉斯变换曲面图');
figure(2)
surf(a,b,c);
title('拉普拉斯变换曲面图');;
(b)
w=-20:0.1:20;
f=sym('Heaviside(t)-Heaviside(t-2)');
F=fourier(f);
r=real(subs(F,w+eps));
plot(w,r);
title('傅里叶变换的振幅频谱');
3、画出的曲面图,观察拉普拉斯变换的零极点。
a=-6:0.48:6;
b=-6:0.48:6;
[a,b]=meshgrid(a,b);
s=a+i*b;
d=2*(s-3).*(s+3);
e=(s.*s+10).*(s-5);
c=d./e;
c=abs(c);
mesh(a,b,c);
surf(a,b,c);
colormap(hsv);
view(-25,30);
4、利用roots函数求根,画出和的零极点图。
function zpole(a,b,c,n)
zs=roots(b);
ps=roots(a);
figure(n)
plot(real(zs),imag(zs),'o',real(ps),imag(ps),'rx','markersize',12);
axis(c);
grid on;
legend('零点','极点');
a=[1 2 -3 2 1];
b=[1 0 -4];
c=[-4 2.5 -1 1];
zpole(a,b,c,1);
a=[1 5 16 30];
b=[5 20 25 0];
c=[-3.5 0.5 -4 4];
zpole(a,b,c,2);
5、已知拉普拉斯变换,利用residue函数求其拉普拉斯逆变换。
>>a=[2 4];
>>b=[1 0 4 0];
>> [r p k]=residue(a,b)
r =
-0.5000 - 0.5000i
-0.5000 + 0.5000i
1.0000
p =
0 + 2.0000i
0 - 2.0000i
0
k =
[]
6、已知系统函数为,利用residue函数求该系统的冲击响应h(t),并利用impulse函数画出其时域波形,判断系统的稳定性。
>>b=[1,4];
>>a=[1,3,2,0];
>> [r p k]=residue(b,a)
r =
1
-3
2
p =
-2
-1
0
k =
[]
>>impulse(b,a)
7、设,利用freqs函数画出系统幅频特性曲线和相频特性曲线。
w=0:0.01:50;
b=1;a=[0.08 0.4 1];
H=freqs(b,a,w);
subplot(2,1,1);
plot(w,abs(H));
xlabel('\omega'),ylabel('|H(j\omega)|');
title('幅频特性');
subplot(2,1,2);
x=180*angle(H)/pi;
plot(w,x);
xlabel('\omega'),ylabel('\phi(\omega)');
title('相频特性');
实验七 离散系统的z域分析
一、实验目的
理解并掌握系统函数的概念; 掌握利用系统函数零极点分析系统的稳定性和频率特性,掌握序列的z变换及其性质;掌握z域系统表示和差分方程求解。
二、实验内容
1、 利用residuez函数对(即)进行部分分式展开。
syms z;
b=[2.5 -0.9 0];
a=[1 -0.9 0.18];
[r p k]=residuez(b,a);
f=0;
for i=1:length(r)
f=f+r(i)/(1-p(i)/z);
end
f
f =
2/(1-3/5/z)+1/2/(1-3/10/z)
2、设某离散系统的系统函数为:,利用roots函数求出系统的零极点,并画出系统的零极点图,判断系统是否稳定。
function [p,q]=sjdt(A,B)
p=roots(A);
q=roots(B);
p=p';
q=q';
x=max(abs([p q]));
x=x+0.1;
y=x;
clf
hold on;
axis([-x x -y y]);
axis('square')
plot([-x x],[0 0])
plot([0 0],[-y y]);
plot(real(p),imag(p),'x');
plot(real(q),imag(q),'o');
title('离散系统零极点图');
text(0.2,x-0.2,'虚轴');
text(y-0.2,0.2,'实轴');
A=[3 -4 0 0 0 1];
B=[1 1];
sjdt(A,B);
3、利用freqz函数画出离散系统的系统的幅频特性和相频特性曲线。
b=[1 -0.5];
a=[1 0];
w=linspace(-2*pi,2*pi,100);
H=freqz(b,a,w);
subplot(2,1,1);
plot(angle(H));
subplot(2,1,2);
plot(abs(H));
展开阅读全文