I apologize in advance if this question is not suited to this forum.
I have a DSP background from school(graduate EE courses). I am good on theory, but have never worked on a real project. After graduating and spending 2 years working as firmware engineer, I come to realize that I want to pursue DSP and algorithms for my career rather than pure firmware coding. I want to develop a portfolio of projects that can show future employer that I can do this stuff. But I am a little short on ideas. Do you have any project suggestions?
Thank you very much.
A very simple project would be a one-bit sigma-delta DAC. You could use various constants as input and measure the DC output of a one-pole RC lowpass filter connected to the digital output. Then, you could use an NCO as input to the sigma-delta DAC, and measure the sine wave at the output.
How about making a karaoke machine with your own implementation of AutoTune?
Would you please elaborate?
I like demos to prove the point... maybe some sort of instrumentation, audio or image processing.
Say, simulate a soldier speaking into a microphone on a battlefield, with the voice signal contaminated by lots of background noise. Convert the signal into the frequency domain, use non-linear processing to clean it up, and reconvert back into the time domain for playback. http://www.dspguide.com/ch22/7.htm
For image processing, obtain (or generate) the security camera pictures of car license plates. These can be hard to read because of the low number of pixels across them, motion blur, the angle of viewing, and poor lighting. Show that you can correct some of these factors to make otherwise unreadable numbers now readable.
You have received some good suggestions but other than your current work in firmware, I have little idea where you might be starting. So, I'd start with first things first:
1) what platform are you going to be coding for? what platform(s) are likely for your target employers? How about a PC? How about a Raspberry Pi?
2) how much experience do you have implementing FIR filters? IIR filters? filtering by multiplication in the frequency domain?
3) I would start by building blocks such as these for the intended platform - with the intent that they would be used as subroutines or functions in a more system-level demonstration. After a few of these are in hand, you can start on a simple system implementation - and can decide when to begin your networking.
I might add that firmware engineering is more general (and more marketable) than DSP/algorithms. The latter is a subset of the former - specialized yes but marketable by itself less likely. Most companies have *a* DSP guru if that. Everyone else does it as needed with some help now and then.
A good idea for you:
Approach the companies you think will be likely candidates. Set up a meeting with someone senior in the company (e.g. VP Engineering) with the idea that you're doing a survey of DSP applications in their industry and other industries. You will be telling the truth in this. Ask for names of other companies and their senior people who might be at least as needy re: DSP.
Key questions in the interview would be: "How many DSP specialists do you have on staff?" "How likely is it that you, or others, would hire a DSP specialist?" "If not DSP specialists then who / how is your DSP work getting done?"
You will get at least three things out of this survey:
1) new names of companies and people
2) a sense for how likely your objective is to be successful
3) ideas for how to change your objective as you learn.
Thank you. Yes I have experience with FIR/IIR implementation on a DSP, but not more than that.
Firmware is more marketable but it's computer engineering rather than EE, and I don't like computer engineering much.
OK. Well, the suggestions still apply - only you can decide where to start and when.
Good luck with your pursuit!