The goal of this project is to create a unit which can transmit data optically from a real time source and play back the information through a second interface.
To do this I will attempt to use two Arudino Unos one for transmitting and one for receiving. The following image will represent the flow of data and an idea of how it will be implemented.
For testing I will have to find some way to save the demodulated and filtered signal onto the flash memory of the Arduino Uno/Duo.
This link I found seems to have an implementation of C/C++ code which will easily store data onto the PROGMEM data. I have yet to explore this way of storing data on the arduino easily but it may allow me to pass by the data storage limitations of the arduino.
As for the blog diagram drawn above, it will be implemented using simulink and ported to the arduino directly. In the following figure below we can see both spectrum analyzers showing both before and after the phase shifts.
By shifting by a whole copy up (in this case 40kHz) we can set our digital/normalized cut off frequencies to pi/2 in the two hp and lp filters to filter out the lower frequency copy. Here a simple FIR filter has been implemented. The final step is to shift the signal back to be centered at 0.
Before:
After:
In the final implementation both outputs coming out of the filters will be sent into a speaker individually such that we have Left and Right channel speakers.