2008年3月31日星期一

MATLAB中的一些小技巧(2)

MATLAB中的一些小技巧(2)

1. Ctrl+D打开子程序
在MATLAB的Editor中,将输入光标放到一个子程序名称中间,然后按Ctrl+D可以打开该子函数的m文件。当然这个子程序要在路径列表中(或在当前工作路径中)。实际上该快捷键对应右键菜单中“Open Selection”命令。

2. 列出依赖函数
在Editor菜单中,选择Tools->Show Dependency Report,可以列出当前m文件调用的子程序。如果需要将程序移动到别的电脑上,使用这个工具可以确保不会漏掉一些东西。这个工具也适用于文件夹。

3. 显示鼠标数据内容
调试程序过程中,程序运行到断点后,将鼠标移到一个变量名上,将会弹出一个方框,显示该变量的内容。不在调试状态下,怎么使用这个功能呢?在File菜单 中打开设置选项(Preferences),选择 Editor/Debugger -> Display,在 "General Display Options" 中选择 "Enable datatips in Edit Mode "。

4. 单元数组的基本操作
清除cell中的元素
cellname(n1:n2) = [];
合并如下的两个cell数组
a = {'str1', 'str2', 'str3'};
b = [1:3];
  • c = [a(1:2), b, a(3)];
得到:c = { 'str1' 'str2' [1x3 double] 'str3'}
  • 而 c = {a(1:2), b, a(3)}
则得到 c = {1x2 cell} [1x3 double] {1x1 cell}
cell array本质上是数组,前一种操作方式与普通数组的操作方式相同,而后一种方式则是将逗号分隔的各个元素分别一个cell,整体作为一个cell数组。

cell的两种引用方式
a(1) 得到 {'str1'}, 因为a是一个cell数组,所以其中的每一个元素都是一个cell,
而a{1} 得到 'str1'。

5. MATLAB 中的字体平滑
在File菜单中打开设置选项(Preferences),在 Fonts 中,选择底部的 “Using antialiasing to smooth desktop fonts” ,MATLAB 中默认字号比较小,可以调大一些(可以在下拉菜单中输入数字,更精细地控制文字大小)。有衬线字体打开反锯齿后可能会看起来“发虚”。

6. 同步缩放坐标轴linkaxes
linkaxes命令,可以将一个figure中的各个axes指定相同的坐标范围,实现各个绘图同 步放大、缩小。在缩放一个绘图时,其它也会同步缩放。可以同时关联x、y轴,也可以只关联一个坐标轴。

7. 鼠标绘图
MATLAB Help中的Interactive Plotting一文提供了一种在figure中用鼠标绘图的方法,主要使用ginput函数。

8. GUI程序关闭按钮的callback
为GUI窗口右上角的关闭按钮添加回调函数:在GUIDE中打开GUI,在没有控件的地方单击,选中整个figure,右键菜单中选择 View Callbacks -> CloseRequestFcn,m文件中将自动添加该回调函数,输入代码就可以了。

2008年3月25日星期二

开源矢量绘图软件Inkscape 0.46 发布!

Inkscape社区3月25日发布了该矢量绘图软件的最新版本。Inkscape 0.46 最重要的特性是引入了原生的PDF支持,为PDF文档的编辑提供了一种简单的开源解决方案。

新版本的执行效率显著提升,同时引入了众多新特性。其中包括:
  • 对话框可以停靠在编辑窗口中;
  • 渐变的修改可以完全在画布上执行;
  • 新的油漆桶工具,可以为封闭区域填色;
  • 新的立方体工具,有助于使绘图更符合透视规律;
  • 新的扭曲工具,为路径和对象提供了更直观的编辑方式;
  • 新的实时路径效果,可以为路径提供“笔刷”等多种灵活的路径效果;
  • 改进的色彩管理工具,除sRGB之外,还提供对其它色彩模式的支持;
  • 实现了多数 SVG 滤镜,并提供了强大的滤镜堆栈编辑界面。

== 下载Inkscape 0.46 ==

Inkscape 0.46 已经包含在Ubuntu Hardy (8.04)中,可以正常安装;
Ubuntu Gutsy (7.10) 可以通过如下方式安装:
在Admin : Software Sources : Third-Party Software: 中添加
deb http://ppa.launchpad.net/inkscape.testers/ubuntu gutsy main
deb-src http://ppa.launchpad.net/inkscape.testers/ubuntu gutsy main

Macintosh OS X 用户可以下载 Leopard 通用安装包:
http://sourceforge.net/project/showfiles.php?group_id=93438

Fedora 、Debian 以及 Windows 等其它平台的安装包也将于近期发布。

Inkscape网站
http://www.inkscape.org/

完整的Release Notes见这里:
http://wiki.inkscape.org/wiki/index.php/ReleaseNotes046

新功能截图及介绍:
http://inkscape.org/screenshots/

MATLAB 中GUI子程序的参数传递

输入参数传递:
比如子GUI的名称为subGUI, 设想的参数输入输出为:[out1, out2] = subGUI(in1, in2)
在subGUI的m文件中(由GUIDE自动产生):
1.第一行的形式为:function varargout = subGUI(varargin)
该行不用做任何修改;varargin 和 varargout 分别是一个可变长度的cell数组(MATLAB帮助文件中有说明)。输入参数in1和in2保存在varargin中,输出参数out1,out2包含在varargout中;
2.在subGUI的OpeningFcn中,读入参数,并用guidata保存,即:
handles.in1 = varargin{1};
handles.in2 = varargin{2};
guidata(hObject, handles);

返回参数的设置:
1. 在GUI子程序的OpeningFcn函数的结尾加上uiwait(handles.figure1); figure1是subGUI的Tag;
2. subGUI中控制程序结束(如"OK”和"Cancel"按钮)的callback末尾加上uiresume(handles.figure1),不要将delete命令放在这些callback中;
3. 在子GUI的OutputFcn中设置要传递出去的参数,如 varargout{1} = handles.out1;varargout{2} = handles.out2;末尾添加 delete(handles.figure1); 结束程序。

在GUI的OpenFcn中,如果不加uiwait, 程序会直接运行到下面,执行OutputFcn。也就是说程序一运行,返回值就确定了,再在其它部分对handles.output作更改也没有效果了。

加上uiwait后,只有执行了uiresume后,才会继续执行到OutputFcn,在此之前用户有充分的时间设置返回值。

通过以上设置以后,就可以通过 [out1, out2] = subGUI(in1, in2) 的形式调用该子程序。

在一个GUI中调用另一个GUI时,主GUI不需要特别的设置,同调用普通的函数一样。在打开子GUI界面的同时,主程序还可以响应其它的控件。不需要担心子GUI的返回值被传错了地方。

2008年3月22日星期六

磁共振成像MRI的简单介绍

磁共振成像MRI的简单介绍

如果你看美剧《豪斯医生》,对MRI这个词一定感到很熟悉,在豪斯的诊断中几乎是必不可少的环节。那么什么是MRI,它又是怎样工作的呢?

因为工作的关系,我曾经接触过MRI一段时间,简单查阅过一些文献。在这里,我想从一个外行的角度,对MRI做一些形象的描述。

MRI的全称是Magnetic Resonance Imaging,即磁共振成像,它在医学上的应用有些类似于CT和X光。MRI设备对人体的某些部位(如大脑等),进行扫描,得到氢原子核H在组织中的密度分布。不同的组织,水的含量也是不同的,病变的组织的水含量又与正常的组织不同,通过对比,来了解组织的状况,以作为诊断的重要依据。

MRI图像中,灰度反映了组织中水的含量http://www.umshp.org/rs/mrict.htm

那么MRI设备是怎么得到人体内部的氢原子的含量呢,当然就像它的名字那样,通过核磁共振,本来这种成像方式应该成为核磁共振成像,为了消除病人的恐惧,去掉了里面的“核”字。
氢原子核实际上就是一个带电的质子,原子核绕其中心旋转,我们可以认为在原子核上产生了电流,这个环形的电流就使原子核产生了磁场。可以将H原子核看成类似于地球,具有南北磁极,同时也在不停地绕自身旋转(自旋)。

将这个小地球放入一个更强的磁场时,由于自转方向与磁场力方向不同,原子核在自转的同时,将绕着磁场方向公转,这种现象叫进动。磁场强度不同,进动的情况也不同。 实际上由于组织内部分子的热运动,只有极少部分的氢原子核能够发生这种进度,但正是这极少数的原子核才是磁共振成像成为可能。当然磁场的强度越高,发生进度的原子核越多,对成像也越有利。


我们知道,电磁波也是有能量的,当用电磁波作用于发生进动的原子核时,原子核吸收电磁波的能量,进动的形式会发生变化。不过,由于原子核的量子特性,原子核的能量并不是平滑变化,而是会在特定的能级间跳跃,所以只有特定频率的电磁波才会被原子核吸收,发生能量的跃迁,也就是核磁共振。用来激发核磁共振的电磁波的频率很高,属于射频范围。磁场强度不同,氢原子核的进动就不同,吸收的电磁波的频率也就不同。
处于较高能级的原子核是不稳定的,在激发电磁波取消后,它会重新回到低能量状态,同时将能量仍以电磁波的形式释放出来,发射电磁波的频率同激发的频率是一致的。释放能量的原子核越多,产生的电磁波的强度也越高。通过检测设备,我们就可以将这个释放的电磁波检测出来,根据这个电磁波的性质,我们就可以判断出氢原子核的相对密度。

到这里我们应该很清楚了,要测出组织内的氢原子核的密度,需要一个很强的磁场,一个射频发射装置,一个射频检测装置,当然还要有相应的控制装置,计算机软件处理等。但这还是不够的,在这种情况下如果将一个组织放入其中扫描,由于磁场是均匀的,组织内每一处的氢原则核都发生进动,在射频下都共振,检测出来的信号也是全体组织的,将整个脑袋放进去也就是一个大亮点而已。
解决的方法是,在主磁场的基础上,再叠加一个空间上均匀变化的磁场(称为梯度场),使组织内不同位置的氢原子核的进动情况都不同,然后用不同频率的射频分别激励,各个位置的原子核依次响应,放射出不同频率的电磁波,空间上的差异就检测出来了。


通常在医院看到的MRI设备是下面这样的,一个大圆筒和一个病人躺的工作台。你肯定能猜到这个大圆筒是干什么的了。没错,它就是一个超级大磁铁。可以产生磁场的方法无外乎两种,永久性的磁铁和电磁效应产生磁场。永久性的磁铁磁场 弱,而且又大又沉,一般用在低端设备上,场强低于0.3特斯拉。而更高场强的设备只能用电来驱动。但较高的场强,不仅需要很大的功率,线圈的散热也很成问题。
现在最多的是通过超导体产生的永磁场。比如图中这台GE的MRI,场强为3特斯拉,而地球磁场的强度仅仅为0.000005特斯拉。


超导需要极低的温度,因此MRI的励磁线圈浸泡在液态氦中,温度为4.2K,在线圈中通电后,切断电源,电流就在线圈中永无休止,永不衰减地流动,并且产生强大的磁场。人们早就发现了在更高温度下具有超导性的材料,为什么还要还用这么低的温度呢?原来,大部分超导材料在较强的磁场作用下都会失去超导性,直到1970年代,人们才发现了可以在强磁场中工作的超导体。
超导线圈要放在液氦中,而盛放液氦的容器与环境总是存在一些热交换,会导致液氦不断蒸发。为了减少液氦的消耗,盛放液氦的容器又放在液氮中,液氮的温度77K比液氦高,但比室温又低多了,液氦与环境的温度差降低,蒸发量也就下降了。当然,液氮也会不断蒸发,但它的价格比较便宜。


前面提到,需要一个空间上变化的磁场,来确定成像的位置信息。这个就是梯度磁场,梯度磁场是用普通线圈通过电磁效应产生的,强度要远小于主磁场。在快速成像中,梯度磁场实际上是变化的,这引起金属器件受力变化,产生变形,这是噪声的主要来源。梯度磁场的线圈位于主磁场的内侧,更靠近圆筒内壁的地方

图片来自MRI: A Guided Tour

射频线圈的形式多种多样。用于大脑成像的射频线圈一般是圆筒形,扫描时套在头部。由于射频的发射和接受在时间上是分开的,所以可以用一个线圈同时充当发射线圈和接受线圈,在两种模式下交替工作。也可以用两个独立的线圈。射频信号被线圈接受后,经过复杂的计算机处理,生产影像。
MRI的主要缺点是,病人被限制在一个狭小的空间里,扫描的部位要一动不动,病人体验不够好。也有一些是开放式的结构,不过一般场强较低,能力有限。



参考资料:关于低温的概念、技术和应用

檢查脊髓的利器:核磁共振攝影 ( MRI )

黄继英 梁星原:磁共振成像原理

2008年3月18日星期二

Nonlinear energy:非线性能量

Nonlinear energy:非线性能量
对神经信号进行锋电位提取时,一种方法是直接对采集信号设置阈值,提取波形;另一种方法是对信号的能量分布曲线设置阈值。 常用的能量计算有两种,线性能量(Linear energy)和非线性能量(Nonlinear energy)。
线性能量相当于直接对数据点求平方,相当于即时功率。 而非线性能量是指,幅度平方与频率平方的乘积,即(Amplitude^2) * (Frequency^2),由于频率的引入,这种能量计算方法可以放大突变信号(频率较高)的能量,在锋电位提取中可能会获得更好的效果。
非线性能量的计算一般简化为:NEO = v(t)2-v(t-1)*v(t+1)。v(t)表示 t 时刻的信号幅度,NEO 即非线性能量运算符 Nonlinear energy operator。 参考:http://www.nbb.cornell.edu/neurobio/land/PROJECTS/spikeSort/index.html
一个典型的锋电位波形的非线性能量:
不过,非线性能量对信号中的毛刺非常敏感,如下图:

2008年3月13日星期四

Wallpaper:一张桌面背景

Wallpaper:一张桌面背景
我自己做的一个桌面墙纸,内容取自《美女与野兽》(Beauty And The Beast) 的招贴画:http://www.plos.asn.au/Productions/Beast/Beast.html
局部放大:

2008年3月6日星期四

Rubicon:从苏拉到奥古斯都

Rubicon:从苏拉到奥古斯都
图片来源:http://tspl.xzcn.com/book/25960

公元前1世纪,罗马将领们继续率领军团在地中海沿岸所向披靡。共和国的公民们或许还没与意识到,正是这些伟人们断送了他们的共和、自由和民主。每一个强盛的国家都伴随着对荣誉的追逐,但荣誉和共和国并不总能够相处无间。长期以来,罗马公民的资格仅局限于罗马周围的局部地区,而军事领袖的征服范围扩大了,个人的力量有了与共和国一争高下的机会。

在扫荡了亚平宁山区的叛乱后,两位将领马略和苏拉开始争夺下一界执政官的席位,胜者还将会获得在亚洲对本都战争的指挥权,这也意味着更大的荣耀和财 富。年迈的马略尽管已经6次出任执政官,拥有了无数的战功和荣誉,却还是不满足,但这次年轻的苏拉赢了。马略心有不甘,与保民官策划了一场暴动,撤了苏拉的执政官搭档,苏拉自己勉强保住了位置,心存一些希望,能够在东方的战争中东山再起,挽回颜面。然而,对手不愿给他这样的机会,接替他帅印的人拍马赶到, 今年的指挥权都没了,还想明年?
苏拉作出了选择,打破了共和国传统,率领5个军团回到了罗马,军官中只有一个响应,士兵中却没有人反对。二十年前,马略取消了军团士兵的财产限制,由国家发给军饷,现在他们只忠诚于发军饷的首领,而不是共和国。
苏拉虽然打倒了自己的对手,却没能扶植起自己的亲信,他还没有无耻到操纵选举的地步。选举产生的两个执政官没有一个是他的盟友,他也只能让他们发誓不要做得太过份,就登上了东去的舰队。
两个执政官很快发生内讧,其中一个秦纳很快和马略勾结起来,率领军队回到罗马,将同事的脑袋摆在了桌上。马略杀戮一番后,第七次当选了执政官,不久死于任上。秦纳一头独大,连续三年坐在执政官位子上,等苏拉的返回。
尽 管还没有端掉本都王米特拉达提的老窝,苏拉也不能再对罗马坐视不理。秦纳不是久经战阵的苏拉的对手,很快被干掉了,在消灭秦纳和马略余党的过程 中,富人克拉苏和年轻的“大将军”庞培也粉墨登场,站在苏拉一边。前两次军队入罗马只能算逼宫,而公元前83年这次,战火最终烧到了罗马的城门下,随后是对数千名俘虏的屠杀。
大权在握的苏拉少不了一番清洗,好给喽罗们中饱私囊的机会。作为秦纳女婿的凯撒也牵涉其中,苏拉让凯撒休妻,后者不从,宁愿逃跑。他 当然也忘不了保民官所带来的麻烦,让他们不再具有推翻元老院决议的权力。尽管苏拉按照自己的意志重复分配共和国权力,但他却认为自己是为了挽救共和国,不让马略之流有兴风作浪的机会。五年后, 苏拉去世,但他的手下继续把持着罗马。

苏拉在罗马敲敲打打,年轻的庞培正转战非洲,对马略余党赶尽杀绝。胜利回 国后,又自愿去西班牙剿匪,元老们当然高兴让这个危险的25岁毛头小子走得越远越好。克拉苏也巴不得他在那个 山险水恶的地方摔个大跟头。但是,西班牙渐渐安静下来,庞培的声势日渐壮大起来。克拉苏坐不住了,虽然手里钱很多,但胜利的荣誉是买不到的。
公 元前73年,斯巴达克思起义了。一年前,卢卡拉斯率领罗马军队去了亚洲,罗马空虚。克拉苏顺利地从两位执政官手中拿到了指挥权,最终的结果大 家都很清楚,斯巴达克思被克拉苏赌在了亚平宁半岛的脚后跟上。突围北上再次被围,全军覆没。庞培正从西班牙班师,赶上灭掉了最后一支义军,然后写信给元老 院,吹嘘是自己救了罗马,卡拉苏狂怒,为了宣传自己的功绩,俘虏全部钉上了阿庇安大道两侧的十字架,绵延100多英里。
然而,卡拉苏的战争只是给罗马遮丑,庞培在西班牙的征服却是罗马的荣耀,元老院当然更愿意鼓吹后者。随后,克拉苏和庞培共同当选执政官。苏拉派的势力被削弱,保民官的否决权又回来了。

前74年,苏拉派的卢卡拉斯领军东征,希望能彻底吃掉东山再起的米特拉达提。卢卡拉斯占据了本都,米特拉达提逃到亚美尼亚避难,卢卡拉斯又将亚美尼亚打了个落花 流水,但米特拉达提仍然在逃,卢卡拉斯被牵着团团转,五年后,他的士兵受不了了,反苏拉的人开始在家里抄他老底。他只好转攻为守,坐看老米又冒出头 来。又两年后,他被庞培取代。
在此之前,庞培刚以三个月的时间扫荡了肆虐地中海数十年之久的海盗。本来,地中海的统治者是迦太基和希腊城邦,但罗马打残了这些国家,消灭了他们的舰队,而自己又没有建立起永久性的海上力量,海盗们才应运而生。卢卡拉斯只好眼睁睁地看着数年辛苦拱 手让人,颜面扫地地回到罗马,从此意志消沉,沉溺于吃喝玩乐。
庞培将米特拉达提重新赶到山沟里,将亚美尼亚和叙利亚转为罗马的附属国。前64年,又南下攻入耶路撒冷,在前往佩特拉途中,传来了米特拉达提的死讯,这位屡败屡战的强人被自己的儿子囚禁,服毒未果后让卫兵刺 死了自己,尸体成了儿子向庞培投降的见面礼。在米特拉达提的遗物中发现了一件亚历山大的红色斗篷,穿在身上,庞培觉得很合身。东方平定了,庞培准备回罗马,向公民们展示自己的斗 篷。

前63年,凯撒靠借贷疯狂贿赂选民,获得了大祭司的职位。声名狼藉的喀提林依法炮制,竞选执政官,却败在了律师出身的西塞罗手上。眼看下一年依然不举,这 下他到了破产的边缘。在社会的下层,同样有许多人负债累累,无以度日,相同的处境拉近了他们之间的距离。很快,西塞罗就察觉了他的动向,为他安排了罪名:喀提林打算来一场暴力革命,推翻共和国。喀提林逃出了罗马,拼凑起一支杂牌军,但在庞培回国前几个月就被消灭,他的同谋也被处死。西塞罗则成了共和国的拯救者。

在这个传统观念分崩离析的时代,既有像卢卡拉斯那样一蹶不振的反面人物,当然也有恪守共和国 光辉理念的卫道士,加图就是这样的代表人物。通过对传统价值信条的固守和宣扬,他成了罗马正统的准绳,他的敌人也就是共和国的敌人。甚至连庞培这样的伟人,也渴望能获得他的尊重。
回到罗马后,庞培获得了第三个凯旋式,荣耀达到了顶峰。庞培离了婚,公开希望能和加图的家族扯上姻亲关系,然而得到的却是公然的拒绝和无情的嘲讽。庞培用从东方夺来的财富开始修建罗马第一座石质的大剧院,渴望自己的威望永存。共和国怎能容忍伟人?加图和卡拉苏团结起来,极力让他从公众的 视线中消失。庞培当然不会坐以待毙。他需要一位重量级 的政治盟友,而后者正远在西班牙。
一年前,凯撒担任了西班牙的行政长官,这位曾经站在罗马时尚最前沿的新新人类出乎预料地在任上干得相当不错,挣了不少钱,还得到一次凯旋式。现在, 他知道自己的机会来了,前60年,为了参加执政官的选举,他放弃了凯旋式。在庞培的鼎立支持下,凯撒有大量的钱可以派给选民们,加图没有办法,也只好 容忍己方的候选人依葫芦画瓢。双方的钱都没有白花,各占据一个执政官席位。
但凯撒很快就将克拉苏也拉到自己一方来,前三头联盟悄悄地成立了。尽管克拉苏对庞培很 不待见,但凯撒安排他和庞培负责老兵的安置,显然大有油水可捞。而站在加图后面又可以得到什么呢?凯撒从执政官位置下来后,加图本来只希望他在意大 利境内陪土匪玩玩,而现在他取得到了一个长达五年的总督职务,负责意大利北部高卢的大片领地,边境外还有无数的荣誉等他去摘取。
加图的优势在于控制了传媒,给当权者的一切都蒙上一层非法和卑鄙的外衣。凯撒将自己的女儿嫁给了庞培,加图当然会居高临下地评价一番。凯撒对别人的谩骂不屑一顾,庞培可就没有那么坦然了。传统的荣誉观念在庞培身上根深蒂固,这其中当然不能缺少共和国精英们的尊重和肯定。

在凯撒的成全下,贵族出身的大混混克洛迪乌斯被贬为平民,从而当选为保民官。他以底层民众的代言人自居,煽动暴力事件是他的拿手好戏,曾经指控过他的西塞 罗被迫流亡。克拉苏和他的关系还不赖,但庞培却被整得忍气吞声,甚至整天缩在家里,元老院则在一旁看热闹。好在克洛迪乌斯的一年任期很快就结束了,庞培支持的保民官米洛走马上任,组织起人马和克洛迪乌斯分庭抗争。在这场争斗中,庞培和克拉苏间的矛盾开始浮上水面。反三头的元老以为机会来了,开始蠢蠢欲动。庞培成了暴力事件的替罪羊,再次陷入低谷。看着郁闷的庞培,元老们很开心,准备再拿凯撒开刀,拿掉他的高卢总督职位。
然而,三头们很快再次团结起来,甚至克洛迪乌斯也被拉到了他们的阵营中来,庞培和克拉苏再次和解,联手竞选前55年的执政官,有克洛迪乌斯在旁出手,连加图都可以被打回家去,还会有什么能挡住他们?
两位执政官的回报也是巨大的,他们分别获得叙利亚和西班牙的总督,任期同样为5年,而凯撒的任期结束后将再获得5年。两位总督的权力甚至包括了征召军队,开战,媾和等。以前这些权力只属于元老院,现在最杰出的公民成了共和国最大的敌人。
克拉苏任期一结束,对东方的掠夺就开始了,庞培参观过的耶路撒冷圣殿被洗劫一空,随后又度过幼发拉底河,进入帕提亚王国。事实证明,他的军事天赋远赶不上敛财天赋,前53年,他的部队被围,儿子战死,自己也被骗去谈判,混乱中被杀。
克 拉苏死后,在罗马庞培一头独大,为了平衡他的势力,加图支持被庞培抛弃的前保民官米洛竞选执政官。米洛的死对头克洛迪乌斯岂能容忍,冲突 中,克洛迪乌斯被米洛杀死,他的支持者为他举行的火葬,连元老院也被烧得精光。加图没有办法,只能求助于庞培,将军队开进罗马,两帮乌合之众作鸟兽 散。庞培再次把握了罗马的权柄,这次连加图也不得不表示出一些敬意。

几乎整个公元前50年代,凯撒转战西欧大陆,不断将财富和荣誉送回罗马,同时也提醒健忘的公 民们,不要忘了自己的存在。前52年,经过阿莱西娅城的决战,高卢领袖韦辛格托利克斯投降,凯撒最终平定了高卢,准备回罗马,然而迎接他的会是什么呢?
如果 他放弃军队的指挥权,以平民的身份回去,很可能像庞培当年一样,被加图等踩在脚下。而且,庞培之前可是没有什么把柄的,而凯撒的违法勾当却太多了。
庞培尽管曾是凯撒的女婿,但比他年长几岁,一直将凯撒当成一个晚辈看待。现在情况不同了,手握重兵的凯撒对自己 地位是一个巨大的威胁,他开始和加图站在一起,要求凯撒交出军队的指挥权。凯撒的对策是扶植起支持的自己的保民官,元老院一作出不利于自己的决议,保民官立 即否决掉。这样反复几次后,元老们失去了耐心,庞培的军队再次进入罗马。凯撒的保民官乔装溜出了罗马,北上拉韦纳,凯撒和他的13军团正驻 扎在那里,注视着罗马的一举一动。
接下来发生的事情就更广为人知了,凯撒迅速南下,庞培带领元老院退出罗马,后又被凯撒追到希腊。前48年,庞培本来有希望将凯撒困死,但在元老院的煽动下,他 发起了决战,被凯撒久经沙场的军团打败,逃亡埃及时死在托勒密国王手里。凯撒随后赶到,扶植起国王的姐姐克里奥佩特拉。随后在亚历山大被困了一段时间,解围后,很快平定了亚洲的叛乱。前46年,击败了在非洲的共和派,加图绝望自杀。
凯撒得到了一个为期十年的独裁官任期,以及任命所有的行政官员的权力,在共和国之后,还从来没有一个人 获得如此集中的权力,前44年,又被元老院任命为终身独裁官。这下,共和国的遗老们彻底坐不住了,一个月后,他被刺死在元老院内。

争权夺利的场面又出现了,但已经没有了共和派的位置。西塞罗曾一度屈服于凯撒的强权,但现在他成了共和派在罗马的领军人物。 利用他的辩才和声望,他希望能够扶植起可以和安东尼对抗的人物。凯撒的两位老将被选为执政官,凯撒年轻的继承人屋大维也受到吹捧。
不幸的是,在和安东尼的战斗中,两位执政官同时战死。战败的安东尼随后和同为凯撒副手的李必达同盟。小凯撒没有希望战胜安东尼,于是调转方 向,率军进入罗马,西塞罗的希望破灭了。随后三头政治正式建立起来,将罗马帝国分而治之,元老院和公民们只能靠边站。为了养活三头数目 众多的军团,对罗马的掠夺又开始了,富人一个个成了国家公敌,人头落地,财产充公。三个人甚至还纳了投名状,各将一个自己人列上名单,安东尼的一个叔叔, 李必达的一个兄弟,以及被屋大维曾成为“父亲”的西塞罗。
共和国最后的一批追随者,刺杀凯撒的布鲁图斯等人倒在东方的战场上,在那里,安东尼扮演起传统的总督角色。而在罗马,屋大维完全承担起破坏共和国的使命,为大量老兵们安置土地 的计划使大批农民失去土地,意大利盗匪横行,在加上庞培的儿子率领的海盗控制了海上航线,罗马饥荒严重。经过几年的努力,屋大维打败了海盗,意大利的情况 开始好转,共和国时的种种做法似乎又开始上演了,小凯撒俨然成了共和主义者。
而安东尼似乎完全被东方的传统征服了,开始梦想像埃及女王那样加入神的行列,一个高贵的罗马人被东方人同化了!罗马人最后的一点自尊心被屋大维激励起来,前31年,经过亚克兴角的海战后,安东尼和托勒密王国一起走到了历史的尽头。
小凯撒再无对手,前27年,他宣布恢复共和国,但在奥古斯都的称号下,仍然把权力牢牢地抓在手里,直到公元14年死去。在他之后,一个人的性格决定国家命运的东方模式在罗马正式登场了。

《卢比孔河:罗马共和国的胜利和悲剧》, [英] 汤姆.霍兰 著,杨军 译。
这本身还是不错的,语言比较流畅,趣味性较强。如果对这段时期的历史不是很熟悉,还是很值得一读的。

图片来源:http://ch.sysu.edu.cn/hope/sites/greeceroman/ppt/map.html

2008年3月1日星期六

VibraCapture: 简单的振动数据采集分析软件

VibraCapture: 简单的振动数据采集分析软件

我自己用LabVIEW做的一个简单的振动数据采集和分析程序,几个月前就已经放弃,不再继续开发。但毕竟也花了不少的精力,不舍得完全扔掉,在这里把代码共享出来,供有需要的朋友参考。程序的功能很不完整,也没有经过详细的测试。开发工具是 LabVIEW 7 Express。

具有的功能:
1. 触发式与连续数据采集,设计目标是针对PCI4472采集卡;采集参数控制:采样频率,采样点数,平均次数,保存参数和数据等。窗函数只使用了LabVIEW内置的几种。这一部分只在仿真卡上部分测试,可能问题较多。
2. 多窗口数据显示:可同时显示1、2、4或者8个窗口,在每个窗口可以独立配置其显示内容,包括:数据通道,时间历程,功率谱,频率响应函数等。在一个或两个graph时,可以调整光标。
3. 连续小波变换识别模态频率和阻尼比。

程序的使用:
程序的目的是进行一个模型的完整的振动数据采集,因此在此之前,应该有一个模型的测量方向表(.dirc文件)(程序中附有一组数据,可供参考)。在Parameters 面板中将 Project Path 指向测量表的位置。右侧的 Node Control 中将自动读入该测量表。
选择 Apply 后,采集参数保存在.cfg文件中,ICP的参数不保存(没有测试)。
进入 DAQ 面板,选择 Node Control 中的项目,如果该节点已有采集数据,则在graph中显示。选择START DAQ开始采集数据。数据自动保存在测量方向表所在的文件夹,文件名与节点名相适应。注意在底部方框中为graph设置合适的参数。当前graph的背景为紫色。
CWT Analysis 面板中,连续小波变换的程序是用 MATLAB 编写的,计算机中需要安装有MATLAB才能调用。选择节点,自动开始计算小波系数(可能需要等待几秒钟),在左上角的Graph中将光标移动到某一个峰值频率处,点击 Estimate,估计频率和阻尼。可以调节Morlet小波的参数,以及参数估计中曲线拟合的范围。

所有保存文件,包括参数文件、数据文件实际都是以文本格式存盘,可以用记事本打开查看。
一个简单的流程图

下载地址: http://liuxq-works.googlegroups.com/http://download.csdn.net/user/liuxqsmile
屏幕截图