Independent thesis Advanced level (professional degree), 20 credits / 30 HE credits
We have different kinds of signal processing everywhere around us in our everyday life, in our cellphones, when we are listening to music, watching TV etc. This makes signal processing a very interesting and important technical area, where the demand of skilled engineers sets the limit of what is possible.
Working with signal processing requires in-depth knowledge in areas such as mathematics, physics, electronics, and other related areas. For this, it has traditionally been demanded by a talented developer to also master the advanced programming languages such as C / C + + and Assembler.
This has begun to change; today there are several companies that offer graphical development environments for signal processing, environments where programming skills are not needed anymore, and the focus can be on signal processing instead.
The goal with this project is to build a corresponding graphical development environment to reach an understanding of what is required of these systems, and also to grasp what opportunities that are available within graphic programming. Inspiration for the work has partly arise from some of the tools available on the market, and partly from previous theses that have been written about graphic programming.
The challenge lies in creating a program that can execute signal diagrams in real time from given signal blocks, and be able to handle feedback loops in an efficient way and to do so at the lowest "cost" in terms of clock cycles as possible. This should also be compared against to code, compile and run a complete signal diagram directly.
To increase the usability it should also be possibility to externally manage in real time the parameters of the signal diagram during execution.
The interface is a separate program, which is to some extent similar to Matlab Simulink, where a signal diagram is drawn up graphically by connecting wires between different signal blocks. This signal scheme is then executed in an additional program that serves as a runtime environment. In this report, the term "signal engine" is used for this program.
Signal engine is equivalent to the program that should have been run directly into a standalone DSP (Digital Signal Processor) if a more classic design had been selected, but now runs as a separate process in Windows.