6.111 Final Project ReportiSing Voice HarmonizerCyril Lan, Jessie Li, Darren YinDecember 10, 2009AbstractOur project is a voice harmonizer which detects the frequency of a sung note and pitch shifts the noteto match the keys played on a keyboard. A 2048 point FFT was implemented for pitch detection, apitchshifter module was written for pitch shifting, and a central CPU was written to control the flow ofdata between modules. Due to hardware constraints and lack of time, the system was not functional as awhole. However, the FFT module was able to correctly detect pitch, the keyboard inputs were properlyconverted to midi frequencies, and the pitchshifter was able to shift a 750 Hz tone up an octave withsome added noise.1Contents1 Overview 32 Description of Each Module 32.1 Fast Fourier Transform (Cyril) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32.1.1 Input and Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32.1.2 Data Width . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32.1.3 The Cooley-Tukey Algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42.1.4 FFT BRAM memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42.1.5 FFT Addresser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42.1.6 Sine/Cosine Lookup Table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52.1.7 Butterfly Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52.1.8 FFT Controller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62.2 Pitch Detector (Cyril) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62.3 Keyboard Controller (Darren) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62.4 Pitch Shifter (Jessie) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62.5 CPU (Darren) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 Testing and Debugging 93.1 FFT Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103.2 Pitchshifting Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103.3 CPU and Keyboard Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 Conclusion 115 Appendices 115.1 FFT Main Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115.2 FFT Controller Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135.3 FFT Addresser Module with bit operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145.4 FFT Butterfly Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165.5 Pitchshifter Software Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175.6 Pitchshifter Verilog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195.7 Main FSM Verilog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24List of Figures1 Block diagram of entire system . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 Diagram of butterfly calculations for a 16-pt FFT . . . . . . . . . . . . . . . . . . . . . . . . . 53 Block diagram of Pitchshifter Module . . . . . . . …
View Full Document