文档库 最新最全的文档下载
当前位置:文档库 › 信号与系统实验报告三1

信号与系统实验报告三1

实验三:线性系统的频域分析

一、实验目的:

1、掌握傅立叶级数(FT),学会分析连续时间周期信号的频谱及MATLAB实现;

2、掌握傅立叶变换F(jw),了解傅立叶变换的性质以及MATLAB实现。

3、掌握信号抽样与恢复的原理,能够用MATLAB实现一般信号的采样与恢复。

二、实验内容:

1、练习并验证实验指导书上实验十----十四的内容。

2、画出书中P121(121页)的方波图形进行傅立叶级数展开,对其波的分解与

合成进行验证,并注意吉伯斯现象。

3、利用符号法中傅立叶变换函数:fourier(f,t,w) ifourier(F,w,t)对下列

函数进行正反傅氏变换

(1)求单位阶跃函数的微积分、正反傅氏变换Heaviside(t)

(2)求单位冲击函数的微积分、正反傅氏变换Dirac(t)

(3)求门宽为2的门函数的傅氏变换

4、利用数值法用定义求门宽为2的门函数的傅氏变换,画出频谱图,并对此信

号进行移时与移频,观察频谱的变化。与3中的(3)进行比较

5、编制一个抑制载波双边带幅度调制的程序,调制信号为正弦信号,频率为

10Hz,载频为100Hz,要求画出调制信号,已调信号的时域图形和频域图形。已

知调制函数:modulate(x, fc, fs, ‘am’) fft(f,N)

6、分别对抽样信号Sa(t)进行临界采样、过采样和欠采样、并由采样信号恢

复原信号,计算二者的误差并比较三种情况下的采样误差。

三、实验数据处理与结果分析:

*注:在运行以下的所有的程序时,其存储同根目录下已经存在 u(t)的M文件函数,程序如下: function f=u(t) f=(t>0);

1.画出书中P121(121页)的方波图形进行傅立叶级数展开,对其波的分解与

合成进行验证,并注意吉伯斯现象.

编写程序如下:

波的分解部分:

t=0:0.01:2*pi;

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

x=zeros(10,max(size(t))); for k=1:2:9 x1=sin(k*t)/k; x(k, : )=x(k, : )+x1; y((k+1)/2, : )=x(k, : );

end

plot(t,y(1:9, : )); grid on;

合成部分:

t=-1:0.001:1; omega=2*pi;

y=square(2*pi*t,50); plot(t,y),grid on

xlabel('t'),ylabel('周期方波信号') axis([-1 1 -1.5 1.5]) n_max=[1,3,5,11,47]; N=length(n_max); for k=1:N

n=1:2:n_max(k); b=4./(pi*n);

x=0;

x=x+b*sin(omega*n'*t); figure; plot(t,y); hold on; plot(t,x); hold off;

xlabel('t'),ylabel('部分和波形') axis([-1 1 -1.5 1.5]),grid on

title(['最大谐波数

=',num2str(n_max(k))]) end

原周期信号

最大谐波数=1:

最大谐波数=3:

最大谐波数=11:

最大谐波数=47时:

从上面的一系列图中可以看出,随着fourier级数的项数增多,部分和与周期方波信号的误差越来越小,在N=47时,部分和的波形与周期方波信号的波形很接近,但是在信号的跳点附近,总是存在一个过冲,这就是Gibbs现象。

2、利用符号法中傅立叶变换函数:fourier(f,t,w) ifourier(F,w,t)对下列函数进行正反傅氏变换

(1)求单位阶跃函数的微积分、正反傅氏变换Heaviside(t)

(2)求单位冲击函数的微积分、正反傅氏变换Dirac(t)

(3)求门宽为2的门函数的傅氏变换

(1)syms t w

f=sym('Heaviside(t)')

b=diff(f,t)

c=int(f,t)

F=fourier(f,t,w)

f=ifourier(F,w,t)

f1=simple(f)

在command window中看到的结果:

f =Heaviside(t)

b =Dirac(t)

c =Heaviside(t)*t

F =pi*Dirac(w)-i/w

f =1/2+1/2*Heaviside(t)-1/2*Heaviside(-t)

f1 =Heaviside(t)

(2)syms t w s

f=sym('Dirac(t)') a=int(f,t)

F=fourier(f,t,w) f=ifourier(F,w,t) f1=simple(f) L=laplace(f,t,s) f=ilaplace(L,s,t)

在command window 中看到的结果: f =Dirac(t)

a =Heaviside(t) F =1

f =Dirac(t) f1 =Dirac(t) (3)syms f

f=sym('Heaviside(t+1)-Heaviside(t-1)') F=fourier(f) ezplot(abs(F));

在command window 中看到的结果:

f =Heaviside(t+1)-Heaviside(t-1) F =2/w*sin(w) 绘出其频谱图形:

3、利用数值法用定义求门宽为2的门函数的傅氏变换,画出频谱图,并对此信

号进行移时与移频,观察频谱的变化。与3中的(3)进行比较程序如下:

dt=0.02;

t=-2:dt:2;

f=stepfun(t,-1)-stepfun(t,1);

W1=2*pi*5

N=2000;

k=-N:N;

W=k*W1/N;

F=dt*f*exp(-j*t'*W);

F=abs(F);

P=angle(F);

subplot(311);

plot(W,F);

xlabel('w');ylabel('F(jw)');title('频谱图F');

%频移

f1=f.*exp(-j*10*t);

F1=dt*f1*exp(-j*t'*W);

F1=abs(F1);

P1=angle(F1);

subplot(312);

plot(W,F1);

xlabel('w');ylabel('F1(jw)');title('频谱图F1');

%时移

f2=stepfun(t,1)-stepfun(t,3);

F2=dt*f2*exp(-j*t'*W);

F2=abs(F2);

P2=angle(F2);

subplot(313);

plot(W,F2);

xlabel('w');ylabel('F2(jw)');title('频谱图F2');

得到的是幅频图,对比上一题中(3)用公式法做的幅频特性图,二者相同。F1和F2分别是验证Fourier变换的频移性质和时移性质。符合理论性质。

4、编制一个抑制载波双边带幅度调制的程序,调制信号为正弦信号,频率为10Hz,载频为100Hz,要求画出调制信号,已调信号的时域图形和频域图形。

编写程序如下:

Fm=10;

Fc=100;

Fs=1000;

N=1000;

k=0:N-1;

t=k/Fs;

x=abs(sin(2.0*pi*Fm*t)); xf=abs(fft(x,N));

y2=modulate(x,Fc,Fs,'am');

subplot(211);plot(t(1:200),y2(1:200));

xlabel('时间(s )');ylabel('幅度');title('调幅信号'); yf=abs(fft(y2,N)); subplot(212); stem(yf(1:200));

xlabel('频率(H

)');ylabel('幅值');

理论上,DSB 信号的调制时在包络过零变化时会有相位180°的跳变,从上面第一幅图可以看出这种跳变。频谱图也与DSB 条幅波信号频谱相同。

5、分别对抽样信号Sa (t )进行临界采样、过采样和欠采样、并由采样信号恢 复原信号,计算二者的误差并比较三种情况下的采样误差。 临界采样程序:

wm=1;

wc=wm; Ts=pi/wm; fs=1/Ts; ws=2*pi*fs; 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)))); t1=-15:0.5:15; f1=sinc(t1/pi); subplot(3,1,1); stem(t1,f1); subplot(3,1,2);

plot(t,fa)

e=abs(fa-sinc(t/pi));%误差 subplot(3,1,3); plot(t,e)

欠采样程序:

wm=1; wc=wm;

Ts=0.7*pi/wm; fs=1/Ts;

ws=2*pi*fs; 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)))); t1=-15:0.5:15; f1=sinc(t1/pi); subplot(3,1,1); stem(t1,f1); subplot(3,1,2);

plot(t,fa)

e=abs(fa-sinc(t/pi));%误差 subplot(3,1,3); plot(t,e)

过采样程序:

wm=1; wc=wm;

Ts=1.5*pi/wm;

fs=1/Ts;

ws=2*pi*fs;

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)))); t1=-15:0.5:15;

f1=sinc(t1/pi);

subplot(3,1,1);

stem(t1,f1);

subplot(3,1,2);

plot(t,fa)

e=abs(fa-sinc(t/pi));%误差

subplot(3,1,3);

plot(t,e)

四、实验总结:

本次实验的主要任务是连续时间系统的频域分析,通过前一阶段对MATLAB 实验内容的学习,这次实验我操作熟练了许多。我掌握了周期信号图形的傅里叶级数展开,会对其波进行分解和谐波的合成,在合成的过程中还观察到了Gibbs现象。对于不是周期性的信号,在本次实验中,对其进行傅里叶变换,得到F(jw),并对傅里叶变换一些性质进行验证,进一步深化了信号的时域和频域的关系。对于信号的抽样,我们由Nyquist抽样定理知道时域信号的抽样间隔,我还分别写出过采样、临界采样、欠采样三种情况的程序,并对其频谱进行了比较,验证了抽样定理的正确性。这次实验让我对课本上实验的内容有了进一步的巩固,更好地掌握了所学习的知识,以后仍需对这些软件多加练习。

相关文档
相关文档 最新文档