转自人人网
DSP面经
谨以此帖献给喜欢DSP并以DSP为目标找工作的童鞋。
今天去CCRMA找大叔签会议报销的名,走进那个上过两个quarter课的教室,不由想起了那两个quarter中自己不断找实习的惨痛经历,故决心写一篇面经,或许能让一两个和我有相似经历的同学少走些弯路。。。
关于简历(resume)
先从简历说起吧。其实最需要技术或含金量最高的反而在简历上。其实DSP界的供求关系还算平衡,职位少但是真正以这个为目标的candidate也少,但也不乏有很多人无节操乱投。。。所以简历除了show自己GPA,排名神马的,最重要的还是要写明自己做了什么项目,而且这些项目都和DSP有关系。
其实在工业界的工程师看来,学生在学校做的东西,起码在DSP这方面,都很幼稚(phd请自动忽略,仅指master及以下)。我们能做的也只是尽量参与些DSP项目,表现出自己很执着DSP这方面,并对它有浓厚的兴趣神马的。简历无所谓impressive不impressive,关键还在match。
最重要的一点是,如果对自己上过的某门课不熟悉,或者对自己正在上的某门课一窍不通,千万别往简历上写自己上过这门课或正在上这门课(就当你和这门课不认识吧)。别以为面试官只懂他们那个职位的东西,他们懂的范围可广了。之前不知道这个,写了自己正在上communication system,结果挂得特别惨,惨啊。。
关于课程
如果过了简历关,有人通知面试了,那恭喜,好好准备的话,应该有50%的概率。software职位有各种面经和参考资料,DSP相比之下就少得可怜了。想过面试关,黄金material绝对是奥本海姆和Schafer爷爷的那本离散时间信号处理,如果能把上面的知识点融会贯通,绝对是所向无敌啊。对audio DSP而言,Julius Smith大叔的MUSIC 421A课件非常有帮助,一般后半部分phase vocoder, time/freq scale modulation都不会考到。另外,DSP大多数职位是偏硬件的,复习下computer
architecture的基本知识也比较重要。
关于问题
所谓技术面,也不一定全问技术问题。有时会问些behavior的问题,比如介绍下你自己啊,你的优点缺点,最喜欢的课,最不喜欢的课,xxxx。第一个问题经常会问,但如果被问到后面几个,而且问的面试官又不是hr的话,那。。间接说明你太不match了,人家都没什么可问的了。。
behavior问题的关键是要对自己的简历非常熟悉,特别是简历中提到的每个概念,每个概念可能的延伸概念,自己做的项目(用什么方法做的,达到什么效果)要非常熟悉,保证问到的时候对答如流。
技术问题,按照频率高低归结起来有:
1. FIR和IIR的区别?(几乎每个interview都问)
其实这是个很高深的问题。。普通的回答是FIR有限IIR无限。如果找实习,这么回答应该是ok的,找工作可能就有点。。hint是,可以从stable,时延的角度对他们进行深度分析和比较。
2. 那接下来的延伸问题是,如果你设计filter,会用哪一种?(为什么audio经常用的是FIR?因为可以产生linear phase)
其实就是阐明disadvantage和advantage的类似问题。
3. 和量化(quantization)联系在一起,会问,如果对FIR和IIR filter做量化,会有什么问题?
FIR怎么量化都是stable的,IIR就不一定了,可能一量化极点就跑出去了。这个在schafer爷爷的书里好像提到过。
4. 升采样和降采样的问题,可能会出个具体的数字问具体怎么做。
5. 量化问题。比如,量化会带来什么问题呀?(产生量化噪声啊)采样率double一下,量化噪声会不会降低呀?(当然啦)如果要达到xx的SNR,需要给信号多少bit呀?
6. 什么是causal系统,什么是stable系统?(实习高频问题)
7. 我有一个FIR filter,怎么转化为min-phase system?
因为任何system都可以分解成min-phase和all-pass。。。这个题当初被问到的时候,我答的是先得到FIR filter的magnitude,因为min-phase的log magnitude和phase是Hilbert变换对,所以可以根据FIR的magnitude得到新的phase组成min-phase system。。这个答案太高级了,面试官表示不知道。。。所以别想得太复杂。。
8. min-phase特点?
能量滞后最小
9. 怎么实现高阶IIR?
串联。。。当初又想复杂了,没答上来。。现在想想某个职位真是面得烂透了
10. 什么是filter bank?画个图吧
11. on-site可能会问IIR direct formI、II,并问II有啥好处?
有啥好处,省delay个数呗。
12. 列举滤波器设计方法?
加窗,Parks-McClellan等
13. Parks-McClellan 最优滤波器的设计标准?
这个最容易搞错了,应该是minimize
最大error
14. 对一个window,加长window,它的main lobe,side lobe有啥变化?
main lobe变窄,但是side lobe的roll-off rate好像不变?这个还是check schafer爷爷的书吧
15. 写DFT的公式。。
16. 用DFT对两个信号卷积?
关键是zero padding这个步骤
17. Hann window和Hamming window的差别?
我表示这是我遇到过的最奇葩的问题,现在还是不知道答案的精髓。。(当然系数不同是肯定的)
18. 关于量化问题,信号处理过程中产生的overflow问题。
19. NLMS和LMS。。。如果用过adaptive filter的话,这个是必问问题。还是别参考Ng筒子machine learning的可见吧,当初很开心的写了上面的公式,结果被告知有点定义上的错误。。
20. z-transform的问题,主要是零极点的问题。给零极点粗略估计滤波器是高通,低通,带通?cut-off freq在哪里?或者all-pass filter的零极点长什么样?
以及根据每个面试team正在做的proj不同,问些相关的DSP基础问题。
其实DSP技术面没所谓难不难,至少我见过的面试官,技术问不会问太难的问题。除非这种奇葩的情况:不太懂phase-vocoder非要写在简历上,结果被深入追问得特别惨。。不懂就别写嘛。audio处理可能会问关于phase处理的问题,这种问题我会觉得比较恶心,所以一般都说,我们课程做的东西比较肤浅,不care这个,嘿嘿。。。
其实audio界比较top的公司有Dolby和Bose,可能因为身份的原因,他们从来没有给过面试机会。相反只能面规模更大一些的公司,对国际学生比较友好。
最后的建议是,早起的鸟儿有虫吃,如果要找工作或实习,要越早越好,否则等到职位都被填满了,后续的竞争会越来越激烈。