实验一
1、基本信号的表示及可视化
(1) 单位冲激信号 (t)
程序:
t=-1:0.001:1; %定义时间向量
for i=1:3; %采用循环语句观察i取不同值时的图形 dt=1/(i^4);
X=(1/dt)*((t>=(-1/2*dt))-(t>=(1/2*dt)));%计算函数值 subplot(1,3,i);%将图像分成三部分同时观察 stairs(t,X);
title('单位冲激信号δ(t)');
end
(2)单位阶跃信号
程序:
t=-0.5:0.001:1;%定义时间变量,间隔为0.001 S=stepfun(t,0);%定义单位阶跃信号
S1=stepfun(t,0.5);%定义单位阶跃延迟信号 figure(1);
plot(t,S);axis([-0.5 1 -0.2 1.2]);title('单位阶跃信号')%画出图形 figure(2);
plot(t,S1);axis([-0.5 1 -0.2 1.2]);title('单位阶跃延迟信号
')
(3)抽样信号 f=sin(t)./t;
程序:
t=-10:0.6:10; %向量t时间范围t=t1:p:t2,p为时间间隔 f=sin(t)./t;
plot(t,f,'o'); %显示该信号的时域波形 title('f(t)=Sa(t)(时间间隔为0.6s)'); %标题 xlabel('t') %横坐标标题
axis([-10,10,-0.4,1.1]) %横坐标和纵坐标范围
(4) 单位样值序列和单位阶跃序列
A.单位序列δ
(k)
B.单位阶跃序列ε(k)
程序:
n1=-10;n2=10;%输入序列的起始点 n=n1:n2; k=length(n); x1=zeros(1,k);
x1(1,-n1+1)=1;%产生单位样值序列 subplot(2,1,1);%绘图 stem(n,x1,'filled'); x2=ones(1,k); x2(1,1:-n1)=0; subplot(2,1,2);
stem(n,x2,'filled');
2、信号的频域分析
⎧E⎪⎪
已知周期方波信号f(t)=⎨
⎪0⎪⎩
|t|
τ2T02
τ2
,当T0=2τ, T0=4τ,T0=8τ时,画
出其幅度谱和相位谱,观察不同周期下,f(t)的频谱图有何区别。程序:
syms t k;
T=16;tao=1;A=1; %计算傅立叶系数
x0=int(A,t,-tao/2,tao/2)/T x=A*exp(-j*k*2*pi/T*t);
xk=int(x,t,-tao/2,tao/2)/T; xk=simple(xk) %化简表达式 %产生周期脉冲
t=[-2*T:0.01:2*T]; x1=rectpuls(t,tao);
subplot(3,1,1);plot(t,x1); hold on
x1=rectpuls(t-T,tao);plot(t,x1); hold on
x1=rectpuls(t+T,tao);plot(t,x1); hold off
title('周期矩形脉冲(T=16tao)') xlabel('t');
axis([-T-2 T+2 0 1.2]) %绘制频谱图
k=[-20:-1,eps,1:20]; %绘制幅度谱
xk=subs(xk,k,'k'); xk1=abs(xk);
subplot(3,1,2);stem(k,xk1,'filled'); line([-20,20],[0,0]);
title('周期矩形脉冲幅度谱(T=16tao)'); xlabel('k'); ylabel('Xk'); %绘制相位谱
s=angle(xk);
subplot(3,1,3);stem(k,s,'filled'); title('周期矩形脉冲相位谱(T=16tao)'); axis([-20 20 0 4]) xlabel('k'); ylabel('\phi')
T=2*tao
T=4*tao
T=8*tao
T=16*tao
实验二、
1. 1、一个连续时间LTI系统如下所示:
y''(t)+2y'(t)+y(t)=f'(t)+2f(t) 求(1)系统的单位冲激响应与阶跃响应; (2)当输入为e-2tε(t)时的零状态响应。
程序: b=[1 2]; a=[1 2 1]; subplot(1,3,1);
impulse(b,a); %冲激响应 subplot(1,3,2);
step(b,a) %阶跃响应
p=0.01; %定义取样时间间隔 t=0:p:5; % 定义时间范围 x=exp(-2*t); %定义输入信号 subplot(1,3,3);
lsim(b,a,x,t); %对系统的输出信号进行仿真
2. (1)取t=0:005:2.5,计算信号f(t)=f1(t)+f2(t)cos(50t)的值并画出波形。 程序:
t=0:0.005:2.5;%产生时间向量
f1=rectpuls(t-0.5,1);%产生中心在0.5的方波(t>0) subplot(4,1,1)
plot(t,f1);%画出波形 xlabel('t'); ylabel('f1(t)'); title('半个方波')
f2=tripuls(t-1,2);%产生中心在1的三角波 subplot(4,1,2)
plot(t,f2);%画出波形 xlabel('t'); ylabel('f2(t)'); title('三角波')
f22=f2.*cos(50*t); subplot(4,1,3)
plot(t,f22);title('f2.*cos(50*t)') xlabel('t');
ylabel('f22(t)');
f3=f1+f2.*cos(50*t); subplot(4,1,4)
plot(t,f3);title('f1+f2.*cos(50*t)') xlabel('t');
ylabel('f3(t)');
(2)一可实现的实际系统的H(j )为:
H(jω)=
10
4
3
42
2
3
4
(jω)+26.131(jω)+3.4142⨯10(jω)+2.6131⨯10(jω)+10
用freqs画出H(jω)的幅度和相位曲线。
程序:
w=linspace(0,5,200); b=[1e4];
a=[1 26.131 341.42 2613.11e4]; H=freqs(b,a,w);%求频率响应 subplot(2,1,1)
plot(w,abs(H));%画幅度频谱 set(gca,'xtick',[0 1 2 3 4 5]); set(gca,'ytick',[0 0.4 0.707 1]) xlabel('\omega');
ylabel('|H(j\omega)|'); subplot(2,1,2)
plot(w,angle(H));%画相位频谱 set(gca,'xtick',[0 1 2 3 4 5]); xlabel('\omega');
ylabel('\phi(\omega)');
(3)用lsim函数求出信号f(t)和f(t)cos(50t)通过系统H(jω)的响应y1(t)和
y2(t),并分析所得结果。
程序:
t=0:0.001:2.5;
f1=rectpuls(t-0.5,1);
f2=tripuls(t-1,2);
f=f1+f2.*cos(50*t);
ff=f.*cos(50*t)
w=linspace(0,5,400);
b=[1e4];
a=[1 26.131 341.42 2613.1 10000];
y1=lsim(b,a,f,t);%求f(t)通过系统的响应
subplot(2,1,1)
plot(t,y1,t,f);
xlabel('t');
ylabel('y1(t)/f');
set(gca,'xtick',[0 0.5 1 1.5 2 2.5]);
set(gca,'ytick',[-3 -2 -1 0 1 2 3 4 5 6])
y2=lsim(b,a,ff,t);%求f(t)*cos(50t)通过系统的响应
subplot(2,1,2)
plot(t,y2,t,ff);
xlabel('t');
ylabel('y2(t)/ff');
实验三
要求用窗函数法设计一个线性相位FIR低通滤波器,用理想低通滤波器作为逼近滤波器,
截止频率ωc=π/4 rad,用四种窗函数(矩形窗,汉宁窗(升余弦窗),汉明窗(改进的升余弦窗),布莱克曼窗)设计该滤波器,选择窗函数的长度N=15,33两种情况,画出四种窗函数设计的滤波器的单位脉冲响应和幅度特性
用窗函数设计一个线性相位FIR低通滤波器,并满足线性指标;通带边界频率ωp=0.5л,阻带边界频率ωs=0.66л,阻带衰减不小于40dB,通带波纹不大于3dB。
程序:
wp=0.5*pi;
ws=0.66*pi;
%Width of transition band
wdelta=ws-wp;
%Length of the filter
N=ceil(8*pi/wdelta)
if rem(N,2)==0
N=N+1;
end
%Length of the window
Nw=N;
wc=(wp+ws)/2;
%Compute impulse reponse of ideal filter
n=0:N-1;
alpha=(N-1)/2;
m=n-alpha+0.00001;
hd=sin(wc*m)./(pi*m);
%Compute time response of the Hanning Window
win=hanning(Nw);
%Compute acture impulse response of filter
h=hd.*win';
b=h;
[H,w]=freqz(b,1,512);
db=20*log10(abs(H));
subplot(2,2,1);stem(n,hd);title('理想单位脉冲响应hd(n)')
subplot(2,2,2);stem(n,win);title('汉宁窗h(n)')
subplot(2,2,3);stem(n,h);title('实际单位脉冲响应w(n)')
subplot(2,2,4);plot(w/pi,db);title('幅度响应(db)')
实验一
1、基本信号的表示及可视化
(1) 单位冲激信号 (t)
程序:
t=-1:0.001:1; %定义时间向量
for i=1:3; %采用循环语句观察i取不同值时的图形 dt=1/(i^4);
X=(1/dt)*((t>=(-1/2*dt))-(t>=(1/2*dt)));%计算函数值 subplot(1,3,i);%将图像分成三部分同时观察 stairs(t,X);
title('单位冲激信号δ(t)');
end
(2)单位阶跃信号
程序:
t=-0.5:0.001:1;%定义时间变量,间隔为0.001 S=stepfun(t,0);%定义单位阶跃信号
S1=stepfun(t,0.5);%定义单位阶跃延迟信号 figure(1);
plot(t,S);axis([-0.5 1 -0.2 1.2]);title('单位阶跃信号')%画出图形 figure(2);
plot(t,S1);axis([-0.5 1 -0.2 1.2]);title('单位阶跃延迟信号
')
(3)抽样信号 f=sin(t)./t;
程序:
t=-10:0.6:10; %向量t时间范围t=t1:p:t2,p为时间间隔 f=sin(t)./t;
plot(t,f,'o'); %显示该信号的时域波形 title('f(t)=Sa(t)(时间间隔为0.6s)'); %标题 xlabel('t') %横坐标标题
axis([-10,10,-0.4,1.1]) %横坐标和纵坐标范围
(4) 单位样值序列和单位阶跃序列
A.单位序列δ
(k)
B.单位阶跃序列ε(k)
程序:
n1=-10;n2=10;%输入序列的起始点 n=n1:n2; k=length(n); x1=zeros(1,k);
x1(1,-n1+1)=1;%产生单位样值序列 subplot(2,1,1);%绘图 stem(n,x1,'filled'); x2=ones(1,k); x2(1,1:-n1)=0; subplot(2,1,2);
stem(n,x2,'filled');
2、信号的频域分析
⎧E⎪⎪
已知周期方波信号f(t)=⎨
⎪0⎪⎩
|t|
τ2T02
τ2
,当T0=2τ, T0=4τ,T0=8τ时,画
出其幅度谱和相位谱,观察不同周期下,f(t)的频谱图有何区别。程序:
syms t k;
T=16;tao=1;A=1; %计算傅立叶系数
x0=int(A,t,-tao/2,tao/2)/T x=A*exp(-j*k*2*pi/T*t);
xk=int(x,t,-tao/2,tao/2)/T; xk=simple(xk) %化简表达式 %产生周期脉冲
t=[-2*T:0.01:2*T]; x1=rectpuls(t,tao);
subplot(3,1,1);plot(t,x1); hold on
x1=rectpuls(t-T,tao);plot(t,x1); hold on
x1=rectpuls(t+T,tao);plot(t,x1); hold off
title('周期矩形脉冲(T=16tao)') xlabel('t');
axis([-T-2 T+2 0 1.2]) %绘制频谱图
k=[-20:-1,eps,1:20]; %绘制幅度谱
xk=subs(xk,k,'k'); xk1=abs(xk);
subplot(3,1,2);stem(k,xk1,'filled'); line([-20,20],[0,0]);
title('周期矩形脉冲幅度谱(T=16tao)'); xlabel('k'); ylabel('Xk'); %绘制相位谱
s=angle(xk);
subplot(3,1,3);stem(k,s,'filled'); title('周期矩形脉冲相位谱(T=16tao)'); axis([-20 20 0 4]) xlabel('k'); ylabel('\phi')
T=2*tao
T=4*tao
T=8*tao
T=16*tao
实验二、
1. 1、一个连续时间LTI系统如下所示:
y''(t)+2y'(t)+y(t)=f'(t)+2f(t) 求(1)系统的单位冲激响应与阶跃响应; (2)当输入为e-2tε(t)时的零状态响应。
程序: b=[1 2]; a=[1 2 1]; subplot(1,3,1);
impulse(b,a); %冲激响应 subplot(1,3,2);
step(b,a) %阶跃响应
p=0.01; %定义取样时间间隔 t=0:p:5; % 定义时间范围 x=exp(-2*t); %定义输入信号 subplot(1,3,3);
lsim(b,a,x,t); %对系统的输出信号进行仿真
2. (1)取t=0:005:2.5,计算信号f(t)=f1(t)+f2(t)cos(50t)的值并画出波形。 程序:
t=0:0.005:2.5;%产生时间向量
f1=rectpuls(t-0.5,1);%产生中心在0.5的方波(t>0) subplot(4,1,1)
plot(t,f1);%画出波形 xlabel('t'); ylabel('f1(t)'); title('半个方波')
f2=tripuls(t-1,2);%产生中心在1的三角波 subplot(4,1,2)
plot(t,f2);%画出波形 xlabel('t'); ylabel('f2(t)'); title('三角波')
f22=f2.*cos(50*t); subplot(4,1,3)
plot(t,f22);title('f2.*cos(50*t)') xlabel('t');
ylabel('f22(t)');
f3=f1+f2.*cos(50*t); subplot(4,1,4)
plot(t,f3);title('f1+f2.*cos(50*t)') xlabel('t');
ylabel('f3(t)');
(2)一可实现的实际系统的H(j )为:
H(jω)=
10
4
3
42
2
3
4
(jω)+26.131(jω)+3.4142⨯10(jω)+2.6131⨯10(jω)+10
用freqs画出H(jω)的幅度和相位曲线。
程序:
w=linspace(0,5,200); b=[1e4];
a=[1 26.131 341.42 2613.11e4]; H=freqs(b,a,w);%求频率响应 subplot(2,1,1)
plot(w,abs(H));%画幅度频谱 set(gca,'xtick',[0 1 2 3 4 5]); set(gca,'ytick',[0 0.4 0.707 1]) xlabel('\omega');
ylabel('|H(j\omega)|'); subplot(2,1,2)
plot(w,angle(H));%画相位频谱 set(gca,'xtick',[0 1 2 3 4 5]); xlabel('\omega');
ylabel('\phi(\omega)');
(3)用lsim函数求出信号f(t)和f(t)cos(50t)通过系统H(jω)的响应y1(t)和
y2(t),并分析所得结果。
程序:
t=0:0.001:2.5;
f1=rectpuls(t-0.5,1);
f2=tripuls(t-1,2);
f=f1+f2.*cos(50*t);
ff=f.*cos(50*t)
w=linspace(0,5,400);
b=[1e4];
a=[1 26.131 341.42 2613.1 10000];
y1=lsim(b,a,f,t);%求f(t)通过系统的响应
subplot(2,1,1)
plot(t,y1,t,f);
xlabel('t');
ylabel('y1(t)/f');
set(gca,'xtick',[0 0.5 1 1.5 2 2.5]);
set(gca,'ytick',[-3 -2 -1 0 1 2 3 4 5 6])
y2=lsim(b,a,ff,t);%求f(t)*cos(50t)通过系统的响应
subplot(2,1,2)
plot(t,y2,t,ff);
xlabel('t');
ylabel('y2(t)/ff');
实验三
要求用窗函数法设计一个线性相位FIR低通滤波器,用理想低通滤波器作为逼近滤波器,
截止频率ωc=π/4 rad,用四种窗函数(矩形窗,汉宁窗(升余弦窗),汉明窗(改进的升余弦窗),布莱克曼窗)设计该滤波器,选择窗函数的长度N=15,33两种情况,画出四种窗函数设计的滤波器的单位脉冲响应和幅度特性
用窗函数设计一个线性相位FIR低通滤波器,并满足线性指标;通带边界频率ωp=0.5л,阻带边界频率ωs=0.66л,阻带衰减不小于40dB,通带波纹不大于3dB。
程序:
wp=0.5*pi;
ws=0.66*pi;
%Width of transition band
wdelta=ws-wp;
%Length of the filter
N=ceil(8*pi/wdelta)
if rem(N,2)==0
N=N+1;
end
%Length of the window
Nw=N;
wc=(wp+ws)/2;
%Compute impulse reponse of ideal filter
n=0:N-1;
alpha=(N-1)/2;
m=n-alpha+0.00001;
hd=sin(wc*m)./(pi*m);
%Compute time response of the Hanning Window
win=hanning(Nw);
%Compute acture impulse response of filter
h=hd.*win';
b=h;
[H,w]=freqz(b,1,512);
db=20*log10(abs(H));
subplot(2,2,1);stem(n,hd);title('理想单位脉冲响应hd(n)')
subplot(2,2,2);stem(n,win);title('汉宁窗h(n)')
subplot(2,2,3);stem(n,h);title('实际单位脉冲响应w(n)')
subplot(2,2,4);plot(w/pi,db);title('幅度响应(db)')