List of projects

It is possible to choose your topic (which is also preferred), as difficult as you see fit. Rather than the complexity of the topic, the way how the student implemented the problem in Matlab will be evaluated (see criteria HERE). Please look at the projects as a chance to practice your habits in Matlab ;-)

Project example

Animation of electromagnetic field

This project allows you to compare and animate the electromagnetic field emitted by point sources, or plane waves. Field sources can be entered any amount. Each source is defined by radiated power, initial phase, position and azimuth. The azimuth is only used to replace the point source by a plane wave that radiates from the specified azimuth. You can also select solution space in which the field will be calculated and you can define slices through this space. Fields along slices can be analyzed in separate graph. The displayed field is in the XY plane for Z = const. All considered point sources are also in this plane. All sources have the same polarization. The project allows to consider three approaches to field generation: point source with consideration of field attenuation in space according to 1/R^2, point sources without field drop along the distance and plane wave. The main.m file is running in MATLAB 2020b or later. The project serves as an example of an above-standard semester project, which would be evaluated by the full number of points.

spherical_vs._plane_wave.zip

Project proposals

For most projects, at the end of the description in parentheses is the abbreviation of the name of the teacher who created the assignment and is responsible for the project. Consult this project with this person on an ongoing basis - the description of the project is not considered to be the description below. Still, only the specific form agreed with the teacher!

Abbrevation Name E-mail
MC prof. Ing. Miloslav Čapek, Ph.D. miloslav.capek@fel.cvut.cz
VA Ing. Viktor Adler, Ph.D. adlervik@fel.cvut.cz
VL Ing. Vít Losenický losenvit@fel.cvut.cz
MM Ing. Michal Mašek michal.masek@fel.cvut.cz
LJ doc. Ing. Lukáš Jelínek, Ph.D. lukas.jelinek@fel.cvut.cz
VN Ing. Vojtěch Neuman vojtech.neuman@fel.cvut.cz
JL Ing. Jakub Liška jakub.liska@fel.cvut.cz
JT Ing. Jonáš Tuček jonas.tucek@fel.cvut.cz
SB Ing. Štěpán Bosák stepan.bosak@fel.cvut.cz

Apps

  1. Any custom theme. However, it is necessary to consult the topic first and make an agreement on the content of the project.
  2. Reference converter and parser (MC)
    • Propose a scheme for automate conversion of DOI (unique identifiers of scientific papers) to LaTeX bib format. Project will utilize web API and remote control of web converter. Downloaded entries will be parsed and written into bib file.
  3. Mortality statistics of the population of the Czech Republic (VA)
    • Create an interactive browser of mortality tables from the years 1920 - 2018 from the Czech Statistical Office. The tool can take many forms; you can display, for example, the number of deaths at a particular age depending on the year, allow comparisons between men and women, display the population of a given age, the relative probability of death at a certain age, the frequency of deaths depending on the season, etc.
  4. Creating a simple application that will do anything (text editor, image editing, calculator, audio editing, …), but will support history and its editing. (VA)
    • The application should have a “Back” and “Forward” button and a command history editor that allows you to delete and move items in the history and then execute the entire history.
  5. Interactive editor of RLC circuits, including the creation of jumpers and the generation of the matrix form of the resulting connection (VA)
  6. Creating and displaying a Smith diagram (VA)
    • The task is to create a function that displays parametric circles in the polar axes (polaraxes function) as is common with Smith's diagram (wiki). Only a few circles are enough for the most important relative values of reactances (eg 0.1, 0.3, 0.5, 1, 3, 5, 10, …). The function must also be able to plot the image coefficient in the Smith diagram thus created, which will be one of the inputs of the function in the form of a column vector. The next of the inputs will be frequency points. There must be some controls in the graph window (setting lines, markers, switching impedance/admittance diagram, etc.).
  7. Random walk of several agents in a limited area (MC)
    • At the beginning, consider agents randomly distributed in a given area (“drunks”), who move around the delimited area (“park”) randomly. Generate their motion, display it, analyze the average values (speed, position) and develop techniques for keeping agents inside areas (reflective wall, absorption wall, …).
  8. Type reader/writer for 1D and 2D geometry for * .dxf, * .svg and * .eps (MC)
  9. Processing of *.gpx files with data from GPS receivers (VA)
  10. Evaluation of signal parameters (VA)
    • Analyze whatever time-dependent signal you like (electrocardiogram - EKG, sound, music, temperature, sea-level, …)
    • Load the signal from file, show signal in a graph and analyze signal's basic parameters.
  11. Control of any device/toy/kit from Matlab (VA)
    • Whatever comes to your mind. But you must have your own controlled device. E.g., you can write a GUI to control a device on the popular Arduino platform because Matlab natively allows you to send and receive messages over a serial line (function serialport).
    • This is mainly a final project for the MATLAB course, i.e., the project will be evaluated from the point of view of Matlab and not, for example, from the Arduino language. From this point of view, Arduino should only work as an executor of orders, and as much of the project as possible should be handled in Matlab.
    • Use the class Serial to receive and send messages via the serial line to Arduino.
  12. Simulation of the motion of bodies in the solar system (VA)
    • Calculation and visualization of the trajectory of bodies of the solar system from the elements of the path of bodies. It is not absolutely necessary that the position of the planets exactly corresponds to the selected date. But try to observe the parameters of elliptical orbits and orbits of planets. Represent the planets somehow nicely and allow you to change the speed of the motion simulation. Required data: http://ssd.jpl.nasa.gov/?planet_pos
  13. Oscilloscope in Matlab (VA)
    • Implement a simple oscilloscope that will display signals from the sound card input. Use class audiorecorder ( example).
    • The oscilloscope should be reasonably usable, so to display periodic signals, it is necessary to ensure the adjustment of the vertical and horizontal scale and the triggering of the time base to the edge of the signal. The trigger level should also be adjustable.
    • Try an effective implementation, where the image is redrawn, for example, a maximum of ten times per second, even if it would be more common for some timebase settings.
  14. Vector meter of impedance and transmission of circuits using a sound card (VA)
    • An unknown circuit will be excited by the output of the sound card, and the output signal will be recorded by the input of the sound card. By analyzing the signals, you evaluate what impedance or circuit transmission has been connected. It is necessary to solve incl. calibration. The program can be designed, for example, especially for measuring audio amplifiers, incl. evaluation of THD distortion, etc. Use class audiorecorder ( example).
  15. Matlab console (tokenizer) (MC)
    • Develop a simple GUI that allows you to enter (load) a text string. Then process it inside the program, which will then execute the specified commands.
  16. Rendering and animation of the Lorenz attractor (MC)
  17. Create an application that allows you to load a base object and then apply the specified symmetric operations to it and create an overall structure. (JL)
  18. Statistical analysis (VA)
    • From any sufficiently representative sample of any data (wind direction, temperature, sewage flow, lighting intensity, number of shop visitors, animal population, …) calculate and display statistical parameters (distribution function, standard deviation, mean, median, quartiles,. ..). In the application, enable data loading and interactive change of displayed parameters.
  19. Splitwise in MATLAB (JT)
    • Create an app that allows you to create a shared payment bill for a group of people (e.g., for a trip together). Design an algorithm to optimize the number of payments that must be made to settle the billing (you can be inspired here).
  20. *.gpx file editor (JT)
    • Create an application that allows you to modify *.gpx files (modify the recorded route: trim the record, change the position of the recorded points, …)
  21. Orienteering run analyzer (JT)
    • It implements an application that allows you to analyze and compare the running of several runners (you can be inspired by 3Drerun).
    • Allow to load and calibrate the scanned/photographed map, set the playback speed, the size of the tail behind the runner, time synchronization, …
  22. Analog Filter Designer (VN)
  23. Digital Filter Designer (VN)
  24. Spline Drawing Tool with export to LaTeX (VN)
  25. Creator of HDR (high dynamic range) photos (VA)
    • Program an application which can load several images of the same scene with various exposures and combine them into single HDR image.
    • Allow the user to set some parameters to affect the look of the resulting figure.
    • Allow to save the final HDR image in common file formats.
  26. Detector of modified images (fake-news) (VA)
    • Create an application which can magnify part of the image under a mouse cursor.
    • Adapt contrast, magnification, color gradient, … to detect modifications in the original image.

Audio / Video

  1. Simplified piano in Matlab
    • Generate the necessary piano tones in Matlab, then process the keyboard input (“keyboard”). Try to find a suitable signal envelope to eliminate the synthetic sound of the keys.
  2. Icon editor (VA)
    • Painting icons with dimensions 16×16 px and their export for use in uipushtool for creating your own menu.
  3. Creating a panoramic photo (VA)
    • Create an application where it is possible to: load individual figures of a panorama scene, set figure's parameters if necessary, create a panorama from figures, set proper crop of final panorama, save figure as standalone file. Workflow can be modified as needed.
  4. Tuner of musical instruments (VA)
    • Use the sound card input. Use class audiorecorder ( example). When defending the project, it will be required to demonstrate the functionality of a tuner with a real musical instrument. Keep the tone frequency analytically calculated in the project (wiki).
  5. Vectorization of bitmap (scanned) graphs (VA)

Games

  1. Programming a simple “snake” game in Matlab (JL)
  2. Chess (JL)
    • Draw a chessboard, incl. the correct description of the axes. Next, place pieces (e.g., pictures) on this chessboard. With these pieces, it will be possible to move according to the rules of chess.
  3. Space Impact Game (VA)
    • A simple implementation of the game Space Impact known from older Nokia mobile phones
  4. Tetris (VA)
  5. Battleship (JT)
    • Try to formalize and implement a ship game in Matlab. Your opponent will be a computer that chooses positions pseudo-randomly (or pseudo-randomly with respect to the last successful hit).
  6. Arkanoid (JT)
  7. Quoridor (MC)
    • Implement a game board, enter tiles and control a piece, try to find a primitive game algorithm.
  8. Hnefatafl or another version of the Old Norse board game wiki (JL)
  9. Any game using the transportation network system, e.g. Pocket Trains (JL)
    • suitable to work with OOP, timers
  10. Sokoban (JT)
    • suitable to work with OOP, timers
  11. Display and automatic solution of a Rubik's cube (VA)
  12. Billiard game (JT)
  13. Worms (JL)
  14. Create a game that uses a hexagonal playground, see Implementation notes (JT)
  15. Lunar lander game remake (JT)
  16. Memory Game with simple AI (VN)
  17. SUDOKU game, loading the puzzle from the file, user game, following the rules (JT)

Numerical calculations

  1. External ballistics (VA)
  2. Calculation and display of the Foucault pendulum at various points on the planet (VA)
    • Distribution of N equal charges on the surface of the sphere so that they have an overall minimum potential electrostatic energy.
  3. Finding the intersections of general curves given by an analytical formula (MC)
    • Numerically, without the use of a symbolic toolbox.
  4. For a general body (given by boundary points), find such a center describing the sphere so that this sphere is the smallest possible. Then move the body so that it is inside this sphere, which is centered in the center of the Cartesian coordinate system. Display the body before and after moving it together with the wrapping ball. (MC)
  5. Tool for displaying and calculating EM tasks using the method of mirroring + visualization (MC)
  6. A generalized solution of loop currents / nodal voltages (MC)
  7. Calculation of geometric and physical center of gravity of an object/system of objects (MC)
  8. Multicriteria optimization (PSO / GA), including a display of the resulting Pareto front (MC)
  9. Nelder-Mead optimization (MC)
    • Create a simplified algorithm of simplex optimization (space is searched using simplex with the help of its successive transformations.
  10. Spline interpolation of the specified name using curve extremes (MC)
    • The program writes the entered text string to the window (figure), then using the ginput function, the vertices of the spline curves will be entered. The task will be to properly parameterize these curves so that the original text is reconstructed as best as possible.
  11. Excitation of waves on a 2D surface (solution of a wave equation using FDTD) + visualization (MC)
  12. Swarm optimization (MC)
    • Study the swarm optimization algorithm (PSO) and try to implement it for the case of one-criteria, multidimensional optimization.
  13. 1D 3rd-degree interpolation (cubic) (MC)
  14. Finding the minimum of a function using a gradient algorithm and its modification to find the global minimum in the presence of a series of local minima (e.g. function or f (x) = 1 - cos (x) + x ^ 2 / a ^ 2 on the interval x = [-a, a]) - Monte Carlo, stochastic algorithms (MC)
  15. Simplified Ray Tracing method for studying beam propagation (MC)
  16. Create a simple tool to calculate the charge distribution on a surface (MC)
    • It will be possible to create the surface using a simple GUI; the calculation of the charge distribution can be based, for example, on the knowledge of Coulomb's law and superposition (the calculation will be performed iteratively). The result will be a visualization of the current position of all charges (the number and initial position will be entered by the user), as well as the direction of their movement.
    • There is a simple example in 1D.
  17. Fluid Dynamics (JT)
    • Implement an algorithm to visualize the behavior of liquids. link1, link2, link3
  18. Circuit analyser (MC)
    • Implement formulas (they will be provided) for analysis of arbitrary circuit represented by interconnected N-ports.

Projects you CAN'T choose from! (temporarily discarded)

- Create a single-player UI for the board game Cartographers EN info. Background materials would be provided. (MM)

  1. Creation and solution of a maze (JT)
  2. Creation and representation of Platonic solids (JT)
    • Implement a simple program that allows you to create and display Platonic solids.
  3. Matlab Planetarium (VA)
    • Display of the star sky at any time and from any position on Earth. But it's not too easy. The position of objects in the sky is given by the current rotation of the Earth relative to the stellar sphere and is governed by the so-called stellar time. From this, the position of the azimuth https://en.wikipedia.org/wiki/Spring_point> of a spring point can be calculated. Furthermore, it is necessary to calculate the elevation of stars due to the tilt of the Earth's axis, see. also astronomy.cz.
    • You can also implement a map of the sky by directly selecting the specific RA and DE coordinates of what the field of view and part of the sky should be displayed. It is advisable to be able to interactively set how faint stars still appear and be able to move with the viewport across the sky.
  4. Audio files editor (VA)
    • Ability to load an audio file, view its progress, edit audio (crop, volume, equalization, a few effects, …), save.
  5. Video files editor (VA)
    • Possibility to load a video file, display the timeline, edit the video (cut, brightness, contrast, …), save to individual images, and to the video. Choice of output format, image size (interpolation), and quality.
  6. 2048 (JT)
  7. Minimization using the nonlinear least-squares method (MC)
    • Study the least-squares method and its nonlinear variant and try to compare individual approaches in Matlab on selected examples.
  8. Calculation and display of spherical functions, their superposition, correlation with general spherical functions (MC)
  9. Photo editor (VA)
    • Load, save, basic adjustments (brightness, contrast, saturation, crop, resampling, …), filters (sharpen, blur, …).
  10. Pong (VA)
  11. Hra Quarto (MC)
    • Find algorithms that detect the shortest path to victory, when the game has no solution (end of the game), or the move that will prolong the path the most.
  12. Game of life (JT)
  13. Tic-tac-toe (with AI) (JT)
  14. Draughts (with AI)(JT)
  15. Visualization of 2D / 3D functions with user input
    • Develop a program that will be able to visualize 2D / 3D vector functions. Use vectorization and quiver functions to render.
  16. Tool for extracting help and H1 lines from user-defined Matlab functions
    • It is a project focused on reading text strings from specified files and their processing. Suitable for students with knowledge of LaTeX.
  17. ADC (analog to digital signal converter) - sampling, quantization, visualization of general signal
  18. Gaussian elimination, Gaussian elimination with pivots + comparison with Matlab build-in function
  19. Correlation analysis (find a known signal, in a noisy received signal)
  20. Use of the accumulation method to enhance the repeat signal in the noise
  21. Optimization of RLC structure or filter with the possibility to select values of components from the standardized series E6 / E12 / E24 (VA)
  22. Vectorized 2D interpolation (VA)
  23. MSDN Library in Matlab (VA)
    • Explore and try to use the MSDN Library for advanced graphics in Matlab
courses/mtb/projects/list_of_projects.txt · Last modified: 2024/04/11 09:01 by tucekjon