I found a time slot to refine my simulation. Octave script is attached.
So can you tell us what you decided to implement other than just saying "KISS" and "Arduino"?
... I worked at a company once that designed push to talk military radios (never call them walkie talkies). The old timers had very little sophistication and any time they wanted to say MCU they just said PIC. I kept thinking they had a serious hard-on for Microchip for some reason.
... I worked at a company once that designed push to talk military radios (never call them walkie talkies). The old timers had very little sophistication and any time they wanted to say MCU they just said PIC. I kept thinking they had a serious hard-on for Microchip for some reason.
walkie talkies were push to talk miliary radios, but they weren't hand held; those are handie talkies. HT is still the term used today for hand held PTT radios. We used to use the term "walkie talkies" when we were kids for the AM toy PTT radios, but that wasn't what the term originally meant. I worked for Moto on HTs.
I put an AVR in a product at work last year. Everyone refers to it as "the PIC". I've stopped correcting them; it's no use.
..
...Could you show some more info about your solution for those who don't have Octave installed (yet)? ...
They still make back pack versions they call man pack which is more powerful with longer range as well as a vehicle mounted version with even more power, I forget the term for that, I think it was just a vehicle adapter with an amplifier.
Could you show some more info about your solution for those who don't have Octave installed (yet)?
I wonder you still use initial upconverter with FFT16 instead of let's say 16 (middle'ish) bins of FFT64 or even FFT32 w/o upconverter?
Receiver side assumes sampling the audio signal at 10.8kSa/s sampling rate, a 384.375Hz quadrature LO (realized as software DDS as well), mixer (one complex multiplication per sample), and overlapping 128-point FFT (112 points overlap -> 8 FFT evaluations per symbol).
EDIT: Prior decimation could reduce the FFT size, but OTOH requires an additional decimation filter. I'm not sure if that were computationally cheaper, after all. And decimation were still limited to 2x, since the transition band of the decimation filter needs to be > 0, and the 2700Hz channel bandwidth is fully occupied by the 16 sub-bands.
OFDM requires the insertion of a guard interval between the symbols (mostly a cyclic prefix -> CP-OFDM), so I guess symbol timing recovery cannot be renounced at the receiver, and the receiver cannot work async? Or can it?
Could you show some more info about your solution for those who don't have Octave installed (yet)?
It is not the solution, but a simulation of the potential outcome. The simulation assumes that the carriers are generated via (software) DDS and AM-modulated (regular double side-band modulation) with the 16 digital signals (after band-limiting them with a pulse shaping filter). Data streams are supposed to be async, with a (maximum) bit rate of 84.375 bits/s each. Carriers are 384.375, 553.125, 721.875, 890.625, 1059.375, 1228.125, 1396.875, 1565.625, 1734.375, 1903.125, 2071.875, 2240.625, 2409.375, 2578.125, 2746.875, 2915.625 Hz. Hopefully "KISS enough" The most computationaly expensive thing at the sender side is likely the pulse shaping filter.
Receiver side assumes sampling the audio signal at 10.8kSa/s sampling rate, a 384.375Hz quadrature LO (realized as software DDS as well), mixer (one complex multiplication per sample), and overlapping 128-point FFT (112 points overlap -> 8 FFT evaluations per symbol).
EDIT: Prior decimation could reduce the FFT size, but OTOH requires an additional decimation filter. I'm not sure if that were computationally cheaper, after all. And decimation were still limited to 2x, since the transition band of the decimation filter needs to be > 0, and the 2700Hz channel bandwidth is fully occupied by the 16 sub-bands.
Where did you get the max bit rate? I'm assuming it was from the frequencies you picked?
I don't understand the need for the down conversion. Your spectral results don't seem to be any different, just different frequencies. Were your graphs not from the 128 point FFT, but rather higher resolution processing?
Receiver side assumes sampling the audio signal at 10.8kSa/s sampling rate, a 384.375Hz quadrature LO (realized as software DDS as well), mixer (one complex multiplication per sample), and overlapping 128-point FFT (112 points overlap -> 8 FFT evaluations per symbol).
EDIT: Prior decimation could reduce the FFT size, but OTOH requires an additional decimation filter. I'm not sure if that were computationally cheaper, after all. And decimation were still limited to 2x, since the transition band of the decimation filter needs to be > 0, and the 2700Hz channel bandwidth is fully occupied by the 16 sub-bands.
Try 8KHz sample rate, iFFT64 and bins 4 till 20. Unused bins are set to 0, some may be used to transmit FCS btw. Decode accordingly - using 8KHz sample rate and FFT64.QuoteOFDM requires the insertion of a guard interval between the symbols (mostly a cyclic prefix -> CP-OFDM), so I guess symbol timing recovery cannot be renounced at the receiver, and the receiver cannot work async? Or can it?
Cyclic prefix will not hurt - because prolonged symbol do not need windowing for FFT at the receive end. Sync is needed as well - to avoid inter-symbol interference, thou for particular (OOK of subcarriers) application it can be as simple as brick: transmit some silence (>=1/4 of symbol time) between symbols. On receive end "listen" with AM envelope detector, save received baseband samples in the buffer. As soon as envelope detector finds signal which lasts as long as symbol - try FFT on buffer and consider it done. Well, maybe check FCS.
Note this is eventuall just AM+FDM, it is not OFDM.Neither are the carriers orthogonal, nor does any symbol synchronization occur at the receiver.
EDIT: Not exactly true. While the actual carriers are not orthogonal, the down-converted carriers happen to be. W/o symbol synchronization, the benefit of orthogonality is limited, though.
The FFT on the receiver side (in conjunction with the window function) is just "abused" as filter bank.
I'm indeed tempted to try (simulate) that OFDM stuff, too. It seems to have a couple of nice properties
It is OFDM indeed, just obfuscated [...]
Would be nice to see what you make out of it.
It is OFDM indeed, just obfuscated [...]
Isn't the "circular" property missing for the symbol's time domain samples, when they were not generated via IFFT, but as 16 independent AM streams, and without considering dedicated symbol borders?
Exact frequency of each subcarrier, not phase defines - "symbol" has circular property or not. OFDM symbol (output from iFFT) contains integer periods of each subcarrier sine. So if you generate correct subcarrrier waveforms using other than iFFT math, result shall be still valid. You did kinda prove it yourself Other argument - OFDM mostly uses nPSK modulations for subcarriers meaning their phase can vary, yet it does not impact circular properties of symbol, allows cyclic prefix.
Generating the subcarrrier waveform for a symbol via IFFT implies that sub-carrier amplitude and phase is constant for the symbol duration. OTOH, the sine wave, AM-modulated with the low-pass-filtered NRZ signal, does not have a constant amplitude for the symbol duration. Still equivalent?
Would be nice to see what you make out of it.
These signals are audio. There is no reason to use 16 different DDS generators. A single generator with 16 sets of registers (easily implemented in LUT memory) will run many times faster than required. As others have pointed out this can easily be done in nearly any MCU you can think of. It is the decoding that is a bit more difficult. Some are suggesting an FFT is the way to go, but the devil is in the details and so far I have not seen any details from the OP. In fact, this "project" may just be a prank. He seems to be responding to serious questions with sarcasm.
Yeah, it seems like it's time to ignore this thread. Am I wrong?
The tones I have chosen are non harmonically related through 5th order and are based on prime numbers so the FFT decoder should have an easy time keeping the tone display "clean".
I would also think of adding a pilot tone, so the receiver can 'anchor' onto something.