Roger Piqueras Jover
Wireless Communications Engineer (Dipl-.Ing., MSc, MPhil)

 Main          Profile        Research         Blog           Links          LTE stuff       Code

(Note 06062018: This section has not been updated in over 7 years. It is now just cute stuff I did many years ago while I was a student.)


I will be posting here code from previous projects I worked on back as an undergraduate student or in school during my graduate student years. Feel free to use, re-use and share, but please reference me and this site if you do.

For several projects at work I have recently learned to code Arduinos and I am an amateur Android developer. In parallel, I am proficient in C++, Matlab and Python. I will share here tutorials to solve problems that I encounter as a developer as well as actual code of things that I do at a personal level.

Just FYI, I use Eclipse with for both Python - PyDev -, and Android development. For C++ (both raw coding as well as USRP development) I use Visual Studio and for Arduino I use the simple editor that comes with the reference material.


Note on cheating (just in case): Cheating is not the way. Do NOT use this code as yours and submit as a class project of any means. Feel free to use this code to learn and help you in your own project, or perhaps make your project a substantial expansion of this project. But think before you cheat. A professor googling your code will find this code, which was done in 2003, and you will be in trouble.


·       My very first C program ever: This was Fall 2000. I had never programmed in my life. In my first semester as an undergrad we had a programming class. This was one of the projects I did for it. It is a hangman game in C that runs on the shell. No graphics, just text.

·       LCD screen controller: I randomly dug out this code that I used back in my undergrad as part of a bigger project. This is the code to control a pretty standard LCD display that you can attach to, for example, an Arduino or another type of micro-controller.

·       Speech processing (in Spanish): This is the write-up for a project I worked on that aimed to automatically detect individual words (specifically, numbers from 0 to 9). The system samples the voice signal at a sampling frequency fm=8KHz. Then the signal is organized in frames of N=240 samples (30ms frames) with an overlapping of 120 samples (15ms). Then, we obtain the autocorrelation and, by means of a recursive algorithm and an LPC analysis, the cepstrum is derived. Specifically, in this project we improved the accuracy of the system by means of two new systems: 1) MFCC (FFT + FB (Mel filter bank) + LOG + TCOS-1) and 2) FF (FFT + FB + FF (frequency filtering)). The write-up includes the code for all the functions in the new system.

·       Background service on Android: I recently posted on my blog a very brief tutorial on how to put together a basic Android service running in the background and how to turn it on and off from the main activity. Not re-inventing the wheel, but the Android developer tutorial on this was very confusing to me and it has two versions of sample code, one of which does not work by itself.

·       Graphic online chat: This was the final project for a programming class back as an undergrad. Essentially, it is an online chat client and server where a user can choose an “old school” sprite and then move around a 2D scenario. Once you step in front of another user, the button “chat” becomes active and you can do IM with that other user. Contains all types of GUI Java constructions, socket programming, servers, etc.

·       Wavelet-based fabric texture characterization: Simple C script that requires a square image as input and, based on wavelet decompositions, determines the horizontal and/or vertical spatial frequency of the image pattern.

·       More coming soon…