数字信号处理工程师如何发展?
60人同意
谈谈我的理解。
(一)写在前面
大二的时候自学了TI的数字信号处理器,做了几个小项目,但是一直有瓶颈。我以为这里水太深,想终身从事DSP开发。于是报考了一个学校的航海学院,选了一个做水下通信技术的导师。这么多年过去了,我也有了自己的理解,世界各地或多或少都有业内人士在生活,所以给题主一些建议,希望能有所帮助。
(2)真的有“DSP工程师”吗?
首先要明确,数字信号处理是一门非常非常基础的学科。至于数字信号处理工程师这个名字,个人觉得不太合适,范围太广。暂时应该理解为运用数字信号处理知识解决问题的人。数字信号处理还得在研究生阶段重新学习(补充知识)。以自适应信号和随机信号为理论基础展开,加入了小波、希尔伯特等多种处理方法。另外,你会发现大学里的微积分已经不能满足后续的学习,所以你要继续学习数学。到了这里,你会发现原来数字信号处理的学习(本科阶段)只是冰山一角,因为本科阶段学习的确定性信号和线性时不变系统,真的很简单,但是现实生活中没有那么多的确定性,也没有那么多巧合,尤其是学科所在的通信行业。所以我个人觉得,作为一个“数字信号处理工程师”,把自己的理论局限于确定信号和线性时不变系统,肯定是不合格的!这里推荐考研,考个好学校。考研的目的很明确。第一,可以通过考研学好数学英语。第二,可以继续学业。毕竟导师是圈内人,导师的人脉帮助你接触的人群进一步筛选。第三,可以继续学习,真正打好这方面的基础。有人说我可以在社会上工作,然后自学。我想说的是,自学确实是一种能力,但是你能保证你会找到你想做的工作吗?你的发展方向一定要符合公司的发展方向。这里有哪些可以独立的成分?而且社会比校园更浮躁,多多少少会干扰你的效率。如果真的喜欢这个行业,是不是隔两年?况且真正有能力的人是不会被考试难倒的。事实上,我工作一年后就决定辞职了。
有了理论基础,你就可以在这个基础上选择方向,每个方向都有自己的支撑理论。比如做图像处理,视频处理,音频处理,生物医学或者水下通信,这些方向都是基于数字信号处理的理论基础,然后衍生出自己的知识。所以我觉得不应该称之为数字信号处理工程师,而应该称之为特定方向的工程师,比如图像处理工程师,音频处理工程师。课题可以选择特定的方向进行研究,每个方向都有很高的研究价值。即使是应聘公司的工作,工资也是很高的。
(3)数字信号处理和数字信号处理器都叫DSP。
有人提到了嵌入式DSP芯片,不要和数字信号处理混淆。它不是数字信号处理的专利。虽然都叫数字信号处理器,但既有渊源,也有区别。DSP芯片属于嵌入式范畴,其驱动开发模式和思路与一般单片机相同。但在硬件结构上适合算术信号处理,在外设上提供更人性化、更便捷的工程功能。一般你可以看到DSP器件也广泛应用于控制领域来运行控制领域的算法。如果你真的想成为一名所谓的数字信号处理工程师,你应该做的主要工作是面向专业领域的专业算法。对于配置DSP器件,应该是嵌入式工程师应该做的事情,不过话又说回来,如果你要经常和这个DSP处理器打交道,也要精通。同理,FPGA也是一样。当DSP不能满足工程要求时,正好FPGA可以解决。作为这个方案的解决方案,FPGA独特的并行机制有很大的优势(比如我就不拖专业词汇了,只是通俗地说,我们做的是水下无线通信,调制信号是DSP做的,载波出现谐波干扰,在陆地上完全可以忽略。但是在水下,需要考虑这个频段的干扰信号对一些海洋生物的威胁,所以需要对载波信号进行提纯,也就是用数字的方法,但是算法的计算量增加,速度上不去,导致通信失败,所以换了一个FPGA。不要以为FPGA比DSP好,其实不然。用捕鼠器抓老鼠,用菜刀切菜,该用什么用什么。但是DSP和FPGA中的算法原理是一样的,只是语言需要改变,算法的核心是不变的。作为一个数字信号处理工程师,难道不应该掌握这些算法的执行者或者载体吗?你不能说我的算法效果好,经过MATLAB验证就OK了。移植后实际情况可能没那么顺利。你需要考虑这些执行器的指令周期,内存,时序等等,或者用他们的特殊语言来翻译,所以你要学的比预期的多。你有武功,有武功,还有同样的招式。你可以用刀或剑。刀和剑只是工具。DSP和FPGA单片机是武器。做一个江湖人,一定要会用剑。俗话说,人不容易被区分才被惩罚。你需要投入很多。也许你的朋友毕业后开始攒钱买房,穿上大牌衣服,给女票买昂贵的化妆品。当你换了几千元的手机的时候,你还是那么穷。不要灰心。你会成为忠实的妻子。
只是想强调一点,你需要功夫在里面,功夫就是时间,精力,金钱,还有你的心。快可以快,你也可以。一点区别都没有,信号处理给你这个机会,因为谁都不可能快。
(4)学习建议
至于对题目的建议,我建议学好数学很重要。你在开信号处理这门课的时候就可以看到,你需要耐心的去理解这个过程中所有的数学推导和证明,所以你需要很好的数学基础。只有建立这样的思维,你才能真正理解这门学科,否则你会背公式,你做题会很痛苦。这么多定理出现对你来说不是难,而是解题,因为这些看似复杂的定理出现,让问题变得简单。只要你仔细阅读,你会发现这些定理真的很神奇。另外,建议学科考研。正所谓师傅领进门,修行在个人。我们要进这个门,就要有这样的关系。我们应该和这个行业的人保持联系。你一眼就能看出他们用的是什么软件,学了什么程度。你也知道自己在哪里,应该学什么。可以说,我硕士毕业的时候,本科工作了两年。可能我刚硕士毕业,缺乏一些职场经验。我还需要适应社会环境而不是本科,但是十年后还能一样吗?谁在乎多出来的两年经验,谁打下的基础?不要小看这三年。年纪轻轻打好基础才能建高楼,所以不用担心。如果学科没有考研的打算,本科也有出路。目前信号处理技术在不断发展,但经典的也只有那些。一般工程中常用的算法被下游公司(德州仪器、ADI等)打包成函数库。),而且他们的普遍性很友好。一些网友的开源算法也可以在网站上获得,所以了解这些经典算法在一般工程中的作用和适用的输入输出是没有问题的。比如德州仪器的DSP、数字图像处理、音频处理的基础算法可以直接调入库,浮点和定点库是分开的。开发过程完全不需要知道算法是怎么实现的,只需要关注内存分配和库配置就可以了。我觉得,如果你毕业后能了解信号处理的作用,适用条件,输入输出,找到一份好工作就够了,然后通过学习,工程拓展,会有很大的进步。
(5)教育建议
另外,我想补充一点,TI公司招聘FAE已经是硕士了,更别说研发了。没有学位想去大公司,进不去。同样五年的工作经验,含金量肯定有差别。毕业的早几年,可以跪在大公司。有大公司背景的支持,你以后在这个行业会很放得开。在小公司,你经常会听说这个经理以前在XXX牛逼公司工作(大概是打酱油的小角色)。所以,不要做井底之蛙,只看眼前,看长远,做好规划。年薪20W的人在信号处理行业算是低收入者。有些人普遍认为,本科毕业挣钱,读硕士就要花钱。请纠正这种心态,不赚钱读硕士。本科教育后,尤其是工科,可以赚钱。只要你实力够强,做私活,一个项目定下来就有好几万的收入,加上辛苦的奖学金和家教费,还有象征性的助教费。收入怎么会少?只是从事这类行业的人都很低调,不太在乎衣食住行的好坏,但这并不代表“穷”。
适合本科毕业生的路有很多,甚至选择这些路比研究生走这条路更有优势,比如CS行业,入门很快,赚的也不少,尤其是能去外包公司干几年的,更吃香,纯粹是拼工作经验和工作强度。最后可以得出结论,如果这个行业需要很强的理论背景,考研是最适合的,如果这个行业工程性很强,适合早期工作。比如通信专业、控制专业、视觉处理专业、人工智能等等都需要强大的理论支撑和学习,所以考研是最合适的;比如开发C++和Java之类的软件,实用性很强,工程性很强。越早开始,做的项目越多越好。题外话,我建议本科毕业生考虑C++的道路。这个老专业可能不如今天的Java和Android,但如果他们能在十年内培养成多线程编程的硬核玩家,还是很有前途的。
综上所述,在信号处理行业,研究生在背景、平台、基础方面都有优势。所以我建议更进一步,读硕士甚至博士,作为职业道路的起点。