实验1:系统响应及系统稳定性
实验程序清单:
close all;clear all
%======内容1:调用filter解差分方程,由系统对u(n)的响应判断稳定性======
A=[1,-0.9];B=[0.05,0.05]; %系统差分方程系数向量B和A
x1n=[1 1 1 1 1 1 1 1 zeros(1,50)]; %产生信号x1(n)=R8(n)
x2n=ones(1,128); %产生信号x2(n)=u(n)
hn=impz(B,A,58); %求系统单位脉冲响应h(n)
subplot(2,2,1);y='h(n)';stem(hn, 'y'); %调用函数tstem绘图
title('(a) 系统单位脉冲响应h(n)');
y1n=filter(B,A,x1n); %求系统对x1(n)的响应y1(n)
subplot(2,2,2);y='y1(n)';stem(y1n,'y');
title('(b) 系统对R8(n)的响应y1(n)');
y2n=filter(B,A,x2n); %求系统对x2(n)的响应y2(n)
subplot(2,2,4);y='y2(n)';stem(y2n,'y');
title('(c) 系统对u(n)的响应y2(n)');
%===内容2:调用conv函数计算卷积============================
x1n=[1 1 1 1 1 1 1 1 ]; %产生信号x1(n)=R8(n)
h1n=[ones(1,10) zeros(1,10)];
h2n=[1 2.5 2.5 1 zeros(1,10)];
y21n=conv(h1n,x1n);
y22n=conv(h2n,x1n);
figure(2)
subplot(2,2,1);y='h1(n)';stem(h1n,'y'); %调用函数tstem绘图
title('(d) 系统单位脉冲响应h1(n)');
subplot(2,2,2);y='y21(n)'; stem(y21n,'y');
title('(e) h1(n)与R8(n)的卷积y21(n)');
subplot(2,2,3);y='h2(n)'; stem(h2n, 'y'); %调用函数tstem绘图
title('(f) 系统单位脉冲响应h2(n)');
subplot(2,2,4);y='y22(n)';stem(y22n,'y');
title('(g) h2(n)与R8(n)的卷积y22(n)');
%=========内容3:谐振器分析========================
un=ones(1,256); %产生信号u(n)
n=0:255;
xsin=sin(0.014*n)+sin(0.4*n); %产生正弦信号
A=[1,-1.8237,0.9801];B=[1/100.49,0,-1/100.49]; %系统差分方程系数向量B和A y31n=filter(B,A,un); %谐振器对u(n)的响应y31(n)
y32n=filter(B,A,xsin); %谐振器对u(n)的响应y31(n)
figure(3)
subplot(2,1,1);y='y31(n)';stem(y31n,'y');
title('(h) 谐振器对u(n)的响应y31(n)');
subplot(2,1,2);y='y32(n)';stem(y32n,'y');
title('(i) 谐振器对正弦信号的响应y32(n)');
实验程序运行结果及分析讨论
程序运行结果如图10.1.1所示。
实验内容(2)系统的单位冲响应、系统对和的响应序列分别如图(a)、(b)和(c)所示;实验内容(3)系统h1(n)和h2(n)对的输出响应分别如图(e)和(g)所示;
实验内容(4)系统对和的响应序列分别如图(h)和(i)所示。由图(h)可见,系统对的响应逐渐衰减到零,所以系统稳定。由图(i)可见,系统对的稳态响应近似为正弦序列,这一结论验证了该系统的谐振频率是0.4 rad。
简答思考题
(1) 如果输入信号为无限长序列,系统的单位脉冲响应是有限长序列,可否用线性卷积法求系统的响应。①对输入信号序列分段;②求单位脉冲响应h(n)与各段的卷积;③将各段卷积结果相加。具体实现方法有第三章介绍的重叠相加法和重叠保留法。
(2)如果信号经过低通滤波器,把信号的高频分量滤掉,时域信号的剧烈变化将被平滑,由实验内容(1)结果图10.1.1(a)、(b)和(c)可见,经过系统低通滤波使输入信号、和的阶跃变化变得缓慢上升与下降。
实验二时域采样与频域采样(注:本实验程序来自互联网,前半部分运行有误,请同学们自行检察,运行截图是正确的,可作参考)
实验程序清单:
1 时域采样理论的验证程序清单
% 时域采样理论验证程序exp2a.m
Tp=64/1000; %观察时间Tp=64微秒
%产生M长采样序列x(n)
% Fs=1000;T=1/Fs;
Fs=1000;T=1/Fs;
M=Tp*Fs;n=0:M-1;
A=444.128;alph=pi*50*2^0.5;omega=pi*50*2^0.5;
xnt=A*exp(-alph*n*T).*sin(omega*n*T);
Xk=T*fft(xnt,M); %M点FFT[xnt)]
yn='xa(nT)';subplot(3,2,1);
stem(xnt,yn); %调用自编绘图函数stem绘制序列图
box on;title('(a) Fs=1000Hz');
k=0:M-1;fk=k/Tp;
subplot(3,2,2);plot(fk,abs(Xk));title('(a) T*FT[xa(nT)],Fs=1000Hz');
xlabel('f(Hz)');ylabel('幅度');axis([0,Fs,0,1.2*max(abs(Xk))])
%=================================================
% Fs=300Hz和 Fs=200Hz的程序与上面Fs=1000Hz完全相同。
2 频域采样理论的验证程序清单
%频域采样理论验证程序exp2b.m
M=27;N=32;n=0:M;
%产生M长三角波序列x(n)
xa=0:floor(M/2); xb= ceil(M/2)-1:-1:0; xn=[xa,xb];
Xk=fft(xn,1024); %1024点FFT[x(n)], 用于近似序列x(n)的TF
X32k=fft(xn,32) ;%32点FFT[x(n)]
x32n=ifft(X32k); %32点IFFT[X32(k)]得到x32(n)
X16k=X32k(1:2:N); %隔点抽取X32k得到X16(K)
x16n=ifft(X16k,N/2); %16点IFFT[X16(k)]得到x16(n)
subplot(3,2,2);stem(n,xn,'.');box on
title('(b) 三角波序列x(n)');xlabel('n');ylabel('x(n)');axis([0,32,0,20])
k=0:1023;wk=2*k/1024; %
subplot(3,2,1);plot(wk,abs(Xk));title('(a)FT[x(n)]');
xlabel('\omega/\pi');ylabel('|X(e^j^\omega)|');axis([0,1,0,200])
k=0:N/2-1;
subplot(3,2,3);stem(k,abs(X16k),'.');box on
title('(c) 16点频域采样');xlabel('k');ylabel('|X_1_6(k)|');axis([0,8,0,200])
n1=0:N/2-1;
subplot(3,2,4);stem(n1,x16n,'.');box on
title('(d) 16点IDFT[X_1_6(k)]');xlabel('n');ylabel('x_1_6(n)');axis([0,32,0,20])
k=0:N-1;
subplot(3,2,5);stem(k,abs(X32k),'.');box on
title('(e) 32点频域采样');xlabel('k');ylabel('|X_3_2(k)|');axis([0,16,0,200])
n1=0:N-1;
subplot(3,2,6);stem(n1,x32n,'.');box on
title('(f) 32点IDFT[X_3_2(k)]');xlabel('n');ylabel('x_3_2(n)');axis([0,32,0,20])
实验程序运行结果
1 时域采样理论的验证程序运行结果exp2a.m如图10.3.2所示。由图可见,采样序列的频谱的确是以采样频率为周期对模拟信号频谱的周期延拓。当采样频率为1000Hz时频谱混叠很小;当采样频率为300Hz时,在折叠频率150Hz附近频谱混叠很严重;当采样频率为200Hz 时,在折叠频率110Hz附近频谱混叠更很严重。
2 时域采样理论的验证程序exp2b.m运行结果如图10.3.3所示。
该图验证了频域采样理论和频域采样定理。对信号x(n)的频谱函数X(e jω)在[0,2π]上等间隔采样N=16 X k]得到的序列正是原序列x(n)以16为周期进行周期延拓后的主值区序列:
时, N点IDFT[()
N
()IDFT[()][()]()N N N N i x n X k x n iN R n ∞
=-∞==+∑
由于N
简答思考题
先对原序列x(n)以N 为周期进行周期延拓后取主值区序列,
()[()]()N N i x n x n iN R n ∞
=-∞=+∑
再计算N 点DFT 则得到N 点频域采样:
2()DFT[()] =()
, 0,1,2,,1j N N N k N X k x n X e k N ωπω===-
实验三:用FFT 对信号作频谱分析
10.3.2 实验程序清单
%第10章实验3程序exp3.m
% 用FFT 对信号作频谱分析
clear all;close all %实验内容(1)===================================================
x1n=[ones(1,4)]; %产生序列向量x1(n)=R4(n)
M=8;xa=1:(M/2); xb=(M/2):-1:1; x2n=[xa,xb]; %产生长度为8的三角波序列x2(n) x3n=[xb,xa];
X1k8=fft(x1n,8); %计算x1n 的8点DFT
X1k16=fft(x1n,16); %计算x1n 的16点DFT
X2k8=fft(x2n,8); %计算x1n 的8点DFT
X2k16=fft(x2n,16); %计算x1n 的16点DFT
X3k8=fft(x3n,8); %计算x1n 的8点DFT
X3k16=fft(x3n,16); %计算x1n 的16点DFT
%以下绘制幅频特性曲线
subplot(2,2,1);stem(X1k8); %绘制8点DFT 的幅频特性图
title('(1a) 8点DFT[x_1(n)]');xlabel('ω/π');ylabel('幅度');
axis([0,2,0,1.2*max(abs(X1k8))])
subplot(2,2,3); stem(X1k16); %绘制16点DFT 的幅频特性图
title('(1b)16点DFT[x_1(n)]');xlabel('ω/π');ylabel('幅度');
axis([0,2,0,1.2*max(abs(X1k16))])
figure(2)
subplot(2,2,1);stem(X2k8); %绘制8点DFT 的幅频特性图
title('(2a) 8点DFT[x_2(n)]');xlabel('ω/π');ylabel('幅度');
axis([0,2,0,1.2*max(abs(X2k8))])
subplot(2,2,2);stem(X2k16); %绘制16点DFT的幅频特性图
title('(2b)16点DFT[x_2(n)]');xlabel('ω/π');ylabel('幅度');
axis([0,2,0,1.2*max(abs(X2k16))])
subplot(2,2,3);stem(X3k8); %绘制8点DFT的幅频特性图
title('(3a) 8点DFT[x_3(n)]');xlabel('ω/π');ylabel('幅度');
axis([0,2,0,1.2*max(abs(X3k8))])
subplot(2,2,4);stem(X3k16); %绘制16点DFT的幅频特性图
title('(3b)16点DFT[x_3(n)]');xlabel('ω/π');ylabel('幅度');
axis([0,2,0,1.2*max(abs(X3k16))])
%实验内容(2) 周期序列谱分析==================================
N=8;n=0:N-1; %FFT的变换区间N=8
x4n=cos(pi*n/4);
x5n=cos(pi*n/4)+cos(pi*n/8);
X4k8=fft(x4n); %计算x4n的8点DFT
X5k8=fft(x5n); %计算x5n的8点DFT
N=16;n=0:N-1; %FFT的变换区间N=16
x4n=cos(pi*n/4);
x5n=cos(pi*n/4)+cos(pi*n/8);
X4k16=fft(x4n); %计算x4n的16点DFT
X5k16=fft(x5n); %计算x5n的16点DFT
figure(3)
subplot(2,2,1);stem(X4k8); %绘制8点DFT的幅频特性图
title('(4a) 8点DFT[x_4(n)]');xlabel('ω/π');ylabel('幅度');
axis([0,2,0,1.2*max(abs(X4k8))])
subplot(2,2,3);stem(X4k16); %绘制16点DFT的幅频特性图
title('(4b)16点DFT[x_4(n)]');xlabel('ω/π');ylabel('幅度');
axis([0,2,0,1.2*max(abs(X4k16))])
subplot(2,2,2);stem(X5k8); %绘制8点DFT的幅频特性图
title('(5a) 8点DFT[x_5(n)]');xlabel('ω/π');ylabel('幅度');
axis([0,2,0,1.2*max(abs(X5k8))])
subplot(2,2,4);stem(X5k16); %绘制16点DFT的幅频特性图
title('(5b)16点DFT[x_5(n)]');xlabel('ω/π');ylabel('幅度');
axis([0,2,0,1.2*max(abs(X5k16))])
%实验内容(3) 模拟周期信号谱分析===============================
figure(4)
Fs=64;T=1/Fs;
N=16;n=0:N-1; %FFT的变换区间N=16
x6nT=cos(8*pi*n*T)+cos(16*pi*n*T)+cos(20*pi*n*T); %对x6(t)16点采样X6k16=fft(x6nT); %计算x6nT的16点DFT
X6k16=fftshift(X6k16); %将零频率移到频谱中心
Tp=N*T;F=1/Tp; %频率分辨率F