After 5 weeks of coding it’s time for the midterms and to have a look back and see what I have accomplished. Let’s have again a look at the milestones:
- Prototype signal detection algorithms in python and evaluate best approach to implement
- Implement signal detection algorithm in C++ and wrapping it in a new block
- Create first GUI with QWT and QT with graphical feedback of signal detection block
- Verification with over-the-air signals
- Documentation for the mentioned components
All of the mentioned milestones could be accomplished thanks to the great help of my mentors. Read here about the details. If you want to check out the inspector, feel free to use the master branch of the official repo.
The signal detection was first prototyped in python. I used a basic energy detection with threshold as parameter or with a automatic threshold calculation. The block was then implemented in C++. It takes the input signal and outputs the estimated PSD along with a message that includes the center frequencies and bandwidths of detected signals. Read more about this in the previous blog posts.
I tried to perform a detection with over-the-air signals of local radio stations. Depending on the signal type, automatic threshold calculation is not always an option, since it only works for steep signal edges, which is not the case generally. Detection with manual threshold detection worked nicely.
The GUI has made great progress in the last time. We have now the possibility to have signal edges and centers displayed along with info text including frequency values.
Also, a manual mode allows users to pick these values by hand per drag & drop. As you can see, the left signal was not recognized completely since it has too low power at its edges, so lets tune to that manually:
ToDos for the GUI are:
- Add functionality to manual signal selection (it’s only visual for now)
- Zooming & datatip functionality
The documentation of this module was written with help of doxygen. When building the module, the documentation is automatically generated in build/docs/doxygen/html/index.html. All the GNU Radio blocks are described there along with some general information about the module.
In order to have a nice working state for the next tasks, these ToDos should be finished:
- Finish GUI with all gimmicks (zommer etc.)
- Cleanup Signal Separator block and write QA test
After this has been done, I can proceed with the tasks that are needed for the final milestones. Since another SOCIS student, Christopher Richardson, is working at this project and has begun to implement AMC functionality, the final milestones might change for me. Currently, a OFDM recognizing and analysis block is an option, but I will give more info on that when me and my mentors have discussed the details.
In consultation with my mentors, I registered for GRCon 2016. If everything works out fine, I will be able to present my project there with a talk and a poster. I’m really looking forward to that!