Matlab-信号与系统实验 本文关键词:信号,实验,系统,Matlab
Matlab-信号与系统实验 本文简介:实验一:利用Matlab来实现函数的绘制,主要思想就是我们给定一个定义域,然后再通过定义一个对应法则,使之生成一个对应的值域,两个集合存储于向量中,然后再一一对应,如果将两个向量看作两个集合,那么就可以将其视作两个集合满射。Exp:Thereare{-5,2,3,13,10}我们定义对应法则f(x)
Matlab-信号与系统实验 本文内容:
实验一:
利用Matlab来实现函数的绘制,主要思想就是我们给定一个定义域,然后再通过定义一个对应法则,使之生成一个对应的值域,两个集合存储于向量中,然后再一一对应,如果将两个向量看作两个集合,那么就可以将其视作两个集合满射。
Exp:
There
are
{
-5,
2,
3,
13,
10
}
我们定义对应法则f(x)
=
2
x
–
1
We
get
{
-11,3,
5,25,
19
}
这就是值域了
然后画图过程就是建立平面坐标系,x轴用来标识定义域的值,y轴用来标识值域的值,绘制出来的图形就可以算是对f(x)
的仿真了。
该实验要用到的函数:
1.
sin(
x
)
这里对x变量要理解,x可以支持符号变量,即我们平时说的x,真正的未知数,然而由于这一实验我们运用的是如何通过Matlab中的向量(集合)来仿真信号,所以会用到一有限的定义域(向量),我们要做的就是将这个有限的集合当作变量传递给sin(
x
),其内部是这样计算的。
K
=
{
a,b,c,d,…,z
}
//
K
是我们所给定的有限的定义域。
sin(
K
)
的返回值为
T
=
{
sin(a),sin(b),sin(c),sin(d),…,sin(z)
}
很显然,K与T的长度也会是相同的。
在整个Matlab
编程时一定要有向量(向量也算是一维的矩阵,Matlab可是叫矩阵实验室呀)的思想。在仿真的过程中一定要考虑到这个函数是不是支持向量以点列独立的身份代入运算,如果是的话,那么是最好进行仿真的,给定一个有限的定义域(例如
K
=
-10
:
0.01
:
10,
产生向量
K,其值从-10
到
10,每个相邻的数差值为0.01,K的长度为
2001
)括号内的K的长度达到了2001,在很小的区间内打印2001个点,就一定能够模拟出原函数的连续图形了。
我们来看下面这个函数
function
y
=
jump(
x
)
%阶跃函数
if(
x
0
)
y
=
1;
else
y
=
0.5;
end
end
咋看起来是没有什么问题的,学过c语言的我们知道,这个阶跃函数应该是对的。当问题就是,这个函数不支持输入的向量或者矩阵以点列的形式来处理,为什么,我们来一条条语句进行分析。
首先是if(
x
0
的结果是这样来判定的,首先
x
>
0
会返回一个boolean值的与x等长的向量,这个向量中的每一个元素对应与x中每一个元素进行一次
“>
0”
的判断,如果返回向量中有一个大于零的元素,那么x
0为假,所以K
代入后就是既不大于零又不小于零,所以结果就是返回的就是一个
1
1
的矩阵,y
=
0.5;所以结果就只有一个点,这和我们的期望相去甚远啊。那么怎么改呢,有一种直接解决麻烦的改法:
function
y
=
jump(
x
)
%阶跃函数
len
=
length(
x
);
for(
i
=
1
:
len
)
if(
x(i)
>
0
)
%直接对每一个元素进行判断
y(i)
=
1;
%赋值同样是对应赋值,不要动不动就y=
1了,这时赋值矩阵了
elseif(
x(i)
0;
%大于操作符是直接对每一个元素进行判定,返回等长的向量
end
这样写的话,就是利用了
>
操作符的性质,这在前面已经进行了说明。这个写法注意函数的返回值是boolean类型,也即逻辑值,也就是说,如果要使得x
=
0时,y
=
0.5的话,还要将先其转化为double类型。
function
y
=
jump(
x
)
%阶跃函数
y
=
x
>
0;
y
=
double(
y
);
fix
=
(
x
==
0
)
.*
0.5;
%乘号‘*’默认是进行矩阵相乘的,直接用的话肯定不行(不满足条件)
y
=
y
+
fix;
%所以这里改成了数乘符,该运算符能够对向量中的每个元素进行操作
end
综上,最后这样写是最好不过的了
function
y
=
jump(
x
)
%阶跃函数
y
=
(
x
>
0
)
+
(
x
==
0
)
.*
0.5;
%
y
=
(
x
>=
0
)
-
(
x==
0
)
.*
0.5;
end
一时兴起,找来了源码,有谁能看懂吗?
function
Y
=
heaviside(X)
%HEAVISIDE
Step
function.
%
HEAVISIDE(X)
is
0
for
X
0,and
.5
for
X
==
0.
%
HEAVISIDE(X)
is
not
a
function
in
the
strict
sense.
%
See
also
DIRAC.
%
Copyright
1993-2008
The
MathWorks,Inc.
%
$Revision:
1.1.6.1
$
$Date:
2009/03/09
20:41:30
$
Y
=
zeros(size(X));
Y(X
>
0)
=
1;
eng
=
symengine;
if
strcmp(eng.kind,maple
)
Y(X
==
0)
=
nan;
else
Y(X
==
0)
=
.5;
end
….一个sin(x)就写了这么长,这叫我情何以堪
2.plot(
)
这个函数的用法比较多,这里用到了plot(x),即传送一个变量,系统将自动生成横坐标(1
-
length(
x
)),画出二维图形。plot(
x,y
),以x为横坐标,y为纵坐标,画出二维坐标,此时x,y的长度必须相等。
3.stem(
)
用来输出形状是火柴棍的图形,其他与plot差不多。
t
=
-5
:
5;
x
=
t;
subplot(
1,2,1
);
stem(
t
);
subplot(
1,2,2
);
stem(
x,t
);
4.axis(
[a,b,c,d]
)
该函数中的ax是axes(轴)的意思,后面是个谓词,说明这个函数是个表属性的函数。
用于输出图形的区域,参数为一个向量,a,b
分别为横坐标左/右界,c,d分别为纵坐标的下/上界。切忌不要写成
axis(
a,b,c,d
),这相当于给axis函数传递了四个矩阵,对吧。
5.title(
‘’
)
不多做解释了,这个函数就是在图形的上端输出你所想要打印的字符,后面还可以接一些参数,用来补充说明字符的颜色,大小等。
6.xlabel(
….
)
/
ylabel(
….
)
用来在坐标轴旁边标注上注释,参数类型与title类似。
7.grid
用来画网格,常用的是
grid
on
/
grid
off操作。
实验二:
这次实验才算是初步接触到了信号,上一次的实验可以说是对函数的熟悉,并没有考虑到信号的这个层次。
实验分两部分,第一部分即对已存在的信号
f(t)
通过编程得到信号
f(
at
+
b
)
以及周期延拓。
在没有接触到符号变量之前,我们还是用设出一个足够精度的定义域来仿真原函数的图形及其平移及尺度变换后的图形。
t
=
-2
:
0.01
:
2;
subplot(
2,2,1
);
plot(
t,exp(
t
)
);
title(
f(t)
=
e^t
);
axis(
[-2
2
0
60]
);
grid
on;
subplot(
2,2,2
);
plot(
t,exp(
t
+
2
)
);
title(
f(t)
=
e^{(t+2)}
);
axis(
[-2
2
0
60]
);
grid
on;
subplot(
2,2,3
);
plot(
t,exp(
-t
)
);
title(
f(t)
=
e^{-t}
);
axis(
[-2
2
0
60]
);
grid
on;
subplot(
2,2,4
);
plot(
t,exp(
-t
+
2
)
);
title(
f(t)
=
e^{(-t+2)}
);
axis(
[-2
2
0
60]
);
grid
on;
周期延拓就是将已知区间的图形复制到新的定义域内去。比如说我要以
e^t
(0 法一: t = 0 : 0.1 : 2; y = exp( t ); for( i = 0 : 3 ) for( j = 1 : length( y ) ) t( i 21 + j ) = i 2 + t( j ); z( i 21 + j ) = y( j ); end end plot( t,z ); 法二: function Y = f( X ) Y = exp( mod( X,2 ) ); end 注意函数应该保留在与函数同名的 “.m”文件中,这里应保留文件名为f.m t = 0 : 0.1 : 8; y = f( t ); plot( t,y ); 指导书上的方法也算是第二种方法。 本次实验第二部分即卷积的实现,关于卷积,是一个函数在另一个函数上对一些点的连续积累效应。指导书中所说的以多项式的形式来模拟卷积的过程是很贴切的,但是我们最后求的是面积,所以要乘以一个增量。 现将 f(t) = e^t ( jump(t) - jump(t-4) )与 g(t) = jump(t) – jump(t-4) 进行卷积。步骤如下: t = 0 : 0.1 : 4; ft = exp( t ) .* ( jump(t) - jump(t-4) ); gt = ( jump(t) - jump(t-4) ); y = 0.1 conv( ft,gt ); %求面积所以要乘以底长 plot( [0 : 0.1 : 8],y ); PS:谈下我对卷积的理解吧, ,首先我们应该认为这是一个关于时间 t 的函数,而 τ 只是我们用来表示积分的积分变量,关于 τ 我们知道的是完全的,类似于我们求傅里叶变换时,就是知道了时域的全部信息后去得到频域的频谱函数。现在我们只考虑f( τ )在无限区间内绝对可积,因此积分上下限可以用一定的区间来近似代替,此时我们来看g( t - τ ) 这个函数,同样要求无限区间内绝对可积连同前面的f( τ )以及积分变量来看,我们更愿意将其看作关于 τ 的函数,事实上一旦给定一个 t,那么积分式中 t 的作用就等同于常数。于是我要这样变形一下,看作是关于 τ 的函数后,那么这个函数就是先将函数g( τ )关于y轴反转,再将函数向右平移 t 个单位。 这样当我们从取时间为 -inf 到 inf g( t- τ )也就是将反转后的图像,从最左边平移到最右边的一个过程。在这个过程中的每一个时刻,我们叫一声暂停,于是我们将看见两个函数在平面的位置,我们严格遵守所给定的表达式,于是乎我们将它俩乘积不为零的区域进行积分。考虑到卷积是个关于时间 t 的函数,在我们叫一声暂停的时候,其实这就是当 t 取一定值时的卷积结果。 右图为两函数 f(t) = 0.2*t.*(heaviside(t)-heaviside(t-6)); g(t) = exp(-0.2 t)*(heaviside(t)-heaviside(t-5)); 的卷积示意图( t = 2 )。 定义 z(t) = conv( f(t),g(t) ),则该图表示t=2时,两函数的位置图。该图与函数的关系为:该图是代入t的值的函数的几何解释。 现在我们来分析Matlab中的conv()函数是如何来计算卷积的。苦于找不到好的模型对应解释离散型的数据卷积(计算机内最终都是以离散数据来处理的),用该处引入的多项式分析的话就非常和谐了。 我们假设在两函数上( f( t ) 和 g( t ),暂不考虑g( t ) 的变化 )分别等距离dx取上100个点,计算出对应的值,保存并且按 x 轴方向一次组成一个一维向量。 f( t ) 为 Fn [A^(100 – n + 1)]g( t ) 为 Gn [A^( n-1 )] 我们将取到的 Yn 看作是任意实数A的(n-1)次方。 让我们想想最后得到 z(t) = conv( f(t),g(t) )中的 t 会有多少个取值。按照积分的思想,那么就有200个取值。自己可以画图得到这个答案,也可以这样理解(g( t )在运动过程中,每次有不同的乘积值时,我们就暂停这个过程,那么这个区间就是两者第一次相遇到最后一次相遇),我们开看当我们暂停时,乘积的值在这个模型下会有哪些特征。 g( t )中在运动中首先与f( t )发生有效乘积的是g( t ) 的低次项(经过了反转),而f( t )相迎的同样是低次项。当第一次发生相遇时,相乘后的多项式的指数是 0,现在来分析第二次相遇,g( t )的0次项(用eg(0)表示)与f( t )的ef( 1 )相乘,eg(1 ) 与 ef( 0 )相乘,相加之后的指数是1。总结出来的公式就是,当第n次相遇: 依次类推,相同指数的项就代表了它们发生在同一时刻,啊哈,神奇的方法啊。 得到Zn后,我们的工作并没有完成,卷积不是计算相乘之后的新的函数的面积吗?按理说应该是在两个系数相乘之后就马上乘以最小间距,但是我们把这一过程放到最后来做是一样的,即 conv( f( t ),g( t ) ) = Zn(t) dx; 这里设n是关于t的函数。 至此,卷积过程结束。 实验三: 该次实验终于来到了我们期待已久的频域,信号与系统的神奇之初就是将我们从时间域中解放出来了,来到了频域,我们会发现很多东西和之前的直觉感受不同,我们不再关心分析一个信号的各种特性,哪里得到最值,哪里斜率又开始增大在频域里面我们只关心一个信号由哪些频率的基准函数组成。这就像我们不必了解一个多边形的具体形状,知道他们的边的方程或者密集的点集也就可以了。正交函数让我们也找到了这样的一个坐标系,三角函数,复指数函数。 比如我们已知一个信号的周期为T,则这个信号的基频率就是 2*pi/T,假设我只取在这个频率左右M (Hz)的信号,则我们的任务就是计算这些合法分量的坐标值就行了,而这其中,对于周期信号和非周期信号的处理方式又稍有不同,周期信号的频谱为离散型(本身正交函数就是周期函数,所以只需要离散的频率的分解即可,可以理解为在基波上进行各种修饰,而且进行修饰的频率分量的周期又是要必须整除掉基周期的,换句话说,基周期必须是最大的周期,基频率必须是最小的频率);而对与非周期函数,其频谱为连续型(基频率是无穷大的,其他分析类似),而且此时也只有分析相对大小才有意义,即频谱密度函数。 理解并记住书本上的关于傅里叶级数的公式,运用Matlab进行仿真。 本次实验最值得称道的就是在不定义符号变量的情况下,利用矩阵的特性来求和。对于连续的信号,采用的策略是使得dt 尽可能的小,这样就能模拟出连续的情况来了。上面两个公式的重要性就不言而喻了。 进行一个例题分析,求 f( t ) = e^( -2|t| ) 的傅里叶变换。 dt = 0.001; dw = 0.1; t = -100 : dt :100; y = exp( -2 abs( t ) ); N = 60; for k = -N : N F( k + N + 1 ) = y exp( -j k dw t ) dt; end plot( [-N*dw:dw:N*dw],real( F ) ); 1.由于没有指定时间范围,所以该函数是一个时间无穷的非周期函数,时间应取得尽可能的长。 2.按理说dw应该为无穷小量,这里用0.1代替,太小运算速度很慢。 3.我们认为取定频率范围为w = { w | -6 <= w <= 6 } 121个点来作出图像。 4.由于F向量只能从1开始编号,所以要给k一定的偏移量。 5.最后输出图像,由于函数是偶函数,所以傅里叶系数中的虚部均为零。 上面写的是非周期的傅里叶变换,周期函数的傅里叶级数求法与上面差不多,不同的是其dw用w0代替,而w0 相对于dw 来说一般会比较大,计算时还要除以周期T,当然输出时用stem()函数,这样能够凸显出其拥有离散的频谱图。 在上面的基础上我们来进行傅里叶逆变换,知道了上面的编码流程后,这个逆变换是十分容易实现的,我们也可以根据最后出来的图形来验证我们的变换是否成功。 还是贴出完整的代码吧,以便于大家能够运行这个程序,呵呵。 clear all dt = 0.001; dw = 0.1; t = -100 : dt :100; y = exp( -2 abs( t ) ); plot( t,y ); axis( [ -3,3,-0.5,1.2 ] ); hold on N = 60; for k = -N : N F( k + N + 1 ) = y exp( -j k dw t ) dt; end N = 100000; w = -6 : dw : 6; for k = -N : N X( k + N + 1 ) = 1/2/pi F exp( j w k dt ) dw; end plot( [-N*dt:dt:N*dt],abs(X),r ); 1.前面一部分是相同的,即得到傅里叶变换后的频谱信息。记住,这相当于你自己选择了这个区间的频率来变换(有点类似后面学的滤波,也由于你没有取遍所有频率,所以逆变换后的图像不可能完全相似)。我们当然没有按照教科书上面说的取第一个零点,观察傅里叶变换的图像这个也没有所谓第一个零点。 2.由于dt非常小,所以为了使时域区间能够足够打印出来与原始函数比较,所以这里的N给定了一个10000,t = { t | -10 <= t <= 10 },够了。 3.这里的w取值要参照上一次傅里叶变换时所取的范围。因为我们处理的是已知角频率区间的逆变换,跑到我们尚未求出的区间去是错误的,所以范围是 -6Hz 到 6Hz。 4.代入公式进行运算,还是提醒要注意括号里面是w向量的转置(w )。 5.其实最后得到的X的值的虚部是一定为零的。利用F(jw) = real( ) + j imag( )和欧拉公式,大家可以去证明下。上图中红色线代表逆变换之后的图像,蓝色为原始图像。
篇2:信号与系统实验总结
信号与系统实验总结 本文关键词:信号,实验,系统
信号与系统实验总结 本文简介:信号与系统实验心得体会为期四周的信号与系统测试实验结束了,细细品味起来每一次在顺利完成实验任务的同时,又都伴随着开心与愉快的心情,赵老师的幽默给整个原本会乏味的实验课带来了许多生机与欢乐。现对这四周的实验做一下总结:统观来说,信号与系统是通信工程、电子工程、自动控制、空间技术等专业的一门重要的基础课
信号与系统实验总结 本文内容:
信号与系统实验心得体会
为期四周的信号与系统测试实验结束了,细细品味起来每一次在顺利完成实验任务的同时,又都伴随着开心与愉快的心情,赵老师的幽默给整个原本会乏味的实验课带来了许多生机与欢乐。
现对这四周的实验做一下总结:
统观来说,信号与系统是通信工程、电子工程、自动控制、空间技术等专业的一门重要的基础课,由于该课程核心的基本概念、基本理论和分析方法都很重要,为了使我们加深理解深入掌握基本理论和分析方法以及使抽象的概念和理论形象化,具体化,在信号与系统课开设不久后又开设了信号与系统实验课。
这四次实验的实验目的及具体内容如下:
实验一:信号的分类与观察。本次实验的目的是观察常用信号的波形特点及产生方法,学会使用示波器对常用信号波形的参数的测量。实验过程中我们对正弦信号、指数信号及指数衰减信号进行了观察和测量。示波器是测量信号参数的重要元件,之前各种试验中我们对示波器也有一定接触,而这次赵老师详细的讲解使我更清楚的掌握了示波器的使用,同时也为以后其它工具的使用有了理论基础。
第一次做信号与系统的实验,让我明白了实验前的准备工作相当重要,预习是必不可少的,虽然我们都要求写预习报告,但是预习的目的并不简简单单是完成报告,真正的良好预习效果是让我们明确实验目的与实验内容,掌握实验步骤来达到在实验中得心应手的目的。而实验后的数据处理也并不是一件很轻松地事,通过实际的实验结果与理论值相比较,误差分析与实验总结,让我们及时明白实验中可能出现的错误以及减小实验误差的措施,减小了以后实验出现差错的可能性,提高了实验效率。第一次实验结束后,我比较形象直观的观察到了几种常见波形的特点并了解了计算它表达式的方法。更重要的是,知道了信号与系统实验的实验过程,为接下来的几次实验积累了更多经验。
实验二:非正弦周期信号的频谱分析。这次实验的目的是掌握频谱仪的基本工作原理与正确使用的方法;掌握非正弦周期信号的测试方法;观察非正弦周期信号频谱的离散型、谐波性、收敛性。频谱仪对于我们来说是一种全新的仪器,使用之前必要认真听它的使用讲解,才能够使接下来的实验顺利进行。实验过程中,我们画出了不同占空比的方波信号的波形及频谱显示图像,通过对这些非正弦周期信号频谱的图像分析,与理论值进行比较,更深刻的理解了方波信号频谱的离散型与谐波性,从而更好的理解傅里叶变换的意义,任何一个信号都可以分解为无数多个正弦信号的叠加,信号的频谱分析个正弦信号的幅度的相对大小,也即频谱密度的概念。
实验三:信号的抽样与恢复。本实验的主要目的是验证抽样定理。实验中先对正弦信号进行采样,然后用示波器比较恢复出的信号与原始信号的关系与差别。信号的抽样与恢复的实验让我更深入理解了信号从抽样到恢复的变化过程,和奈奎斯特抽样定理得以实现的现实意义。一个频域受限的信号m(t),如果它的最高频率是,则可以唯一的由频率等于或大于2的样值序列所决定,否则,频域发生重叠,信号将不能无失真恢复。而且,此次实验过程中,是非常需要耐心和细心的,信号的抽样与恢复过程中,抽样信号只在某一固定频率稳定,这就要求我们要有耐心和细心调节到这一频率来观察实验结果。实验是一个很细致的过程,实验中任一微小的变化,都可能引起实验结果的巨大变化,这就要求我们实验者要有严谨的态度和求实精神,最终能够很出色的完成实验,达到实验预期的目的,得到真实的结果。
实验四:模拟滤波器实验。滤波器实验的目的是了解巴特沃兹低通滤波器和切比雪夫低通滤波器的特点并学会用信号源于示波器测量滤波器的频响特性。由于我们并没有完全掌握滤波器的原理等知识,所以实验中我们仅仅测量了滤波器的频响特性,并画出了同类型的无源和有源滤波器的幅频特性。通过对图像的绘制以及分析,我们切实感受到了高通滤波器与低通滤波器的滤波特点。以前都是理论分析,一堆堆的公式堆积并不能让我形象地感受到它们实际工作的原理与特性等。而且通过实验分析,我更能感受到理论是源于实际的,任何新理论的发现都是以实践为基础的,我们应该重视实验重视理论与实验的结合,培养我们的创新精神。同时,培养严谨的实验作风和态度。任何一个方面的锻炼都可以培养我们的能力,塑造我们的品格,这对我们以后的学习和工作都有重要的意义。
信号与系统的实验不同于大物实验和电子电路实验,它是由多人合作完成的实验。在为数不多的几次实验中,我深深感受到了团队合作在实验中的重要性。两个人对实验的共同理解是实验高效误差小完成的基础。经过这些实验,我们对信号的性质、信号的调制解调、频谱等内容有了更加深刻直观的认识,实验中同学们互帮互助,增进了同学们之间的合作与交流,加深了同学们之间的友谊。而且,通过赵老师的风趣幽默深入浅出的讲解,我们巩固了信号与系统课上学习的基本知识。更浓厚了对信号与系统这一门学科的兴趣。实验后对实验报告的处理,我们完善了自己学习中知识的漏洞,而且也提高了绘图能力,了解了如何写一份完整的实验报告。老师的批改更能帮助自己更好地意识到自己的错误,让自己及时改正,从而得到提高。非常感谢信号与系统实验的老师——赵老师,带给我一份美好的实验回忆,教会了我很多,不简简单单的是实验方面的,在对待学习上也深有体会,我也会好好学习信号与系统这门学科的理论基础知识,为将来打好坚实的基础!!!
篇3:微弱信号检测装置
微弱信号检测装置 本文关键词:微弱,装置,信号,检测
微弱信号检测装置 本文简介:微弱信号检测装置(A题)摘要本系统是基于锁相放大器的微弱信号检测装置,用来检测在强噪声背景下已知频率的微弱正弦波信号的幅度值。该系统由加法器、纯电阻分压网络、微弱信号检测电路和显示电路组成。其中加法器和纯电阻分压网络生成微小信号,微弱信号检测电路和显示电路完成微小信号的检测和显示在液晶屏上。本系统是
微弱信号检测装置 本文内容:
微弱信号检测装置(A题)
摘要
本系统是基于锁相放大器的微弱信号检测装置,用来检测在强噪声背景下已知频率的微弱正弦波信号的幅度值。该系统由加法器、纯电阻分压网络、微弱信号检测电路和显示电路组成。其中加法器和纯电阻分压网络生成微小信号,微弱信号检测电路和显示电路完成微小信号的检测和显示在液晶屏上。本系统是以相敏检波器为核心,将参考信号经过移相器后,接着通过比较器产生方波去驱动开关乘法器CD4053,最后通过低通滤波器输出直流信号检测出微弱信号,将该直流信号送入单片机处理后,液晶显示出来。经最终的测试,本系统能较好地完成微小信号的检测。
关键词:微弱信号
强噪声
相敏检测
1系统方案
1.1方案论证与比较
1.1.1
微信号检测电路
方案一:采用滤波电路检测微小信号,通过滤波电路将微小信号从强噪声中检测出来,但滤波电路中心频率是固定的,而信号的频率是可变的,无法达到要求,所以该方案不可行。
方案二:采用取样积分电路检测小信号,利用取样技术,在重复信号出现的期间取样,并重复N次,则测量结果的信噪比可改善倍,但这种方法取样效率低,不利于重复频率的信号恢复。
方案三:采用锁相放大器检测小信号,锁相放大器由信号通道、参考通道、和相敏检波器等组成,其中相敏检波器(PSD)是锁相放大器的核心,PSD把从信号通道输出的被测交流信号进行相敏检波转换成直流,只有当同频同相时,输出电流最大,具有很好的检波特性。由于该测试信号的频率是指定的且噪声强、信号弱,正好适合于锁相放大器的工作情况,故选择方案三。
1.1.2移相网络设计
因为检测电路选择了锁相放大器,而移相网络是锁相放大器中的一部分,在此进行分析。
方案一:采用全通滤波器模拟移相电路,一阶全通滤波器的移相范围接近180度,所以通过设计两级滤波则可使移相范围达到360度。
方案二:采用数字移相方法,数字移相可以在4个象限内进行0~89°的调节,合起来即实现了0~360°的移相,由集成芯片控制频率和相位预值,如用CD4046锁相环组成。
方案一与方案二相比,电路简单可靠,且方案二增加了电路的复杂度,成本也很高。
故选择方案一。
1.2总体方案论述
综上所述,本系统总体框图如图1所示,系统由加法器、衰减器、前置放大电路、带通滤波器、同相电路、反相电路、移相器、开关电路和低通滤波器构成;其中由同相放大电路构成的加法器将噪声信号加到待测信号中,使得信号湮灭在噪声中,然后经过衰减器衰减100倍以上,送到由放大电路、带通滤波、同相、反相、移相、比较和低通滤波器构成微信号检测电路中。本系统以相敏检波器为核心,将参考信号经过移相电路和比较器输出方波驱动开关管乘法器,输出直流信号然后通过单片机A/D转换,最后在液晶上显示出来。
图1
系统总体框图
2
理论分析与计算
2.1
锁相放大器原理
锁相放大器由信号通道、参考通道、相敏检波器以及输出电路组成,是一种对交变信号进行相敏检波的放大器。它利用和被测信号有相同频率和相位关系的参考信号作为比较基准,只对被测信号本身和那些与参考信号同频、同相的噪声分量有响应。所以它能大幅度抑制噪声信号,提取出有用信号。一般锁相放大器具有极高的放大倍数,若有辅助前置放大器,增益可达220dB,能检测极微弱信号交流输入、直流输出,其直流输出电压正比于输入信号幅度及被测信号与参考信号相位差。
由此可见,锁相放大器具有极强的抗噪声能力。它和一般的带通放大器不同,输出信号并不是输入信号的放大,而是把交流信号放大并变成相应的直流信号。
2.2
相敏检波器分析
相敏检波器分为模拟乘法器和开关式乘法器,本设计采用开关式乘法器。相敏检波器(PSD)的本质其实就是对两个信号之间的相位进行检波,当两个信号同频同相时,这时相敏检波器相当于全波整流,检波的输出最大。其中图2为相敏检波器的基本框图。
图2
PSD基本框图
工作过程如下:设输入信号为。参考输入时幅度为的方波,其周期为,角频率为,根据傅里叶分析的方法,这种周期性函数可以展开为傅里叶级数
可得的傅里叶级数表示式为
上式右边第一项为差频项,第二项为和频项。经过LPF的滤波作用,的差频项及所有的和频项均被滤除,只剩的差频项为
当方波幅度时,可以利用电子开关实现方波信号的相乘过程,即当为时,电子开关的输出连接到;当为时,电子开关的输出连接到,这时LPF的输出为
当经过开关乘法器,角度之差为0时,输出信号最大。
2.3
移相网络
因为输出信号与信号的相位差有关,所以必须加入移相网络。
移相是指两种同频的信号,以其中一路为参考,另一路相对于该参考做超前或滞后的移动,即称为相位的移动。由方案论证得,本设计采用模拟移相电路。模拟移相电路其实就是一个全通滤波电路,它的放大倍数Au=(-1+jwRC)/(1+jwRC),写成模和相角的形式为:|Au|=1,φ=180°-2arctan(f/f0),其中f0=1/(2πRC)。每个滤波器相移范围均接近180°,所以本设计采用2个一阶全通滤波器串联,使得整个移相电路能做到接近360°的相移范围。
3
电路与程序设计
3.1
电路设计
3.1.1加法器
加法器采用差分放大器INA2134,无需外接电阻,即可做到,电路简单可靠,电路图为附图1。
3.1.2纯电阻分压网络
分压采用直接电阻分压即可获得100倍以上的分压,为了获得较好的分压结果,R1、R2均采用精密电阻,电路图为附图2。
3.1.3前级放大电路模块
为了使微弱检测电路的输入阻抗1MHz,所以它的第一级为同相放大电路,则它的输入阻抗至少大于1MHz,采用两片INA128作为运放放大100倍,INA128的放大倍数,所以第一级放大6倍,第二级放大16倍,选择电阻RG分别为10KΩ,3.3KΩ;INA128外围电路简单,输入阻抗高,并且有效抑制共模干扰,电路图为图3。
图3前置放大器
3.1.4带通滤波器
将低通滤波器与高通滤波器串联,就可以得到带通滤波器,因为输入信号的频率范围为500Hz~2K,所以带通滤波器的通带必须包含这个频率范围,带入参数可得带通滤波器电路为附图3。
3.1.5相敏检波器
带通滤波器的输出同时经过同相和反相跟随器后,输入到开关乘法器CD4053;然后另一路将参考电源先经过移相网络,接着滤掉直流,然后经过用LM311构成的单限过零比较器,得到方波去驱动CD4053,具体电路为图4。
图4
相敏检测电路
3.1.6低通滤波器
CD4053的输出最后经过由OPA4277构成的可调低通滤波器,该滤波器的R=1MHz,C=1u,算出截止频率为1Hz,能够达到滤波的效果,具体电路为图5。
图5低通滤波器
3.2
程序设计
本设计使用TI指定单片机模块Launchpad来完成,该单片机主要是将最后的可调低通滤波器的输出进行A/D采样。
3.2.1
测量结果标定
为了提高测量精度,除了采用多次A/D取平均以外,还使用加权平均和曲线拟合;对于每次测量值乘以加权系数0.8加上前次采样值乘以权值0.2作为本次测量的结果,利用多次测量的结果按方程进行曲线拟合得到标定系数a和b。最终根据得到的标定系数结合加权平均的结果计算出最终的测量值,送到液晶显示,流程图为附图4所示。
4
测试方案与测试结果
4.1测试仪器
任意波形发生器
模拟示波器
万用表
直流电源
4.2
测试方案
4.2.1基本部分测试
(1)经测试得:
B点噪声源输出的有效值输出为1.01V。
C点加法器的波形:无明显失真;带宽:3MHz。
D点衰减系数为:101。
D点的电路输入阻抗为:2.9MΩ。
(2)保持正弦信号的频率为1KHz,幅度值(VPP)改变,检测并显示正弦信号的幅度值,测量结果如下表。
输入信号幅度(VPP)
0.2
0.4
0.6
0.8
1.0
1.2
1.3
1.7
1.9
2.0
显示(VP)
0.098
0.193
0.306
0.402
0.498
0.592
0.640
0.840
0.933
1.041
误差
2%
3.5%
2%
0.5%
0.4%
1.33%
1.5%
1.17%
1.8%
0.4%
4.2.2发挥部分测试
(1)改变输入信号幅度范围(20mVPP-2VPP),输入频率为1KHz,观察显示数,测量结果如下表。
输入信号幅度(mVPP)
20
30
40
50
60
70
80
100
120
140
显示(mVP)
11
16
21
28
37
38
41
49
57
70
误差
10%
6.7%
5%
12%
23.3%
8.5%
2.5%
2%
5%
0%
输入信号幅度(mVPP)
160
180
190
200
显示(mVP)
80
87
91
99
误差
0%
3.33%
4.8%
1%
(2)改变被测信号的频率,检测正弦波的幅度值,测试结果如下表。
输入信号幅度(VPP)
输入信号频率(KHz)
显示值(VP)
误差
0.02
0.8
0.008
20%
1.0
0.085
15%
1.4
0.008
20%
1.8
0.009
10%
2.0
0.008
21%
1
0.5
0.488
2.5%
0.8
0.484
3.2%
1.2
0.488
2.4%
1.5
0.484
3.2%
2.0
0.487
2.7%
2
0.5
0.985
1.5%
0.8
0.971
2.9%
1.2
0.988
1.2%
1.5
0.977
2.3%
2.0
0.989
1.1%
4.3测试结果及分析
由上述测试数据可得,本系统能较好地完成基本部分和大部分发挥部分,当正弦信号频率为1K时,输入信号幅度在200mvpp-2VPP能很好地显示出来,误差在5%范围内,在20mvpp-200mvpp时,电路误差变大。可能是由于各级加法,放大器的线性误差及零飘,MSP430
AD采样的非线性误差等导致的。
5
总结
本系统能够很好地完成基础部分和大部分发挥部分,系统电路中相敏检波器能够工作在信号频率缓慢变化时有效检测出有用信号。但由于时间仓促,没有时间进一步改进系统,不过这三天依然学到了很多东西,我们付出了很多,也收获了不少。
附录
附图1
加法器
附图2
分压网络
附图3
带通滤波器
附图4
软件流程图
8