« Previous -
Version 22/88
(diff) -
Next » -
Current version
Johnathan Corgan, 02/17/2012 11:31 pm
Minor typo fixes
Google Summer of Code (GSoC)¶
GSoC is a Google-sponsored event to get students involved in Open Source projects (Website)
- Google Summer of Code (GSoC)
List of ideas¶
Please post project ideas here. Make sure to include a description of the project, ideally including prerequisites and an expected outcome. For an idea how this could look like, check out the KDE idea list.
Projects are sorted by category. If you feel your project idea does not match an existing category, create a new one. If you're posting an idea, consider if you can mentor this project, and put your name down.
Some of these projects require access to one or more USRPs plus daughterboards (or other radio measurement equipment, such as oscilloscopes). If you apply as a student, make sure you have access to these devices. We cannot provide USRPs for everyone.
GNU Radio Development¶
Integration of GNU Radio into Eclipse.¶
Details: Create a development environment for GNU Radio based on Eclipse (see also: Call20120119). The goal is to make the entry point into GNU Radio easier for beginners. The Eclipse extension could help in the actual coding process (e.g. code completion, knowledge of GNU Radio modules etc.) but also provide graphical tools (possibly a GRC integration).
Mentor: tba
Applications¶
DRM-Receiver¶
Or: GNU Radio-fying the DRM software radio DREAM.
Details: DREAM is an Open Source implementation of DRM (Digital Radio Mondiale), a digital replacement for short- and medium-wave broadcast. This could be ported to become a true GNU Radio flow graph. Possible extension: DRM+
Knowledge prerequisite: Signal processing, some C++
Mentor: Jens Elsner (CEL, KIT)
Vector-network analyzer¶
Details: Build a vector-network analyzer app (qtgui based) that can show PSD, constellations, maybe other representations of the signal. Demodulate some basic modulation schemes (BPSK, QPSK, GMSK, QAM, etc.).
Mentor: tba
Channel Sounder¶
Details: Channel sounding describes the process of measuring a multipath propagation channel and obtain information about excess delay, Doppler spread and fading properties. The final product should make use of USRPs for channel sounding (the high timing constraints require use of the FPGA) and provide a complete measurement tool which can be used to gather statistics about mobile communication channels.
Knowledge prerequisite: Digital signal processing basics, FPGA basics
Access to USRPs required.
Mentor: Johnathan Corgan
GNSS Receiver¶
Details: Global Navigation Satellite Systems provide location and timing information to users based on the synchronization of signals coming from different satellites of a given constellation. Recently, the modernization of GPS and Glonass, and the advent of the European Galileo and Chinese Compass/Beidou, open a new scenario with a bunch of new signals and ways to combine them in order to improve accuracy and reliability of navigation receivers. This project aims to develop an open-source, freely available tool able to provide precise positioning and timing to users by taking advantage of existing (or forthcoming) civil GNSS signals. A first step, consisting of a GPS L1 software receiver, is currently being developed at (GNSS-SDR) using the GNU Radio framework (C++ only).
Knowledge prerequisite: Digital signal processing basics, modern C++ style (with C++11 in mind)
Mentor: Carles Fernández-Prades (CTTC), more mentors available.
(Digital) Signal Processing Components¶
Extend and improve the filter design components¶
Project description: This project has two main sub-components:
- Extend and test the filter design routines
- Improve the user interface
The first part requires some in-depth knowledge of digital filter theory, so some DSP knowledge would be very useful. The most critical missing component in the current filter design methods (and therefore one which should definitely be approached during this project) is a method to estimate the number of required taps for the Parks-McClellan method of filter design, given a tolerance mask. Also, there are filter types which are not at all designable with the current tools, e.g. half-band filters, cascaded filters and all types of IIR filters.
In its current state, the filter design code is not filled with an abundance of unit tests, and some 'fringe' examples of filters may not even work. This would be a good time to add some filter tests and maybe crush some bugs.
The user interface also needs improvement. In the current state, there's a graphical filter design tool (gr_filter_design.py), but that could be greatly improved (starting with including the newly developed filter design methods). However, the GUI offers graphical possibilities for filter design which go beyond the mere filter design algorithms, e.g. mouse-draggingg poles/zeros (and then seeing the filter response change graphically in a different window), or sketching filter responses and then checking how well such a filter can be designed. A good example of a GUI for filter design is fdatool which comes with Matlab, but who says this is how the best GUI should look?
Of course, the UI doesn't stop at gr_filter_design.py. Since filter taps are rarely needed by themself, but rather as part of a flow graph, the integration of the filter design in the rest of GNU Radio is something to consider. GRC should be able to make use of the GUI to import taps directly into filter blocks, and maybe the filter design code exposed to the Python and C++ domains could be more user-friendly.
If you apply for this project, it is not expected that you do every single item in this project description, it is meant as a starting point (but also a guideline). Own ideas regarding the filter design components are encouraged, and since some flaws will only come to light while working with this module, it might expose further to-do items.
Knowledge prerequisite: Digital signal processing (esp. digital filters), some C++ & Python
Mentor: Martin Braun
Generic compressive sensing framework¶
Details: By correlating the incoming signal with pseudo-random sequences, it may become possible to obtain the entire 100 MHz spectrum at once via Ethernet, albeit in a different base than the usual regular sampling time base. One proven application for this is Compressed Spectral Estimation. This project includes developing an FPGA image to correlate with pseudo-random sequences.
Knowledge prerequisite: Some FPGA experience, basic digital signal processing
Mentor: tba
USRP/Hardware related projects¶
AGC loop for the USRP.¶
Details: Make an AGC loop for the USRP (i.e., in hardware with direct, low-latency control over analog gain stages).
Access to USRPs required.
Mentor: tba