(1)t=-1:
0.01:
5;
x=(t>=0);
plot(t,x);
axis([-2,6,-0.1,1.1]);
(2)t=-1:
0.001:
1;
x=1+cos(10*t);
plot(t,x);
ylabel('x(t)');xlabel('t');
(3)
t=0:
0.001:
5;
x=t(t>=0);
plot(t,x);
axis([-2,6,-0.1,1.1]);
t=0:
0.1:
10;
m=(t>=0);
n=5*exp(-t)-5*exp(-3*t);
x=n.*m;
plot(t,x);
(4)
w0=2*pi;
w1=20*pi;
t=0:
0.001:
5;
x=cos(w0*t).*cos(w1*t);
plot(t,x);
ylabel('x(t)');xlabel('t');
(5)
t=-10:
0.1:
10;
m=sin(t);
x=m./t;
plot(t,x);
ylabel('x(t)');xlabel('t');
1.2离散时间序列的时域分析及信号的运算
1.使用Matlab产生下列序列、作图并与理论值进行比较:
(1)x(n)=2δ(n+n0)
(2)x(n)=(0.9)n[sin(0.25πn)+cos(0.25πn)]
n=-4:
4;
x=(0.9).^n;
y=[sin(0.25*pi*n)+cos(0.25*pi*n)];
m=x.*y;
stem(n,m);
(3)已知LTI离散系统,x(n)=[111],h(n)=[0123],求y(n)
x=[1,1,1];
h=[0,1,2,3];
y=conv(x,h);
subplot(3,1,1);stem([0:
length(x)-1],x);
ylabel('x');xlabel('Timeindexn');
subplot(3,1,2);stem([0:
length(h)-1],h);
ylabel('h');xlabel('Timeindexn');
subplot(3,1,3);stem([0:
length(y)-1],y);
ylabel('y=x*h');xlabel('Timeindexn');
(4)已知x(t)=e–2tu(t),y(t)=e-tu(t),求:
x(t)*y(t)
t=-10:
10;
u=(t>=0);
m=exp(-2*t);
n=exp(-1*t);
x=m.*u;
y=n.*u;
h=conv(x,y);
subplot(3,1,1);stem([0:
length(x)-1],x);
ylabel('x(n))');xlabel('Timeindexn');
subplot(3,1,2);stem([0:
length(y)-1],y);
ylabel('y(n)');xlabel('Timeindexn');
subplot(3,1,3);stem([0:
length(h)-1],h);
ylabel('h(n)=x(n)*y(n)');xlabel('Timeindexn');
(5)已知信号x(t)=(1+t/2)[u(t+2)-u(t-2)],求x(t+2),x(t-2),x(-t),x(2t),-x(t)
t=-10:
10;
m=(t>=2);
n=(t>=-2);
x=(1+(t./2)).*(n-m);
plot(t+2,x);
t=-10:
10;
m=(t>=2);
n=(t>=-2);
x=(1+(t./2)).*(n-m);
plot(t-2,x);
t=-10:
10;
m=(t>=2);
n=(t>=-2);
x=(1+(t./2)).*(n-m);
plot(-t,x);
t=-10:
10;
m=(t>=2);
n=(t>=-2);
x=(1+(t./2)).*(n-m);
plot(2*t,x);
t=-10:
10;
m=(t>=2);
n=(t>=-2);
x=(1+(t./2)).*(n-m);
plot(t,-x);
第2章信号的频域分析
2.1利用DFT分析连续信号频谱
1.用fourier函数,理论上求下列连续时间信号的频谱。
(1).三角脉冲信号x1(t)=
t=-2:
0.1:
2;
x=tripuls(t,2,0);
plot(t,x);
symstw
xt=sym('(t+1)*Heaviside(t+1)-2*t*Heaviside(t)+(t-1)*Heaviside(t-1)');
Fw=fourier(xt,t,w);
FFw=maple('convert',Fw,'piecewise');
FFP=abs(FFw);
ezplot(FFP,[-10*pi10*pi])
axis([-10*pi10*pi01])
(2).单边指数信号x2(t)=e
u(t)
N=256;
fs=6;
Ts=1/fs;
t=(0:
N-1)*Ts;
x=exp(-t);
y=fft(x);
mag=Ts*abs(y);
Ws=2*pi*fs;
w=(0:
length(y)-1)'*Ws/length(y);
X=1./sqrt(w.^2+1);
w1=w(1:
length(y)/2);
plot(w1,mag(1:
length(y)/2));
xlabel('频率(弧度/秒)');
ylabel('幅度谱');
z=['N='num2str(N)'fs='num2str(fs)'的结果'];
title('exp(-t)的幅度谱');
2.用DFT计算下列信号的频谱:
(1)
T0=16;N=32;T=T0/N;
t=0:
T:
T0;
x=cos((pi/8)*t+pi/4);
X=1/N*fft(x,N);
f=1/T/N*(-N/2:
(N/2-1));
stem(f,abs(fftshift(X)));
xlabel('Frequency(Hz)');ylabel('magnitude');
(2)
T0=2.5;N=20;T=T0/N;
t=0:
T:
T0;
x=cos(0.8*pi)*t+cos(0.9*pi*t);
X=1/N*fft(x,N);
f=1/T/N*(-N/2:
(N/2-1));
stem(f,abs(fftshift(X)));
xlabel('Frequency(Hz)');ylabel('magnitude');
4.产生一个淹没在噪声中的信号x(t),例如由50Hz和120Hz的正弦信号以及一个零均值的随机噪声叠加而成。
确定分析长度和取样速度,计算信号的频谱;计算其功率谱密度并作图,指出50Hz和120Hz的正弦成分以及噪声;详细列出检测信号的步骤和原理。
50赫兹的频率成分对应-50和50两个坐标点,120赫兹的频率成分对应-120和120两个坐
标点的频率
T0=1;N=241;T=T0/N;
t=0:
T:
T0;
x=sin(100*pi*t)+sin(240*pi*t)+randn(size(t));;
Xm=fft(x,N)/N;
f=(-(N-1)/2:
(N-1)/2)/N/T;
stem(f,abs(fftshift(Xm)));
xlabel('f(Hz)');ylabel('magnitude');
title('幅度谱');
2.2利用DFT分析离散序列频谱
1.DFT计算序列
的频谱;
N=51;
n=-(N-1)/2:
(N-1)/2;%若N为偶,n=-N/2:
(N/2-1);
x=(0.5).^n.*(n>=0);
X=fft(x,N);
omega=2*pi/N*n;
subplot(2,1,1);stem(n,x);ylabel('x[n]');xlabel('Timen');
subplot(2,1,2);stem(omega,real(fftshift(X)));ylabel('X[k]');
xlabel('Frequency(rad)');
2.利用DFT计算序列
的频谱;
确定DFT计算的各参数(抽样间隔,截短长度,频谱分辨率等);
答:
抽样间隔T=0.01s,截断长度Tp=3,N=300,取512
fsam=100;Tp=3;N=512;T=1/fsam;
t=0:
T:
Tp;
x=exp(-2*t);
X=T*fft(x,N);
subplot(2,1,1);plot(t,x);
xlabel('t');title('时域波形');
w=(-N/2:
N/2-1)*(2*pi/N)*fsam;
y=1./(j*w+2);
subplot(2,1,2);plot(w,abs(fftshift(X)),w,abs(y),'r-.');
title('幅度谱');xlabel('w');
legend('理论值','计算值',0);
axis([-10,10,0,1.4]);
3.有限长序列
,0≤n≤31,分别用N=32,N=60,N=120点DFT计算其频谱。
要求:
(1)确定DFT计算的各参数;
(2)进行理论值与计算值比较,分析各信号频谱分析的计算精度;
(3)详细列出利用DFT分析离散信号频谱的步骤;
(4)写出实验原理。
N=32;n=0:
N-1;
x=cos(3*pi/8*n);
X=1/N*fft(x,N);
omega=2*pi/N*(n-N/2);
subplot(2,1,1);stem(omega,abs(fftshift(X)));axis([-pi,pi,0,1]);
ylabel('Magnitude');xlabel('Frequency(rad)');
subplot(2,1,2);stem(omega,angle(fftshift(X)));axis([-pi,pi,-4,4]);
ylabel('Phase');xlabel('Frequency(rad)');
1.既然可直接由Fourier变换的定义计算连续信号的傅里叶变换,为何利用DFT分析连续信号的频谱?
答:
因为有限长序列的DFT分析的是有限长序列,特别适合数字系统,且存在着快速算法,所以仍用DFT分析连续信号的频谱。
2.若信号持续时间无限,且无解析表达式,如何利用DFT分析其频谱?
答:
先用窗函数截取,将信号变为有限长的信号,然后利用DFT分析其频谱。
3.在利用DFT分析连续信号频谱时,会出现哪些误差?
如何克服或改善这些误差?
答:
混叠现象:
减少时域抽样间隔可以克服这种误差。
频率泄漏:
选择适合的窗函数。
栅栏现象:
补零增加序列长度
4.在利用DFT分析连续信号频谱时,如何选择窗函数?
答:
加窗处理对频谱分析主要有两个方面的影响:
频谱中出现多余的高频分量;谱线变成了具有一定宽度的谱峰。
对于同一个窗函数,增加长度N虽然可以减少主瓣宽度,但是不减少旁瓣泄露。
为了在两者之间取得平衡,应根据实际信号特性采用合适的窗函数。
每种窗函数有其自身的特性,不同的窗函数适用于不同的应用。
要选择正确的窗函数,必须先估计信号的频谱成份。
如若信号中有许多远离被测频率的强干扰频率分量,应选择旁瓣衰减速度较快的窗函数;如果强干扰频率分量紧邻被测频率时,应选择旁瓣峰值较小的窗函数;如果被测信号含有两个或两个以上的频率成份,应选用主瓣很窄的窗函数;如果是单一频率信号,且要求幅度精度较高,则推荐用宽主瓣的窗函数。
对频带较宽或含有多个频率成份的信号则采用连续采样。
绝大多数应用采用汉宁(Hanning)窗即可得到满意的结果,因为它具有较好的频率分辨率和抑制频谱泄漏的能力。
5.讨论序列后补零对频谱分析结果的影响。
答:
通过补零增加序列长度时,同时也减少了频谱分析的谱线间隔,从而计算出的频谱将会显示更多的细节。
6.窗函数对频谱分辨率有何影响?
如何提高频谱分辨率?
答:
输入数据通过一个窗函数相当于原始数据的频谱与窗函数频谱的卷积。
窗函数的频谱由一个主瓣和几个旁瓣组成,主瓣以时域信号的每个频率成份为中心。
旁瓣在主瓣的两侧以一定的间隔衰减至零。
FFT产生离散的频谱,出现在FFT每个谱线的是在每个谱线上的连续卷积频谱。
如果原始信号的频谱成份与FFT中的谱线完全一致,这种情况下采样数据的长度为信号周期的整数倍,频谱中只有主瓣。
没有出现旁瓣的原因是旁瓣正处在窗函数主瓣两侧采样频率间隔处的零分量点。
如果时间序列的长度不是周期的整数倍,窗函数的连续频谱将偏离主瓣的中心,频率偏移量对应着信号频率和FFT频率分辨率的差异,这个偏移导致了频谱中出现旁瓣,所以,窗函数的旁瓣特性直接影响着各频谱分量向相邻频谱的泄漏宽度。
选取适当的窗函数能够提高频谱分辨率。
第3章系统分析与设计
3.1连续系统分析
2.研究具有以下零极点连续系统:
(1)1个极点s=-0.1,增益k=1;
a=[1,-0.1];
k=1;b=[1]*k;
sys=tf('s');
sys=tf(b,a);
p=roots(a);
z=roots(b);
subplot(1,2,1);
plot(real(p),imag(p),'*');holdon;
plot(real(z),imag(z),'o');
xlabel('t');title('零极点图');
grid%运行程序发现不稳定,分析冲激响应
%冲激响应
t=0:
0.01:
3;
h=impulse(sys,t);
subplot(1,2,2);
plot(h);
xlabel('t');
title('冲激响应h(t)');
Grid
(2)1个极点s=0,增益k=1;
a=[1,0];
k=1;b=[1]*k;
sys=tf('s');
sys=tf(b,a);
p=roots(a);
z=roots(b);
subplot(1,2,1);
plot(real(p),imag(p),'*');holdon;
plot(real(z),imag(z),'o');
xlabel('t');title('零极点图');
grid%运行程序发现不稳定,分析冲激响应
%冲激响应
t=0:
0.01:
3;
h=impulse(sys,t);
subplot(1,2,2);
plot(h);
xlabel('t');
title('冲激响应h(t)');
grid
(3)2个共轭极点s=±j5,增益k=1;
a=conv([15j],[1-5j]);
k=1;b=[1]*k;
sys=tf('s');
sys=tf(b,a);
p=roots(a);
z=roots(b);
subplot(1,2,1);
plot(real(p),imag(p),'*');holdon;
plot(real(z),imag(z),'o');
xlabel('t');title('零极点图');
grid%运行程序发现不稳定,分析冲激响应
%冲激响应
t=0:
0.01:
3;
h=impulse(sys,t);
subplot(1,2,2);
plot(h);
xlabel('t');
title('冲激响应h(t)');
grid
(4)2个共轭极点s=-0.1±j5,增益k=1;
a=conv([1-0.1+5j],[1-0.1-5j]);
k=1;b=[1]*k;
sys=tf('s');
sys=tf(b,a);
p=roots(a);
z=roots(b);
subplot(1,2,1);
plot(real(p),imag(p),'*');holdon;
plot(real(z),imag(z),'o');
xlabel('t');title('零极点图');
grid%运行程序发现不稳定,分析冲激响应
%冲激响应
t=0:
0.01:
3;
h=impulse(sys,t);
subplot(1,2,2);
plot(h);
xlabel('t');
title('冲激响应h(t)');
grid
(5)零点在s=0.5,极点在s=-0.1±j5,增益k=1;
a=conv([1-0.1+5j],[1-0.1-5j]);
k=1;b=[1-0.5]*k;
sys=tf('s');
sys=tf(b,a);
p=roots(a);
z=roots(b);
subplot(2,2,1);
plot(real(p),imag(p),'*');holdon;
plot(real(z),imag(z),'o');
xlabel('t');title('零极点图');
grid
%运行程序发现不稳定,分析冲激响应
%冲激响应
t=0:
0.01:
3;
h=impulse(sys,t);
subplot(2,2,2);
plot(h);
xlabel('t');
title('冲激响应h(t)');
grid
%幅频特性
w=0:
0.01:
5;h=freqs(b,a,w);
subplot(2,2,3);plot(w,abs(h));
xlabel('w');title('幅频特性');grid
(6)零点在s=0.5,极点在s=0.1±j5,增益k=1;
a=conv([10.1+5j],[10.1-5j]);
k=1;b=[1-0.5]*k;
sys=tf('s');
sys=tf(b,a);
p=roots(a);
z=roots(b);
subplot(2,2,1);
plot(real(p),imag(p),'*');holdon;
plot(real(z),imag(z),'o');
xlabel('t');title('零极点图');
grid
%运行程序发现不稳定,分析冲激响应
%冲激响应
t=0:
0.01:
3;
h=impulse(sys,t);
subplot(2,2,2);
plot(h);
xlabel('t');
title('冲激响应h(t)');
grid
%幅频特性
w=0:
0.01:
5;h=freqs(b,a,w);
subplot(2,2,3);plot(w,abs(h));
xlabel('w');title('幅频特性');grid
3.2离散系统分析
1.已知一个LTI系统的差分方程为:
(1)初始条件y(-1)=1,y(-2)=2,输入x(n)=u(n),计算系统的零输入响应;
(2)当下面三个信号分别通过系统,分别计算系统的响应:
(3)指出这是一个什么特性的系统。
N=50;
n=0:
N-1;
a=[1,-1.143,0.4128];
b=[0.0675,0.1349,0.0675];
x=zeros(N);
zi=filtic(b,a,[1,2]);
y=filter(b,a,x,zi);
x1=cos(pi/10.*n);
x2=cos(pi/5.*n);
x3=cos(pi/10*7.*n);
y1=filter(b,a,x1,zi);
y2=filter(b,a,x2,zi);
y3=filter(b,a,x3,zi);
figure
(1)
subplot(4,1,1);stem(n,y);
xlabel('n');ylabel('y(n)');title('零输入响应');
subplot(4,1,2);stem(n,y1);
xlabel('n');ylabel('y(n)');title('x(n)=cos(pi/10.*n)');
subplot(4,1,3);stem(n,y2);
xlabel('n');ylabel('y(n)');title('x(n)=cos(pi/5.*n)');
subplot(4,1,4);stem(n,y3);
xlabel('n');ylabel('y(n)');title('x(n)=cos(pi/10*7.*n)');
figure
(2)
[H,w]=freqz(b,a);
plot(w,abs(H));xlabel('Frequency(rad)');ylabel('Magnitude');
title('Magnituderesponse');
(1)确定DFT计算的各参数(抽样间隔,截短长度,频谱分辨率等);
答:
抽样间隔T=0.01s,截断长度Tp=3,N=300,取512
fsam=100;Tp=3;N=512;T=1/fsam;
t=0:
T:
Tp;
x=exp(-2*t);
X=T*fft(x,N);
subplot(2,1,1);plot(t,x);
xlabel('t');title('时域波形');
w=(-N/2:
N/2-1)*(2*pi/N)*fsam;
y=1./(j*w+2);
subplot(2,1,2);plot(w,abs(fftshift(X)),w,abs(y),'r-.');
title('幅度谱');xlabel('w');
legend('理论值','计算值',0);
axis([-10,10,0,1.4]);
第4章数字滤波器设计
4.1IIR数字滤波器设计
2.设计一个数字带通滤波器,使之满足以下指标:
(1)通带
(2)
=
=0.4
(3)
=0.8dB,
60dB
omegac1=0.25*pi;
omegac2=0.35*pi;
omegar1=0.2*pi;omegar2=0.4*pi;
Ap=0.8;Ar=60;
T=5*pi*10^(-7);
wc1=(2/T)*tan(omegac1/2);wc2=(2/T)*tan(omegac2/2);
wr1=(2/T)*tan(omegar1/2);wr2=(2/T)*tan(omegar2/2);
B=wc2-wc1;
t=wc1*wc2;
norm_wr1=(((wr1^2)-(t))/(B*wr1));
norm_wr2=(((wr2^2)-(t))/(B*wr2));
norm_wc1=(((wc1^2)-(t))/(B*wc1));
nor