图1.8 快速傅里叶变换的参数在频率分辨率方面的影响
由此,我们可知,快速傅里叶变换在电声系统中的应用是不可忽视的,了解其变换规律,能更有效地对电声系统进行优化。
快速傅里叶变换因为大大降低变换计算量,因此,使用时能够节省大量计算量,在各行业的应用越来越广泛。在今后的发展中将更加能发挥其巨大作用。
2.2 Vc++目前的水平以及发展趋势
C++作为当今业界应用最为广泛的编程语言之一,其涵盖的内容非常广泛而多样。C++由美国贝尔实验室的Bjarne Stroustrup博士在20世纪80年代初期发明并实现,最初被称作C with Classes。1983年,C with Classes被更名为C++。1985年10月发布了第一个商业化版本。同年,C++的第一本编程手册《C++程序设计语言》出版。1989年,发布了第二版。1990年,出版了The Annotated C++ Reference Manual。这本书后来成为标准化的基础。稍后又引入了模板、异常处理、命名空间、新的强制转型,以及布尔类型等特性。ANSI-ISO委员会于1998年对C++进行了标准化:ISO/IEC 14882-1998。从此,C++成为一种具有国际标准的编程语言,通常被称作ANSI/ISO C++。2003年,又发布了该标准的修正版。2005年,一份名为Library Technical Report 1(简称TR1)的技术报告发布。事实上,至今为止没有任何一款编译器完全支持ISO C++,但是Borland C++和Visual C++已经足够强大。现在,Loki、MPL等程序库为代表的产生式编程和模板元编程的出现又给了C++一个新的发展高峰。[3]
C++语言是由C语言扩充而来。它是一门混合型的语言,既支持传统的结构化程序设计,又支持面向对象的程序设计,这使得C++非常流行。它在编程中支持面向对象。因此,它比C更适合人们的思考方式,并且比C要安全、可靠、有效。但是它并不像Java那样全面实现类的使用,这使得它很灵活,能够适应多种场合的需要。C++是编译语言,性能良好,效率更高。它不像Java、PHP、ASP等解释型语言,需要在运行时转换为机器码,或者读一条语句执行一条。它直接被编译为机器可识别的机器码。只要C++编译时产生的机器码不依赖外部的动态链接库,C++就可以在不需要安装额外程序的情况下,移动到运行同样操作系统的其他机器和微处理器上。而移动Java程序时需要先安装Java运行期库,这是C++语言成功流行的一个重要原因。C++语言应用极为广泛。尤其在底层编程和系统级编程上更是C++的传统优势应用。在数据库和多媒体方面,C++又以其卓越的稳定性而赢得了荣誉。
虽然C++从脱胎于C开始,一路艰难坎坷的走过来,但是无论如何C++已经取得了工业基础的地位。业界的大量用C++写成的产品代码以及大量的C++职业工程师则是最直接的证明。同时,我们可以看到各个高校的计算机专业都开设有C++这门课程,网络上对于C++的学习讨论也从来都没有停过。但是,在Java和.NET两大企业开发平台的围攻下,给人的感觉是C++越来越“不行”了。
C++在面向企业的软件开发中,在开发便捷性等方面的确要比Java和C#差很多,其中一个问题是C++语言本身比较复杂,学习曲线比较陡峭,另外一个问题是C++标准化的时间太长,丧失了很多的壮大机会,耗费了很多精力在厂商的之间的斗争上,而C++的标准库离一个完善的程序开发框架还缺少太多太多的内容,各个第三方的类库和框架又在一致性和完整性上没法和随平台提供的框架相提并论。难道C++真的要退出历史舞台了?
从C++目前的活跃程度,以及应用现状来说是完全能够肯定C++仍然是软件工业的基础,也不会退出历史舞台的。另外从Boost,Loki这些库中我们也能够看到C++的发展非常活跃,对于新技术新思文非常激进,C++仍然广泛受到关注。从ACE在高性能通信领域的应用,以及MTL这样的库在数值计算领域的出色表现,我们可以看到C++在高性能应用场合下的不可替代的作用,而嵌入式系统这样的内存受限开发平台,比如Symbian OS上,C++已经发挥着并且将发挥更大的作用。可以预见的是以后的软件无论上层的应用怎么变,它的底层核心都会是由C/C++这样的系统级软件编写的,比如Java虚拟机,.NET Framwork。因为只有这样的系统级软件才能完全彻底的发挥机器的功能。 VC++的FFT快速傅里叶变换编程设计+流程图+源代码(3):http://www.youerw.com/jisuanji/lunwen_954.html