Compiler Design |
C Compiler for RiSC-16 Microprocessor |
In this project, a C compiler for the microprocessor RiSC-16, a simple 16-bit RISC processor, is presented. This compiler supports main features of the C programming language and can be used for writing large applications for this processor. These applications include computationally intensive programs and even operating systems. Architectural configurations for the microprocessor could be verified using these programs. [More...]
|
User Manual | User Manual | Files |
Digital Signal Processing |
Filter Bank Design and Sub-Band Coding |
 |
In this project, a Quadrature Mirror Filter (QMF) Bank is designed with application to sub-band image coding. Then the result is extended to four-band filter bank. We first design the analysis filters and then find synthesis filters so that our system satisfies perfect reconstruction constraint. Simulation results show advantages and disadvantages of such a system. Next, a linear-phase FIR filter is designed so that perfect reconstruction constraint is retained. Properties of such a filter are demonstrated. At next step, a perfect reconstruction QMF bank with IIR analysis and synthesis filters is designed and simulated and pros and cons of the design are shown. We test the results of the above designs employing them for image sub-band coding. We extend the concept of 1-D filter banks to 2-D and apply filters to some sample images and try to get as high compression rate as possible by assigning less number of bits to bands with less energy levels. A performance evaluation measure is used for comparing different filter banks. And finally, previous experiments are extended to a four-band filter bank. 2-D filter banks are designed so that better performance is obtained in sense of less number of bits per pixel along with preserving image quality to a reasonable extent. [More...]
|
Project Report | Project Report  |
Linear Prediction and Synthesis of Speech Signals |
 |
Speech coding is the operation of transforming the speech signal to a more compact form, which needs smaller bit rate for transmitting over a communication channel. Generally, this transformation is lossy which means that the signal reconstructed from the compact form is not exactly the same as the original signal. Considering the dynamics and limitations of the human ear, one can develop some compression scheme such that to a human ear, the reconstructed signal sounds close enough to the original signal. In this project, we discuss the application of linear prediction to speech compression in details. Linear Prediction Coding (LPC) technique is employed to compress the speech signal. The basic idea of LPC is to transmit the prediction error (residue) instead of the speech signal. Since a linear predictor with properly chosen order can predict the signal with relatively small error variance, the power of residuals is effectively smaller than the power of the original signal. A MATLAB code is developed to perform this operation. [More...]
|
Spectral Estimation |
 |
Auto-correlation function is an important statistical function describing a stochastic process. This function describes the time-correlation between samples of a stochastic process. The corresponding frequency-domain representation of auto-correlation is power spectral density. By definition, power spectral density of a stochastic process is the Fourier transform of its auto-correlation function. Spectral estimation in general is the procedure of estimating the power spectral density of a random signal based on finite number of observations. The accuracy of the estimated spectrum is strictly related to the number of observations. Another important consideration regarding to the spectral estimation is that most often the observations of the signal are corrupted by noise. There are two main categories of spectral estimation methods, non-parametric or classical methods, and parametric methods. Historically, non-parametric method has been invented before parametric methods. This method and its modifications are based on direct computation of Fourier transform of observation vector. Parametric methods avoid of direct computation of Fourier transform, instead they try to fit a suitable model to the provided data. These methods generally have better characteristics. In this project, the power spectral density of four stochastic processes are estimated, based on observation vectors of length 64. Both classical and parametric methods are examined, with emphasis on parametric methods. [More...]
|
Levinson-Durbin Algorithm and Signal Modeling |
The Levinson-Durbin algorithm uses the autocorrelation method to estimate the linear prediction parameters for a segment of a random signal. This project is about implementing the Levinson-Durbin algorithm and modeling random signals using it. In first part, an optimal all-pole model for a process is designed provided the autocorrelation values. Next, the validity of the written function is verified on a sample provided process model by evaluating the autocorrelation. Finally, an unknown random process is modeled using the Levinson-Durbin method. [More...]
|
Digital Image Processing |
Color Calibration of Stereo Camera
|
 |
In many of the images processing and computer vision applications, we have more than one camera looking at the same scene from different view angles. One of these applications called Stereopsis involves two cameras viewing a scene. By using frames taken with these two cameras, we can extract depth information. By using color images we can gain more accurate disparity map; however since we need cross-correlation of areas in the two images to create disparity map, it is so important to have the two cameras color-calibrated. It means we need them to have same brightness, auto exposure, sharpness, white Balance, hue and saturation. This project presents a color calibration approach based on Least Squares Method. In this method, we try to find a filter model for each camera, which change the original image colors (RGB) and make the colors of the camera images. Then, by applying the inverse filter, we can make the two images as close to the original image so called canonical image as possible. [More...]
|
Robotics |
Manipulator Motion Planning using Spherical Modeling |
 |
One of the most important issues in robotics research is motion planning, finding a path for robot to traverse in order to arrive a determined position. The environment including some obstacles and the robot itself in its initial state are usually defined. Our goal is to find an optimal collision-free path. The two important issues in this problem are obstacle avoidance and path optimality. This project addresses these two problems with the goal of reducing the computation time and improving the accuracy.
As a first step, all the objects in the environment are modeled using a set of spheres in a hierarchical structure [del Pobil and Serna '95]. The next step is collision detection based on the above spherical modeling. Finally by reducing the problem into a set of two-dimensional mazes, the optimal map is estimated.
Four intelligent search methods including A* search, backtracking, graph search, and MLP neural network are simulated and their performances are compared. The proposed method is evaluated by modeling a Puma 560 manipulator.
|
Demo 1 | Demo 1 | Demo 2 | Demo 2  |
Computer Architecture |
Design By Constraint |
 |
In this project, a micro-architecture is designed using strength Pareto evolutionary algorithms. It includes using the simplescalar simulator and the wattch power consumption estimator. A genetic algorithm is employed to find the optimal configuration. The project is implemented in on a unix network where a set of process are initiated and communicate via TCP protocol.
|
Presentation Slides  |
Algorithms |
Camera Calibration |
 |
In this project, singular value decomposition and rank enforcement tools are employed to compute fundamental matrix for a stereo camera based on the geometry of stereo vision so called epipolar geometry. The report is designed as a term project for students in scientific computing course [More...]
|
Project Report | Project Solution  |
Red Black Tree |
 |
In this project, a red black tree is implemented and standard queries Search, Insert and Delete are presented. For each query, the complexity including the number of executed instruction in general case as well as in worst case is calculated. The program is written defensive enough so that Insert query can cope with cases that key already exists and Delete query considers cases where key is not found in the tree. A graphical view of the tree is generated so that the result tree can be seen. [More...]
|
Project Report | Project Report | Sample Output  |
Graphics |
Clustering of Points |
 |
Given a set of data points, their clustering and visualization of results is desired. We assumed that for each data point, we were given its position, its color, and its normal. We approach this project in three steps: rendering the input data and clustering results, clustering algorithms, and evaluation of the results. Two clustering algorithms are mainly focused: K-means and Fuzzy K-means. [More...]
|
Project Report | Demo 1 | Demo 2  |
Packaging System Simulation |
 |
In this project, a packaging system at the end of the line of a factory is simulated. This system has the capability of being cascaded to a sensor network which provides information about the timing of the actuators and package arrival time.
|
Demo | Demo  |
Web Programming |
Linkdune - The place to share links |
Linkdune is a made-up word constructed from the words link and dune meaning a hill or ridge of links. Linkdune provides a service that enables people to share their daily experiences on the Internet. Linkdune creates an environment to share links with others while considers and respects privacy and personal interests of its users. Linkdune is designed based on my following theorem:
Theorem (Locality of Interest): If a person likes a subject (or link), there is a good chance that his/her immediate family members and friends like it too. This probability of common interest reduces significantly with increase of distance.
I released Linkdne in the end of 2005, long before link sharing features of websites such as Facebook become popular. There are currently several groups at Linkdune where the most active one belongs to Iranian graduate alumni of the University of Maryland. Membership at Linkdune is currently by invitation only.
|
| Linkdune Website |
Back to Top |