本科生的话,建议做软件方向的嵌入式系统,即利用现有的芯片和操作系统(开源的非开源的都可以)进行开发。嵌入式没有竞争相对小的方向,不管你搞什么,今天无限风光,明天就有可能寄人篱下。希望楼主在选择之前首先端正一下态度,选择了电子工程师这条路,就没有“竞争小”这项选择。前途的话在个人,你要是真是个牛逼人物捡垃圾也能捡出不一样的精彩。
根据楼主本科生的情况,DSP还是不要碰了。这玩意单纯从编程角度来讲没有任何难度,其精髓在于你编程实现的算法.想把DSP用好,首先你将来从事的行业必须有大规模计算的需求,而且这种计算需求从某种程度上对时间要求比较高。比如通信,实时视频处理等方面。有些应用,比如地质数据分析,遥感数据分析,大规模计算的需求是有了,但是一个星期出结果和一年出结果没啥差别,那这种也就不需要DSP了,不如直接上PC来的顺手。其次应用DSP人员必须对自己行业所需要的专业知识极为精通,注意!这里的专业知识不是指什么数模电微机原理等“专业课”。而是解决本行业可能遇到的问题所需的知识。具体例子不好列举,就拿一般看得到的教材来说,很简单的DSP应用——FFT,你说你要是连FFT怎么回事儿都不知道,用在什么场合也没概念,什么时候用也说不清楚还搞什么DSP啊?DSP这东西跟什么学历没有太大关系,本科生也可以做得很好,关键是自己有没有足够的知识来用好它。
FPGA相对DSP来讲稍微简单一点,当然,视个人情况而定。比起动不动就FIR啊IIR啊椭圆滤波器啊Butterworth啊什么的,我更喜欢几百万门的与非逻辑。基本的逻辑电路设计,本科时候的数字电路就可以够用了。不过大的趋势还是做SOC。SOC这个概念不难理解,简单点说就是把你原来做的实验那个PCB板换成硅片,把与外界的连线换成管脚。用芯片做了原来电路板做的工作。单纯组建一套片上系统并不复杂,复杂的是这套系统的商业化成本。现在很多SOC设计里面大量应用的现成的IP都是需要付费的。一方面原因是如果自己设计,周期和风险就会成倍放大,另一方面针对某些功能的IP靠自己的力量也搞不出来。如果是学生或者独立开发者,当SOC进行到一定程度后就会感觉自己的开发寸步难行了。抬头望去到处都是IP壁垒。想做出自己的东西真的很不容易。如果你的理论知识够牛的话,可以自己设计IP也是一个挺好的出路。
不过这又回到了DSP的老话题:你的知识够用吗?以我们公司现在的视频处理项目来讲,实现的时候很简单,就是一连串的矩阵转换。问题是如果没人告诉你这么做,你自己能想到吗?如何把一个BMP或者PNG转换为YUV或者YPbPr?数据如何压缩?其实就是一堆色空间转来转去的。再比如让你用高斯算子和拉普拉斯算子做一个当前图像的边界检测,怎么做?先不讨论怎么做,麻烦问一下啥是高斯算子?归根到底,又是高等数学和线性代数那一档子事儿。按照中国当前的国情,50%的本科生基本靠混,另外50%不甘堕落的上进青年中,有90%不重视理论知识。所以FPGA入门可以,做也不是不能做,想有前途?难。
这就是为什么建议你做嵌入式软件的原因。软件面比较广,在你51单片机嵌入式编程的技术基础上继续深入嵌入式系统的应用编程方向,一来上手快,理解概念好理解一些,二来对理论知识的要求不是那么严苛。虽然没有理论知识你依然只是个代码民工,但是嵌入式编程本身的灵活性从另一方面给了自己发展的空间,也就是说单纯就代码如何实现上自己也可以学到不少东西。所以软件可以不限于某几个行业而存在,而DSP和FPGA不行。如果可以参与一些开源的项目,对自己的提升就更大了。
总之,本科生的话,如果不准备继续深造而且考虑今后一定时间的发展的话,做嵌入式软件比较合适。
当然是FPGA未来的发展方向更好了,其优势大家都知道的,不过最好选择一个正确的学习途径,买个点播FPGA学习视频最好,少花钱,还节省时间,推荐给大家:明德扬很不错,希望我的回答能够帮助你
dsp作为浮点运算式处理系统,要求学生对于计算机硬件知识比较严格!
而fpga则在大部分情况下,是监测处理器内核状态,以及软件调试下所用的辅助接口技术和cpld比较类似!如果楼主希望在此方面竞争相对小点,个人建议还是fpga学习的好!
DSP对本科生来说还是有一定的难度的,不过,我没有静下心去研究它,我的一个同事现在在搞DSP,现在在武大读博士,他说还是有一定的难度的,要求掌握数学算法和数字信号出理方面的知识,比单片机要难些,当然,也不要怕,慢慢来总会有收获的,
FPGA,个人认为比较容易上手,我在2007年的暑期电赛培训时,简单的看了下,初学者很好入门,当时用的是开发板,有一些例程,做了一些实验,然后就是自己试着写程序,用的是.v语言,和c比较近,容易学,当然到了后期,要做的很深的话,就比较难了,可能比dsp还 难,
dsp,fpga,不管搞哪一个,就当前来说,都是比较有前途的,慢慢来,一天天积累,终究会成大器的!