资源描述
基于MATLAB的连续时间系统的频域分析
1.绪论
MATLAB是国际上公认的优秀科技应用软件,它的基本功能是数值计算、符号运算、图形控制,它的出现给“信号与系统”课程的计算机辅助教学带来了福音,使利用计算机辅助学生完成“信号与系统”课程的数值计算、信号与系统分析的可视化建模及仿真调试成为可能。该软件由公司于是1984 年推出,经过十几年的发展与完善,目前已成为科技界最流行的应用软件。它的主要特点是:
(1)高效的数值计算及符号计算功能,能使用户从繁杂的数学运算分析中解脱出来。
(2)完备的图形处理功能,实现计算结果和编程的可视化。
(3)友好的用户界面及接近数学表达式的自然化语言,使学者易于学习和掌握。
(4)功能丰富的应用工具箱(如信号处理工具箱),为用户提供了大量方便实用的处理工具。
运用MATLAB 对信号与线性系统进行分析与实现的具体方法和过程,其目的在于:
(1) 让学生在学习“信号与系统”课程的同时,掌握MATLAB 的应用,对MATLAB
语言在低年级学生中的推广应用起到促进作用。
(2) 学会应用MATLAB 的数值计算功能,将学生从繁琐的数学运算中解脱出来,从而将便多的时间留于对信号与系统的基本分析方法和应用的理解与思考。
(3) 让学生将课程中的重点、难点及部分课后练习用MATLAB 进行形象、直观的可视化计算机模拟与仿真实现,从而加深对信号与系统基本原理、方法及应用的理解,以培养学生主动获取知识和独立解决问题的能力,为学习后继专业课打下坚实的基础。本文将以MATLAB为工具,对信号与系统在联系时间系统的频域进行分析。
2.对课题内容的分析
2.1连续时间信号概述
在某一时间区间内,除若干个不连续点外,如果任意识可都可给出确定的函数值,则称该信号为连续时间信号,简称为连续信号。从严格意义上讲,MATLAB数值计算的方法并不能处理连续时间信号,然而,可利用连续信号在等时间间隔的取样值来近似表示连续信号,即当取样时间间隔足够小时,这些离散样值能够被MATLAB处理,并且能较好地近似表示连续信号。
2.2采样定理
对于一个有限频宽信号进行理想采样,当采样频率时,采样值唯一确定;当此采样信号通过截止频率的理想低通滤波器后,原始信号可以完全重建。通常把最低允许的采样频率2称为奈奎斯特频率,把最大允许的采样间隔称为奈奎斯特间隔。
2.3总体思路
利用MATLAB强大的图形处理功能、符号运算功能以及数值计算功能,实现连续时间系统频域分析。其中分析系统的频率特性时用到了y=abs( ) 、y=angle( ) 、h=freqs(b,a,w ) 等函数。实现连续时间信号的采样及重构时把采样分为了过采样、等采样、欠采样三种情况,分别做它们的原信号、采样信号、重构信号的时域波形图,其中用到Sa(t)=sinc(t/pi)、fa=f*Ts*wc/pi*sinc((wc/pi)*(ones(length(nTs),1)*t-nTs'*ones(1,length(t)) 3. 设计内容
3.1利用MATLAB分析系统的频率特性
3.1.1低通滤波器的频率特性
低通滤波器模型:
取k=70,b=10,c=90可得图3.1.1
图3.1.1低通滤波器时域冲激响应波形、频域内幅频特性、相频特性。
对于低通滤波器,可以从图3.1.1看出,当w<10时 1.2>H(s)>0.8,而其相频特性为随着w的增加而减小并逐渐趋近于-。
3.1.2高通滤波器的频率特性
高通滤波器模型:
以下解法只供参考,方法不唯一:若令
1)当,,可以得出:
2)考虑一种情况:当,
由以上两条件可得=-90-157j, =-90+157j,k=1,并由此可通过matlab得图3.1.2
图3.1.2高通滤波器时域冲激响应波形、频域内幅频特性、相频特性。
对于高通滤波器,可以从图3.1.2看出,当w>50时 1.2>H(s)>0.8,而其相频特性为随着w的增加而减小并逐渐趋近于0。
3.1.3全通通滤波器的频率特性
全通滤波器模型:
可以取=4,通过matlab可得图3.1.3
图3.1.3全通通滤波器时域冲激响应波形、频域内幅频特性、相频特性。
当w 从0增大时,H( jw)的幅频特性是一条数值为1的水平线,即对输入信号的各频率分量都进行等值传输;而j(w)从0开始下降,最终趋于- 。这种网络称为全通网络,在传输系统中常用来进行相位校正,如作相位均衡器或移相器。
3.1.4带通滤波器的频率特性
带通滤波器模型:
可取=25,b=40, =18, =306由matlab可得图3.1.4
图3.1.4带通滤波器时域冲激响应波形、频域内幅频特性、相频特性。
对于带通滤波器,可以从图3.1.4看出,当40>w>10时 1.2>H(s)>0.8,而其相频特性为随着w的增加先增加而后减小并逐渐趋近于-/2。
3.2用MATLAB实现连续时间信号的采样及重构
我们选取信号f (t ) = Sa(t )作为被采样的信号,是因为:第一, f (t)是一个带限信号,其= 1 ;第二,它是一个典型的信号,是分析其他信号的基础,因此完全有必要对它信号特征详加了解。此外,应该指出的是,实际信号中,绝大多数都不是严格意义上的带限信号,这时根据实际精度要求来确定信号的带宽 。
对于一个有限频宽信号进行理想采样,当采样频率时,采样值唯一确定;当此采样信号通过截止频率的理想低通滤波器后,原始信号可以完全重建。通常把最低允许的采样频率2称为奈奎斯特频率,把最大允许的采样间隔称为奈奎斯特间隔。
3.2.1过采样
过采样是使用远大于奈奎斯特采样频率的频率对输入信号进行采样。
对于f(t)=Sa(t),它的带宽=1,为了由f (t) 的采样信号不失真的重构f(t),由时域采样定理知采样间隔,取,即为过采样。利用MATLAB 中的抽样函数Sinc(t)=sin()/来表示Sa(t),有Sa(t)=Sinc(t/)。
图3.2.1过采样原信号、采样信号、重构信号的时域波形图
3.2.2等采样
由采样定理知f(t)=Sa(t)的采样间隔,取=,即为等采样
图3.2.2等采样原信号、采样信号、重构信号的时域波形图
3.2.3欠采样
欠采样的信号频率(大于fs/2),由采样定理知f(t)=Sa(t)的采样间隔,取=1.5,即为欠采样。
图3.2.3欠采样原信号、采样信号、重构信号的时域波形图
4.心得体会
MATLAB对自己以后的工作和学习很有帮助。在刚开始设计时,有点茫然,连设计的题意都不太明白,在逐步的深入学习、了解之后慢慢有所了解。开始写程序时也是无从下手,是通过查阅一些图书资料和网上资料后开始进入正题。
在这次课程设计中,我通过多方面地搜集资料,成功地用MATLAB编写出低通、高通、全通、帯通滤波器时域冲激响应波形、频域内幅频特性、相频特性的仿真实现,及过采样、等采样、欠采样的原信号、采样信号、重构信号的时域波形图。
通过这次的实践,我明白了要将理论与实际相结合的道理,尽管这个过程会有一些辛苦,但通过努力实现后,就能大大深化我对知识的理解程度,增长实践经验。这表现在我对连续时间系统的频域的理解的加深、MATLAB的功能特性都有了进一步的认识。总之,我在本次课程设计中学到了很多关于MATLAB的知识,获益良多。
5.参考文献
[1] 孙祥,徐流美,吴清.MATLAB 7.0基础教程.北京:清华大学出版社,2006
[2] 刘泉,姜雪梅.信号与系统.北京:高等教育出版社,2006
[3] 唐向宏,岳恒立,邓雪峰.MATLAB及在电子信息类课程中的应用.北京:电子工业出版社,2006
[4] 赵静,张瑾,高新科.基于MATLAB的通信系统仿真.北京:北京航空航天大学出版社.2007
[5] 梁虹.信号与线性系统分析 基于MATLAB的方法与实现.北京:电子工业出版社,2006.5
附录
低通
b=90;
a=[1 10 90];
sys=tf(b,a);
t=0:0.1:5;
h=impulse(sys,t);
subplot(221);
plot(h);
grid
xlabel('t');
ylabel('h(t)');
title('h(t)');
[h,w]=freqs(b,a,100);
h1=abs(h);
h2=angle(h);
subplot(222);
plot(w,h1);
grid
xlabel('角频率(w)');
ylabel('幅度');
title('H(jw)的幅频特性');
subplot(223);
plot(w,h2*180/pi);
grid
xlabel('角频率(w)');
ylabel('相位(度)');
title('H(jw)的相频特性');
高通
k=1;
b=[1 0 0]*k;
a=conv([1 90+157j],[1 90-157j]);
sys=tf(b,a);
t=0:0.1:10;
h=impulse(sys,t);
subplot(221);
plot(h);
grid
xlabel('t');
ylabel('h(t)');
title('h(t)');
[h,w]=freqs(b,a,100);
h1=abs(h);
h2=angle(h);
subplot(222);
plot(w,h1);
grid
xlabel('角频率(w)');
ylabel('幅度');
title('H(jw)的幅频特性');
subplot(223);
plot(w,h2*180/pi);
grid
xlabel('角频率(w)');
ylabel('相位(度)');
title('H(jw)的相频特性');
全通
b=[-1 4];
a=[1 4];
sys=tf(b,a);
t=0:0.1:10;
h=impulse(sys,t);
subplot(221);
plot(h);
grid
xlabel('t');
ylabel('h(t)');
title('h(t)');
[h,w]=freqs(b,a,100);
h1=abs(h);
h2=angle(h);
subplot(222);
plot(w,h1);
grid
axis([0,100,0,1.5])
xlabel('角频率(w)');
ylabel('幅度');
title('H(jw)的幅频特性');
subplot(223);
plot(w,h2*180/pi);
grid
xlabel('角频率(w)');
ylabel('相位(度)');
title('H(jw)的相频特性');
帯通
k=1;
b=[0 25 40]*k;
a=conv([1 9+15j],[1 9-15j]);
sys=tf(b,a);
t=0:0.1:10;
h=impulse(sys,t);
subplot(221);
plot(h);
grid
xlabel('t');
ylabel('h(t)');
title('h(t)');
[h,w]=freqs(b,a,100);
h1=abs(h);
h2=angle(h);
subplot(222);
plot(w,h1);
grid
xlabel('角频率(w)');
ylabel('幅度');
title('H(jw)的幅频特性');
subplot(223);
plot(w,h2*180/pi);
grid
xlabel('角频率(w)');
ylabel('相位(度)');
title('H(jw)的相频特性');
过采样
t=-15:0.01:15;
f=sin(t)./t;
subplot(221);
plot(t,f);
xlabel('t');
ylabel('f(t)');
title('f(t)=sin(t)/t的过采样原信号');
grid
wm=1;
wc=wm;
Ts=0.02*pi./wm;
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))));
t1=-15:0.5:15;
f1=sinc(t1/pi);
subplot(222);
stem(t1,f1);
xlabel('kTs');
ylabel('f(kTs)');
title('sa(t)=sinc(t/pi)的过采样采样信号');
subplot(223);
plot(t,fa)
xlabel('t');
ylabel('fa(t)');
title('由sa(t)=sinc(t/pi)的过采样信号重构sa(t)');
grid;
等采样
t=-15:0.01:15;
f=sin(t)./t;
subplot(221);
plot(t,f);
xlabel('t');
ylabel('f(t)');
title('f(t)=sin(t)/t的等采样信号');
grid
wm=1;
wc=wm;
Ts=0.2*pi./wm;
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))));
t1=-15:0.5:15;
f1=sinc(t1/pi);
subplot(222);
stem(t1,f1);
xlabel('kTs');
ylabel('f(kTs)');
title('sa(t)=sinc(t/pi)的等采样信号');
subplot(223);
plot(t,fa)
xlabel('t');
ylabel('fa(t)');
title('由sa(t)=sinc(t/pi)的等采样信号重构sa(t)');
grid;
欠采样
t=-15:0.01:15;
f=sin(t)./t;
subplot(221);
plot(t,f);
xlabel('t');
ylabel('f(t)');
title('f(t)=sin(t)/t的欠采样原信号');
grid
wm=1;
wc=wm;
Ts=1.5*pi./wm;
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))));
t1=-15:0.5:15;
f1=sinc(t1/pi);
subplot(222);
stem(t1,f1);
xlabel('kTs');
ylabel('f(kTs)');
title('sa(t)=sinc(t/pi)的欠采样采样信号');
subplot(223);
plot(t,fa)
xlabel('t');
ylabel('fa(t)');
title('由sa(t)=sinc(t/pi)的欠采样信号重构sa(t)');
grid;
20
展开阅读全文