IIT Delhi–logo

Heena Bansal

Indian Institute of Technology Delhi

Customized Processor for Stereo Accoustic Echo Cancelation
Minor Project, Spring 14

Currently working on this project.The objective of the project is to generate a xtensa customizable processor ao as to implement an adaptive Stereo Acoustic Echo Canceller (SAEC). I am working on the algorithms given in the papers:
  • Sheng Wu, Xiaojun Qiu, and Ming Wu, "Stereo Acoustic Echo Cancellation Employing Frequency-Domain Preprocessing and Adaptive Filter"
  • Trans. Gansler and J. Benesty, “Stereophonic acoustic echo cancellation and two-channel adaptive filtering: An overview,” Int. J. Adapt. Control, vol. 14, no. 6, pp. 565–586, Sep. 2000.


Automatic Flowchart Generator
Course Project, Winter 13

The project generates a flowchart of a ANSI C program which looks exactly the same as a person generates on paper but only neater and faster :).The flowchart is generated using svg and HTML being embedded in C++ to generate HTML pages. It also checks and reports the syntax error if any in the C file alongwith the line number. This goal is acheived in a very efficient manner using flex and yacc.


Multithreading library
Course Project, Winter 13

This library is the gateway for the user to create and manage preemptive threads at the user level. The user will be able to write different programs involving threads without worrying about thread management at system level. Semaphores and mutex implementations are also provided in the library for the user. The library works on 32 as well as 64 bit architecture.


3D multiplayer car racing game using OpenGL
Course Project, Winter 13

Created a multiplayer 3d car racing game which is playable on the LAN between any number of players.
Features:
  • Using opengl libraries, two tracks have been created and the user is given an option to choose from the two tracks on which he/she wants to play.
  • AI has been implemented in the project in the form of AI cars. The features of these AI cars is that they are kind of system generated cars and take turns and maintains the speed as per the user car and the track. Collision detection has been implemented among both the AI-AI cars as well as the AI car-User car. Physics : The wheels and the car body rotate as per the inputs of the user. It also has the features of velocity and acceleration. Also, there are several hurdles and bonus points on the track.
  • There can be multiple clients playing the game on different systems. The communication between the different clients is done using the inet addresses of the common server. The users playing the game will be able to see the scores and the cars of the other users playing on the same server. At the end of the game, server declares the winner of the game and broadcasts it to all the clients. Server is scheduling the packet receiving and sending using the pthread library.


ALLCONNECT GAME (Connect N M K, a generalisation of Connect 4)
Artificial Intelligence,Course Project, Spring 14

In AllConnect(n,m,k) our board is a vertical board of dimensions nxm. The players alternate as usual. However, the goal is to make a consecutive sequence of k of the same color. A final modification is that the game does not finish after the first k- sequence. Instead the game is carried till the end and finally all sequences of length k are counted for both players. Whoever made more sequences wins by that much margin.For choosing every next move, my client searches upto the depth 10 and then applies evaluation function at that depth. Based on the evaluation function, it applies Minimax and Alpha-Beta pruning. And Based on this, it decides what should be its next move. Both the Computer vs Computer mode and Computer vs Human mode are supported in the game.Besides this, I am working on improving the game strategy.


Suffix Trees Implementation in C++
Advanced Algorithms,Course Project, Spring 14

Implementation of the suffix trees based on Ukkonen's Algorithm. This implementation is in progress and I am constantly trying to make it more time and space efficient.