Projects
We built a simple oscilloscope using a Nexys 4 DDR board and a PCB. First, the PCB adjusts the input voltage signals to fall within an acceptable range for the FPGA board, as well as generating control signals for the knobs. The FPGA board then takes the processed signals and control signals to display waveforms, change the voltage scale, and adjust the sweep time. This was the final project of the Digital Laboratory class at NYCU.
We implemented an 8-bit Huffman coding algorithm using SystemVerilog. The system takes an image as input. The image contains 100 pixels and each pixel value is an integer between 1 and 6 (inclusive). The system then outputs the Huffman code for each pixel value based on the source probability distribution (more frequent pixel values will have shorter codewords). This was the final project of the Digital Circuit and Systems class at NYCU.
This work contains the implementation and comparison of two graph learning algorithms, Causal Graph Process (CGP) and Sparse Vector Autoregressive model (SVAR). These two graph learning methods can infer relationships among a large number of unstructured time series and predict future values.
This is a demo for the model change detection system on a landmine dataset. The model change detection system utilized KL-divergence and machine learning algorithms to classify landmine data collected from different surface conditions. This demo was built during an independent study at UIUC.
This is an algorithm for finding the minimum mean cycle in a weighted directed graph using dynamic programming. This algorithm is an extension of the Bellman-Ford algorithm for computing single-source shortest paths, and it is capable of finding the minimum mean cycle in polynomial time. This was the final project of the Advanced Algorithm class at NCTU.