EncodingLora: Difference between revisions

From RevSpace
Jump to navigation Jump to search
No edit summary
No edit summary
Line 13: Line 13:
* we're creating a stereo WAV-file that represents the I and Q components of the complex baseband radio signal.
* we're creating a stereo WAV-file that represents the I and Q components of the complex baseband radio signal.
* this WAV-file should have the right properties for being played back in GnuRadio using Tx-capable SDR like the Ettus B210, HackRF or the Rad1o
* this WAV-file should have the right properties for being played back in GnuRadio using Tx-capable SDR like the Ettus B210, HackRF or the Rad1o
* initially the focus is on just generating a "LoRa-like" signal, consisting of a valid preamble (with sync pattern) but with pseudo-random (invalid) data. This should be good enough to be used as an interferer signal in studies about the robustness against interference from other LoRa devices.
* initially the focus is on just generating a "LoRa-like" signal, consisting of a valid preamble (with sync pattern) but with pseudo-random data after the header. This should be good enough to be used as an interference signal in studies about the robustness against interference from other LoRa devices.
* later when I understand the packet structure better, I can replace the pseudo-random data by actual channel coded data
* I'm planning this as a signal processing chain consisting of several blocks in series, very much how GnuRadio works. I'll probably be writing this in C or Java because these are the languages I'm most familiar with. Maybe later I can port this to the GnuRadio framework.
* I'm planning this as a signal processing chain consisting of several blocks in series, very much how GnuRadio works. I'll probably be writing this in C or Java because these are the languages I'm most familiar with. Maybe later I can port this to the GnuRadio framework.


Line 19: Line 20:
* create initial software to synthesize the basic sweeps and write them as a WAV-file, starting with a software numerically controlled oscillator block to generate the sweeps.
* create initial software to synthesize the basic sweeps and write them as a WAV-file, starting with a software numerically controlled oscillator block to generate the sweeps.
* play back the WAV file on an SDR and verify the generated waveform to validate the principle.
* play back the WAV file on an SDR and verify the generated waveform to validate the principle.
=== Signal structure ===
How I plan to generate to synthesize the signal, is as an over-sampled sweep, offset in base-band frequency so that it does not sweep through or near 0 Hz.
This should make it easier to deal with DC offset problems and mirror images when it is finally up-converted from base-band to RF in the SDR.
My feeling tells me that if I choose the sampling frequency as some nice integer multiple of the bandwidth (power-of-two even), it will all work out nicely.

Revision as of 07:14, 22 May 2016

Project EncodingLora
DecodingLora Project.jpg
Status In progress
Contact bertrik
Last Update 2016-05-22

This page is about synthesizing a LoRa signal such that it can be "played" back using a software-defined-radio with transmit-capabilities. This should help further in understanding the structure of the LoRa modulation, see also my other page DecodingLora. The desired end result is that the transmitted LoRa signal is compatible with and can be received with existing LoRa hardware.

Basic ideas:

  • we're creating a stereo WAV-file that represents the I and Q components of the complex baseband radio signal.
  • this WAV-file should have the right properties for being played back in GnuRadio using Tx-capable SDR like the Ettus B210, HackRF or the Rad1o
  • initially the focus is on just generating a "LoRa-like" signal, consisting of a valid preamble (with sync pattern) but with pseudo-random data after the header. This should be good enough to be used as an interference signal in studies about the robustness against interference from other LoRa devices.
  • later when I understand the packet structure better, I can replace the pseudo-random data by actual channel coded data
  • I'm planning this as a signal processing chain consisting of several blocks in series, very much how GnuRadio works. I'll probably be writing this in C or Java because these are the languages I'm most familiar with. Maybe later I can port this to the GnuRadio framework.

Next steps:

  • create initial software to synthesize the basic sweeps and write them as a WAV-file, starting with a software numerically controlled oscillator block to generate the sweeps.
  • play back the WAV file on an SDR and verify the generated waveform to validate the principle.

Signal structure

How I plan to generate to synthesize the signal, is as an over-sampled sweep, offset in base-band frequency so that it does not sweep through or near 0 Hz. This should make it easier to deal with DC offset problems and mirror images when it is finally up-converted from base-band to RF in the SDR. My feeling tells me that if I choose the sampling frequency as some nice integer multiple of the bandwidth (power-of-two even), it will all work out nicely.