Featured Projects | Physics and Electronics | Mathematics | Miscellany | Telematics and Communications | Signal Theory

Soft-Mask Generation for Feature Compensation in Robust Speech Recognition

The present project is about the generation of soft masks by using noise estimates from a SIR particle filter and a spectral averaging-based simple method from files of noisy speech features. The resulting masks from both techniques are subsequently used in a feature enhancement stage in the log-Mel domain. By this way, the compensated speech features can be employed in the decoding stage of an automatic speech recognition system whose acoustic models are trained by using clean speech. Then, our wish is to compare the performance of both noise estimation techniques in terms of the recognition accuracy of the speech that is contaminated by environmental acoustic noise. With this procedure, it can be expected an increase of the performance of the speech recognizer regarding using directly the noisy speech features in the decoding stage of the system. All the given documentation is in Spanish.

Documentation | Presentation

Acoustic Noise Estimation Using Particle Filters for Robust Speech Recognition

The goal of this project is the development and evaluation of a SIR particle filter that is adapted to the estimation of acoustic noise from noisy speech observations in the log-Mel domain for robust speech recognition. These noise estimates are used in a VTS stage in order to obtain compensated speech features. Using the last ones, it is possible to augment the accuracy in terms of speech recognition with respect to use noisy speech features. All the given documentation is in Spanish.

Documentation | Presentation

Synthesizer of Music Scores for Choir

2nd placed project at the ‘2nd Technological Challenge’ organized by the DSTTC of the University of Granada, consisting of the development of an automatic synthesizer of music scores for choir. All the given documentation is in Spanish.

Members of the team: Iván Fernández Bermejo, Iván López Espejo and Santiago Prieto Calero.

Documentation | Presentation | Example

GuitarX Afinador

Program written in JAVA, to tuning guitars, released with the help of the Free Software Office of the University of Granada. Honor mention in PortalProgramas. We are currently working on a version of this program for the platform Android. You can access its space in Google Code at All the given documentation is in Spanish.

Installer (exe) | Project (NetBeans) | Presentation

Statistical Indoor Location System

2nd placed project with a special mention of the jury (best theoretical solution) consisting of the development of an indoor location system for the ‘1st Technological Challenge’ organized by the DSTTC of the University of Granada. My work consists of the design and deployment of the statistical modeling for the location recognition. All the given documentation is in Spanish.

Members of the team: Iván Fernández Bermejo and Iván López Espejo.

Documentation | Presentation

HMM-Based Query-by-Humming

The goal of this project is the designing and construction of a query-by-humming software system for the average user. The final realization of the prototype is through developing an appropriate front-end plus training a set of statistical models for the recognition task itself (HMM-based). All the given documentation is in Spanish.

Documentation | Presentation


Simulated Fabrication of a MOSFET Transistor Using SUPREM. August 2012. Example of simulated fabrication of an NMOS transistor using the software SUPREM. pdf_icon2 (Spanish)

Control of Traffic Lights with PLC. December 2011. In this text it is shown the result of experimenting with a programmable logic controller in order to create a little control system that consists of a traffic light regulator. It is attached a link to a video that shows an example of operation. pdf_icon2  videoicon (Spanish)

Introduction to Meter-Bus. May 2011. Introduction to the operation of the remote meter reading system that is standardized under the name of Meter-Bus. pdf_icon2  ppt_icon2 (Spanish)

Design of a Platform for the Measurement of Light and Temperature. January 2011. Document that presents the development of an instrumentation platform for the measurement of ambient light and temperature, which is based on the use of the microcontroller PIC16F876 of Microchip. pdf_icon2 (Spanish)

Digital Set Top Boxes. January 2011. Documentation that describes the basic operation of the digital STBs. pdf_icon2  ppt_icon2 (Spanish)

Design and Implementation of a 4-bit D/A Converter. September 2010. This work presents the design and the construction procedure of a 4-bit DAC. A document with the explanation and a schematic file for PSpice are given. pdf_icon2  spice_icon (Spanish)

Combat Robots. January 2010. Presentation about combat robots. pdf_icon2 (Spanish)

Frequency Generator in VHDL. November 2009. Simple VHDL code for obtaining, via hardware, the functionality of a frequency generator. It is adapted to a reference clock signal of 25.175 MHz to generate signals from 1 kHz to 16 kHz with a 1 kHz step. txt_icon

Pulse-Width Measurer. September 2009. Schematic for Proteus and C code for the programming, in a microcontroller, of the functionality of pulse-width measurement (this version is not based on timer). rar_icon

Square Wave Generator. August 2009. Example of design and operation of a square wave generator op-amp-based. rar_icon

Electronic Dice. August 2009. Schematic for Proteus and C code for the programming, in a microcontroller, of the functionality of electronic dice. rar_icon

Microcontroller-Based Security System. August 2009. C code and schematic for Proteus of a security system with several functions centralized on a microcontroller (access control, temperature alarm…). rar_icon

DC Stabilizer. April 2009. Example of design of a 12 V DC stabilizer from a variable input around 15 V. A schematic for PSpice and a snapshot of the physical implementation of the circuit are given. rar_icon

Intel Atom. April 2009. Presentation about the microprocessor Intel Atom (collaboration project with J. Prados Garzón). ppt_icon2 (Spanish)

Implementation of an AM Radio. March 2009. Brief description and schematic for the construction of an AM analogue radio. pdf_icon2 (Spanish)

DC Converter. March 2009. Simple design of a direct current converter op-amp-based for simple circuits. rar_icon

Butterworth Filter Design. January 2007. Little application programmed in JAVA for the design of low-pass Butterworth filters. rar_icon


List-Wise Learning to Rank with Matrix Factorization for Collaborative Filtering. April 2012. Scalable extension to the matrix factorization approach that is applied to collaborative filtering and it is called ListRank-MF. pdf_icon2 (Spanish)

Implementation of the Extended Euclidean Algorithm for MatLab. June 2011. Function for MatLab that implements the Extended Euclidean Algorithm. The mentioned method is able to express the greatest common divisor of two numbers as a linear combination of these ones according to a Diophantine equation. The algorithm is also useful in order to calculate multiplicative inverses in the ambit of modular arithmetic. ml_icon

Miller-Rabin Primality Test. March 2011. Code and executable of a program written in JAVA for the classification of a natural number into prime or composite according to the Miller-Rabin primality test (this one is very useful for the generation of prime numbers with a large amount of digits for their use in cryptosystems). rar_icon

Study About the Probabilities of the Hands in Poker. July 2010. JAVA code that verifies, using brute force, the correct order of the hands in poker according to their probabilities of appearing. rar_icon

Converting Complex Numbers in MatLab. July 2010. Simple function for MatLab whose mission is to convert a complex number in polar form into a complex number in orthogonal coordinates. ml_icon

Otsu’s Method. June 2010. Presentation about the Otsu’s method for segmentation by thresholding. ppt_icon2 (Spanish)

Chinese Mathematical Problem of Trigonometry. August 2008. Solution to the Chinese selectivity mathematical problem of trigonometry by which the British Royal Society of Chemistry offered 730€ to every British student of equivalent level that could solve it. pdf_icon2 (Spanish)

Basins of Attraction with Mathematica. April 2008. Representation in Mathematica of different basins of attraction for the equation x4-1 in the complex plane by using colors when its roots are sought by using the Newton-Raphson method. mat_icon

Period of a Function Composed by Periodic Functions. January 2007. Demonstration and examples about the calculation procedure of the period of a function that is composed by periodic functions. pdf_icon2 (Spanish)


I³ Image Editor. February 2012. Application developed in JAVA for the basic treatment of images (control of bright and contrast, filtering, enhancement, color inversion, edge detection, etc.). The NetBeans project, a user level document and the executable JAR file are given. rar_icon (Spanish)

Reflections about Teleportation. September 2010. Document that presents some reflections about how a future teleportation system could be made, including the text some brief comments about its philosophical implications. pdf_icon2 (Spanish)

Raft Game. July 2009. Code of the solution, programmed in JAVA, to the classic raft game. In this one we must cross, from one riverside to the other one, three wolves and three chickens in the terms explained into the presentation file (in Spanish). rar_icon

Fractal Music. June 2009. Presentation about fractal music. ppt_icon2 (Spanish)

Gold Coast Spiral. May 2009. Code and executable of the shooter video game developed in J2ME for mobile phones. rar_icon

JawBreaker. June 2007. Code and executable of this game programmed in JAVA that consists of the deletion of adjacent color balls until the greatest amount of them are deleted. The more balls of the same color are deleted at once, the more score is achieved (collaboration project with J. Prados Garzón). rar_icon


Joint Source Coding and Transmission Power Management for Energy Efficient Wireless Video Communications. April 2012. Presentation of techniques that allow the reduction of the energy of transmission while sending video data and that guarantee a sufficient quality and a tolerable delay from jointly adjusting the coding parameters of the source and physical layers. pdf_icon2 (Spanish)

Content Delivery Networks. January 2012. Presentation and description of the systems that are known with the name of content delivery networks (CDNs), whose mission is to replicate, usually, multimedia data along several nodes within a network in order to reduce the latency that the user experiences in content retrieval. pdf_icon2 (Spanish)

Introduction to RADAR. April 2011. Documentation that explains the basis of operation of RADAR systems. pdf_icon2  ppt_icon2 (Spanish)

How to Find Out a WEP Key with Linux Back Track. December 2009. Tutorial in which it is shown how to find out a WEP key of a wireless network that uses this kind of ciphering. pdf_icon2 (Spanish)


Vehicle Plate Recognizer. October 2015. Implementation for MatLab intended for vehicle plate recognition based on both PCA for feature extraction and neural networks for classification. rar_icon

Motion Estimation. March 2012. Document that presents some techniques of motion estimation in images (collaboration project with J. Prados Garzón). pdf_icon2 (Spanish)

Gaussian Generative Probabilistic Modeling of 2 Classes with Parameter Estimation by Maximum Likelihood. March 2012. Deduction of the estimation by maximum likelihood of the parameters corresponding to the probability distributions of a Gaussian classification generative probabilistic model of 2 classes and equal covariance matrices in order to calculate the hyperplane of decision for the classification of samples incoming to system. pdf_icon2 (Spanish)

Comparison Between the Application of DCT and KLT to Audio Compression. January 2012. Document that shows the methodology and results derived from the application of DCT and KLT to audio signal compression. pdf_icon2 (Spanish)

Comparison Between the Application of DCT and KLT to Digital Image Compression. December 2011. Documentation that presents the methodology and results derived from the application of DCT and KLT to digital image compression. pdf_icon2  ppt_icon2 (Spanish)

Computation of Optimal Weights in Linear Equations for Estimation on Random Processes. September 2011. Demonstration and definition of the computation of optimal weights in a set of linear equations that are intended for the estimation on random processes. pdf_icon2 (Spanish)

JAVA Class with Audio Processing Methods. March 2011. Some of the implemented functionalities are: PSD calculation, energy calculation, Hamming windowing, filtering, autocorrelation calculation, LPC analysis, etc. javaicon

Check if a Random Sequence Follows a Gaussian Distribution. December 2010. Function for MatLab that is intended to estimate if a sequence of random samples fits well or not, given an empirical threshold, a Gaussian distribution. ml_icon

SIFT Pitch Detector. November 2010. Function for MatLab that implements a pitch detector that is based on the SIFT algorithm, which analyzes the autocorrelation function of every frame after filtering in order to preserve only the excitation component according to the fundamentals of LPC analysis. ml_icon

Neural Network-Based VAD. November 2010. Artificial neural network-based voice activity detector for MatLab. The neural network is trained by backward propagation. The feature vectors from the frames (that are used for both training and classification) are composed by 12 cepstral coefficients plus one of spectral entropy. Apart from the code, a file with training patterns for the neural network (being possible substituting and improving it) and some graphics showing an example of performance are given. rar_icon

ITU-T G.722 Sub-band Encoder. November 2010. Functions for MatLab that are useful for audio coding and decoding in subbands according to the G.722 standard. rar_icon

Maximum Peak Detector. November 2010. Function for MatLab whose functionality is returning the position of the maximum peak detected (slope-based) within a set of samples (it is useful, for example, for the estimation of the period of a signal from its autocorrelation function). ml_icon

Linear Prediction with Backward Adaptation. October 2010. MatLab code that implements the functionality of linear prediction with backward adaptation. It is useful for the prediction of samples in stationary random processes. ml_icon

Harris Corner Detector. October 2010. Detector of relevant points according to the Harris algorithm programmed in C++ making use of the library OpenCV. rar_icon

Methods for Improving the Contrast in Images. August 2010. Functions for MatLab that implement the algorithms of Moroney, Sakaue and the version with bilateral filtering of the Moroney’s algorithm for improving the contrast in grayscale or color images. Also, a code for MatLab that implements the computation of the bilateral filtering is given. It is recommendable to read the related information and papers. rar_icon

Automatic Music Score Recognition. June 2010. Work that shows a basic system for automatic music score recognition where these music scores are very simple and no manuscripts, being these ones presented in some image format. A descriptive document (in Spanish) and the code for MatLab with examples are given (collaboration project with J. Prados Garzón). pdf_icon2  rar_icon

Zoom for MatLab. May 2010. Simple zoom for MatLab that can be used with grayscale images. ml_icon

Image Smoothing. March 2010. Algorithm for the smoothing of edges in digital images. A descriptive document (in Spanish) and a function for MatLab are attached. pdf_icon2  ml_icon

Histogram Equalization. March 2010. Code for MatLab that implements the functionality of histogram equalization in order to improve contrast in grayscale images. ml_icon

Estimation of the Period of an Unknown Signal. February 2010. Function for MatLab for the estimation of the period of a periodic signal, whose mentioned parameter is unknown, from the calculation of the autocorrelation of the signal. ml_icon

Text to Speech Converter. January 2010. Presentation in Spanish (this one includes some functions for MatLab) where it is shown a diphone segmentation technique and its extension to the construction of a very simple text to speech converter. Some examples resulting from the use of the prototype are attached. ppt_icon2

Non-Linear Filter for the Enhancement of Images Contaminated with Salt&Pepper Noise. January 2010. Text (in Spanish) and function for MatLab where it is shown a simple idea for the definition of a non-linear filter that is intended for the enhancement of images contaminated with salt&pepper noise. pdf_icon2  ml_icon

Echo Simulator. December 2009. Function for MatLab for the simulation of the echo generated in a rectangular empty room by a sound source that is placed in a particular position inside the mentioned room. The code with some information about its way of use and an example of its application are given. rar_icon

White Noise Generator for JAVA. December 2009. JAVA code that implements the functionality of Gaussian white noise generation through controlling the mean and variance. rar_icon

Wiener Filter. December 2009. MatLab function for the calculation of the coefficients of a FIR filter according to the Wiener’s method oriented to noise cancellation. ml_icon

Digital Signal Modeling. November 2009. Functions for MatLab that implement the methods of Padé, Prony and Shanks that are useful to obtain the coefficients that model a digital filter from the definition of its impulse response in the time domain. rar_icon