Click here to view our project proposal.
Click here to view our final presentation.
In my second year of engineering, I took a digital systems class where, as a final project, we got to choose any project to implement on the DE1-SoC with Verilog. My partner and I decided to implement a spectrum analyzer. We got this idea from Spotify’s equalizer feature (which was another project idea of ours). This tool is used to view audio on the frequency domain, as opposed to the time domain. This means that the resulting plot shows how much of a frequency is present, instead of the magnitude of the audio at a given moment.
I was responsible for the audio while my partner was responsible for the visuals. I first used MATLAB to model a Fast Fourier Transform (FFT): the tool that transforms data from the time domain to the frequency domain. Then, I used the lovely HDL coder tool to generate Verilog code. I used MATLAB because, at the time, transforming data between time and frequency was completely over my head.
The next challenge was testing this data. Looking at the available peripherals, I did not have a lot to work with. Additionally, my partner was still working on the VGA, so that was unavailable for me to use. I ended up assigning various frequency ranges to the ten LEDs, then using a frequency sweep audio to watch the LEDs light up one by one. Though it wasn’t a perfect solution, it verified that my system was working.
The FFT was the hard part. After confirming that the audio input and FFT worked, the rest of the process was very smooth sailing. We had some trouble with the VGA, but it functioned well enough to display the desired audio data.