¿ªÔÆÌåÓý

Direct Sequence Spread spectrum modulation


 

This is a simplified outline of a digital mode I have wanted to test for almost 40 years. It's a direct application of the basic theory of probability and random processes. I later learned it had been done in the 1950's. I'll skip the math for now.

Generate a pair of Pseudo Random Number (PRN) sequences using the station call sign forward and backwards as seeds.

Clock the PRNs using a GPSDO time base and fixed set of frame epochs. Spread the signal out over most of the band allocation and use a set of binary window lengths so each step in frame length is 3 dB of power gain.

One of the two station PRNs is used for MARK and the other for SPACE. So at the receiver the signal is digitized and crosscorrelated with the 2 PRNs. The one with the largest peak energy at the expected arrival times is the symbol. This simplifies additively including multipath as useful signal. This also permits easily listening to other stations on a selective basis.

CQ is done with the same PRN generator system using "CQ" and "QC".

Once contact is established shift to the communicating stations unique PRNs.

For net operation, use the net name as the seed value when joining or leaving the net. This allows stations in the net to track what stations to listen for.

Identification is by sending the station call using a standard PRN pair (e.g. "FCC").

The effective signal power at the receiver is the time-bandwidth-power product. So the power level and data rate can be adjusted as conditions permit. Mathematically, the system should get as much power gain relative to the noise level as desired at the price of reducing the data rate. There should not be significant mutual interference despite stations occupying the same BW. For a 30 second/bit data rate one should get around 55 dB of gain.

Technically there is nothing new in the concept outlined above. It simply was too expensive and complex to implement in the past. The economics have changed. A Raspberry Pi 400 and an RFzero should be able to implement this with ease and drive a 4K display.

Have Fun!
Reg


 

Reg,
Fascinating! I've wanted to play with this for many years also.
Quick question that I've never understood about PRN's. Does everyone (ham community) use the same formula for generating PRNs such that if a station's call is used as a seed then both stations would have the same sequences for encoding and decoding?
73,
-Craig, AA0ZZ

-----Original Message-----
From: [email protected] [mailto:[email protected]] On Behalf Of Reginald Beardsley via groups.io
Sent: Tuesday, November 03, 2020 1:34 PM
To: [email protected]
Subject: [qex] Direct Sequence Spread spectrum modulation

This is a simplified outline of a digital mode I have wanted to test for almost 40 years. It's a direct application of the basic theory of probability and random processes. I later learned it had been done in the 1950's. I'll skip the math for now.

Generate a pair of Pseudo Random Number (PRN) sequences using the station call sign forward and backwards as seeds.

Clock the PRNs using a GPSDO time base and fixed set of frame epochs. Spread the signal out over most of the band allocation and use a set of binary window lengths so each step in frame length is 3 dB of power gain.

One of the two station PRNs is used for MARK and the other for SPACE. So at the receiver the signal is digitized and crosscorrelated with the 2 PRNs. The one with the largest peak energy at the expected arrival times is the symbol. This simplifies additively including multipath as useful signal. This also permits easily listening to other stations on a selective basis.

CQ is done with the same PRN generator system using "CQ" and "QC".

Once contact is established shift to the communicating stations unique PRNs.

For net operation, use the net name as the seed value when joining or leaving the net. This allows stations in the net to track what stations to listen for.

Identification is by sending the station call using a standard PRN pair (e.g. "FCC").

The effective signal power at the receiver is the time-bandwidth-power product. So the power level and data rate can be adjusted as conditions permit. Mathematically, the system should get as much power gain relative to the noise level as desired at the price of reducing the data rate. There should not be significant mutual interference despite stations occupying the same BW. For a 30 second/bit data rate one should get around 55 dB of gain.

Technically there is nothing new in the concept outlined above. It simply was too expensive and complex to implement in the past. The economics have changed. A Raspberry Pi 400 and an RFzero should be able to implement this with ease and drive a 4K display.

Have Fun!
Reg


 

It seems they would not only have to have the same seed, or key, but also the same timing. 73 - Mike

Mike B. Feher, N4FS
89 Arnold Blvd.
Howell NJ 07731
848-245-9115

-----Original Message-----
From: [email protected] <[email protected]> On Behalf Of Craig Johnson, AA0ZZ
Sent: Tuesday, November 3, 2020 3:03 PM
To: [email protected]
Subject: Re: [qex] Direct Sequence Spread spectrum modulation

Reg,
Fascinating! I've wanted to play with this for many years also.
Quick question that I've never understood about PRN's. Does everyone (ham community) use the same formula for generating PRNs such that if a station's call is used as a seed then both stations would have the same sequences for encoding and decoding?
73,
-Craig, AA0ZZ

-----Original Message-----
From: [email protected] [mailto:[email protected]] On Behalf Of Reginald Beardsley via groups.io
Sent: Tuesday, November 03, 2020 1:34 PM
To: [email protected]
Subject: [qex] Direct Sequence Spread spectrum modulation

This is a simplified outline of a digital mode I have wanted to test for almost 40 years. It's a direct application of the basic theory of probability and random processes. I later learned it had been done in the 1950's. I'll skip the math for now.

Generate a pair of Pseudo Random Number (PRN) sequences using the station call sign forward and backwards as seeds.

Clock the PRNs using a GPSDO time base and fixed set of frame epochs. Spread the signal out over most of the band allocation and use a set of binary window lengths so each step in frame length is 3 dB of power gain.

One of the two station PRNs is used for MARK and the other for SPACE. So at the receiver the signal is digitized and crosscorrelated with the 2 PRNs. The one with the largest peak energy at the expected arrival times is the symbol. This simplifies additively including multipath as useful signal. This also permits easily listening to other stations on a selective basis.

CQ is done with the same PRN generator system using "CQ" and "QC".

Once contact is established shift to the communicating stations unique PRNs.

For net operation, use the net name as the seed value when joining or leaving the net. This allows stations in the net to track what stations to listen for.

Identification is by sending the station call using a standard PRN pair (e.g. "FCC").

The effective signal power at the receiver is the time-bandwidth-power product. So the power level and data rate can be adjusted as conditions permit. Mathematically, the system should get as much power gain relative to the noise level as desired at the price of reducing the data rate. There should not be significant mutual interference despite stations occupying the same BW. For a 30 second/bit data rate one should get around 55 dB of gain.

Technically there is nothing new in the concept outlined above. It simply was too expensive and complex to implement in the past. The economics have changed. A Raspberry Pi 400 and an RFzero should be able to implement this with ease and drive a 4K display.

Have Fun!
Reg


 

Craig,

Yes, that's the idea. The crosscorrelation is an FFT and multiply by the PRNs of the selected senders. This makes it very computationally cheap to monitor several senders in a net and ignore everyone outside the net. After you've done the FFT once for each frame it's just a vector multiply and add.

Reg




On Tuesday, November 3, 2020, 02:03:25 PM CST, Craig Johnson, AA0ZZ <aa0zz@...> wrote:


Reg,
Fascinating! I've wanted to play with this for many years also.
Quick question that I've never understood about PRN's. Does everyone (ham community) use the same formula for generating PRNs such that if a station's call is used as a seed then both stations would have the same sequences for encoding and decoding?
73,
-Craig, AA0ZZ


 

¿ªÔÆÌåÓý

Reg,

Thanks.?? I won¡¯t even pretend to say that I understand how to do this but it¡¯s something I¡¯d like to dive into someday.

-Craig

?

From: [email protected] [mailto:[email protected]] On Behalf Of Reginald Beardsley via groups.io
Sent: Tuesday, November 03, 2020 2:35 PM
To: [email protected]
Subject: Re: [qex] Direct Sequence Spread spectrum modulation

?

Craig,

Yes, that's the idea. The crosscorrelation is an FFT and multiply by the PRNs of the selected senders. This makes it very computationally cheap to monitor several senders in a net and ignore everyone outside the net. After you've done the FFT once for each frame it's just a vector multiply and add.

Reg




On Tuesday, November 3, 2020, 02:03:25 PM CST, Craig Johnson, AA0ZZ <aa0zz@...> wrote:


Reg,
Fascinating! I've wanted to play with this for many years also.
Quick question that I've never understood about PRN's. Does everyone (ham community) use the same formula for generating PRNs such that if a station's call is used as a seed then both stations would have the same sequences for encoding and decoding?
73,
-Craig, AA0ZZ


 

I want to hear more as your work progresses. I too have been thinking about something like this. What band do you plan to use? I assume you're in the ham bands.

Steve Hendrix


 

Mike,

Yes, GPS time is key. You've also got to determine the propagation and multipath delays so they can be summed properly. You *can* synchronize by using a special PRN. With a 0.5 ppm TCXO you could stay close enough to determine the phase and frequency difference, but lots more trouble.

It appears I was so blinded by the need for GPS that I failed to notice the lack of Rx. But my RSP2 should take care of those chores with the 2nd RFzero providing the clock. But more work too :-(

Have Fun!
Reg
On Tuesday, November 3, 2020, 02:28:17 PM CST, Mike Feher <n4fs@...> wrote:


It seems they would not only have to have the same seed, or key, but also the same timing. 73 - Mike

Mike B. Feher, N4FS
89 Arnold Blvd.
Howell NJ 07731
848-245-9115


-----Original Message-----
From: [email protected] <[email protected]> On Behalf Of Craig Johnson, AA0ZZ
Sent: Tuesday, November 3, 2020 3:03 PM
To: [email protected]
Subject: Re: [qex] Direct Sequence Spread spectrum modulation

Reg,
Fascinating!? I've wanted to play with this for many years also.
Quick question that I've never understood about PRN's.? Does everyone (ham community) use the same formula for generating PRNs such that if a station's call is used as a seed then both stations would have the same sequences for encoding and decoding?
73,
-Craig, AA0ZZ

-----Original Message-----
From: [email protected] [mailto:[email protected]] On Behalf Of Reginald Beardsley via groups.io
Sent: Tuesday, November 03, 2020 1:34 PM
To: [email protected]
Subject: [qex] Direct Sequence Spread spectrum modulation

This is a simplified outline of a digital mode I have wanted to test for almost 40 years.? It's a direct application of the basic theory of probability and random processes.? I later learned it had been done in the 1950's.? I'll skip the math for now.

Generate a pair of Pseudo Random Number (PRN) sequences using the station call sign forward and backwards as seeds.

Clock the PRNs using a GPSDO time base and fixed set of frame epochs.? Spread the signal out over most of the band allocation and use a set of binary window lengths so each step in frame length is 3 dB of power gain.

One of the two station PRNs is used for MARK and the other for SPACE.? So at the receiver the signal is digitized and crosscorrelated with the 2 PRNs. The one with the largest peak energy at the expected arrival times is the symbol.? This simplifies additively including multipath as useful signal.? This also permits easily listening to other stations on a selective basis.

CQ is done with the same PRN generator system using "CQ" and "QC".

Once contact is established shift to the communicating stations unique PRNs.

For net operation,? use the net name as the seed value when joining or leaving the net.? This allows stations in the net to track what stations to listen for.

Identification is by sending the station call using a standard PRN pair (e.g. "FCC").

The effective signal power at the receiver is the time-bandwidth-power product.? So the power level and data rate can be adjusted as conditions permit.? Mathematically, the system? should get as much power gain relative to the noise level as desired? at the price of reducing the data rate.? There should not be significant mutual interference despite stations occupying the same BW.? For a 30 second/bit data rate one should get around 55 dB of gain.

Technically there is nothing new in? the concept outlined above.? It simply was too expensive and complex to implement in the past.? ? The economics have changed.? A Raspberry Pi 400 and an RFzero? should be able to implement this with ease and drive a 4K display.

Have Fun!
Reg


















 

¿ªÔÆÌåÓý

Hi Reg ¨C

?

Yes ¨C also the data rate will be of great consequence when you consider the effects you mention, as well as the accuracy of the timing source.

?For real high data rates even a good TCXO may work fine. For low data rates, GPS is almost needed for sure. 73 ¨C Mike

?

Mike B. Feher, N4FS

89 Arnold Blvd.

Howell NJ 07731

848-245-9115

?

From: [email protected] <[email protected]> On Behalf Of Reginald Beardsley via groups.io
Sent: Tuesday, November 3, 2020 4:51 PM
To: [email protected]
Subject: Re: [qex] Direct Sequence Spread spectrum modulation

?

Mike,

Yes, GPS time is key. You've also got to determine the propagation and multipath delays so they can be summed properly. You *can* synchronize by using a special PRN. With a 0.5 ppm TCXO you could stay close enough to determine the phase and frequency difference, but lots more trouble.

It appears I was so blinded by the need for GPS that I failed to notice the lack of Rx. But my RSP2 should take care of those chores with the 2nd RFzero providing the clock. But more work too :-(

Have Fun!
Reg

On Tuesday, November 3, 2020, 02:28:17 PM CST, Mike Feher <n4fs@...> wrote:

?

?

It seems they would not only have to have the same seed, or key, but also the same timing. 73 - Mike

Mike B. Feher, N4FS
89 Arnold Blvd.
Howell NJ 07731
848-245-9115

-----Original Message-----
From: [email protected] <[email protected]> On Behalf Of Craig Johnson, AA0ZZ
Sent: Tuesday, November 3, 2020 3:03 PM
To: [email protected]
Subject: Re: [qex] Direct Sequence Spread spectrum modulation

Reg,
Fascinating!? I've wanted to play with this for many years also.
Quick question that I've never understood about PRN's.? Does everyone (ham community) use the same formula for generating PRNs such that if a station's call is used as a seed then both stations would have the same sequences for encoding and decoding?
73,
-Craig, AA0ZZ

-----Original Message-----
From: [email protected] [mailto:[email protected]] On Behalf Of Reginald Beardsley via groups.io
Sent: Tuesday, November 03, 2020 1:34 PM
To: [email protected]
Subject: [qex] Direct Sequence Spread spectrum modulation

This is a simplified outline of a digital mode I have wanted to test for almost 40 years.? It's a direct application of the basic theory of probability and random processes.? I later learned it had been done in the 1950's.? I'll skip the math for now.

Generate a pair of Pseudo Random Number (PRN) sequences using the station call sign forward and backwards as seeds.

Clock the PRNs using a GPSDO time base and fixed set of frame epochs.? Spread the signal out over most of the band allocation and use a set of binary window lengths so each step in frame length is 3 dB of power gain.

One of the two station PRNs is used for MARK and the other for SPACE.? So at the receiver the signal is digitized and crosscorrelated with the 2 PRNs. The one with the largest peak energy at the expected arrival times is the symbol.? This simplifies additively including multipath as useful signal.? This also permits easily listening to other stations on a selective basis.

CQ is done with the same PRN generator system using "CQ" and "QC".

Once contact is established shift to the communicating stations unique PRNs.

For net operation,? use the net name as the seed value when joining or leaving the net.? This allows stations in the net to track what stations to listen for.

Identification is by sending the station call using a standard PRN pair (e.g. "FCC").

The effective signal power at the receiver is the time-bandwidth-power product.? So the power level and data rate can be adjusted as conditions permit.? Mathematically, the system? should get as much power gain relative to the noise level as desired? at the price of reducing the data rate.? There should not be significant mutual interference despite stations occupying the same BW.? For a 30 second/bit data rate one should get around 55 dB of gain.

Technically there is nothing new in? the concept outlined above.? It simply was too expensive and complex to implement in the past.? ? The economics have changed.? A Raspberry Pi 400 and an RFzero? should be able to implement this with ease and drive a 4K display.

Have Fun!
Reg

















 



Primary focus is the HF ham bands. However, I've also studied the part 15 rules rather closely.

My goal is reliable, long distance, peer to peer communications of short messages at very low power levels in a manner that does not interfere with other users except as a increase in QRN at high utilization.

It will take me a while to get back up to speed with Octave. As I figure out how to get data in and out of Octave so I can plot it with gnuplot I'll have some interesting displays which will make clear how simple this is. The hardest part is the lexicon. Of course, if you want the proof, you'll have to go to the nearest university math department. Though I can recommend some books.

Have Fun!
Reg
On Tuesday, November 3, 2020, 03:25:29 PM CST, Steve Hendrix <stevehx@...> wrote:


I want to hear more as your work progresses. I too have beenthinking about something like this. What band do you plan to use? Iassume you're in the ham bands.

Steve Hendrix


 

DSSS remains the low rate modes for 802.11 chip sets at 1 and 2 Mbps operation.? ? It might be good to review the issues around using DSSS in 802.11, as this is very well understood in terms of packet recovery, protocol and other issues.?

As mentioned below, multipath remains the primary challenge for DSSS demodulation.? Early Wifi DSSS radios used various architectures to mitigate multipath, the primary one being the rake receiver.? ?Several mentions were made to summing the different multipath rays for better detection.? This does not work on a single antenna, as the singles get summed at the input!? ?OFDM MIMO radios (802.11n, ac, and ax) can use signals from different receive chains and combine them into a single packet. a technique called Maximum Ratio Combining (MRC).?

Going back to DSSS modulation, early Wifi systems sometimes used diversity antennas to select the best path with the lowest amount of multipath and or flat fade.? ?The best / easiest algorithm determined the transmit antenna with the highest packet success rate (or even last success packet) and used that antenna.? ?The use of diversity antennas can still be seen with many IOT radio modules.?

The use of multiple receive or transmit antennas is being enabled by todays SDR technology even at HF.? ? Some of the available SDR boards support 2x2 transceivers.? ?I was looking at a SDR board that showed up on ebay yesterday that had to receiver inputs and A/D converters.? ? Signal processing could be done in either the FPGA, or in the backend computer, allowing for a lot of experiments in signal processing and signal combining techniques.? ? If you had all the time in the world (Wifi is time bound by it's protocol) to process a packet, you could attempt to demodulate it at various time slots until you found a time slot that correctly decoded the packet (this is usually determined by a valid CRC-32).? ? Something similar could also be done if you had two diversity signals.? ?Decode them individually to see if one decodes properly, and add them together (OK - cross correlate) to see if that helps!? You might also experiment with Forward Error Correction, another technique used by OFDM.

73's Jim N8CAH


 



On Wednesday, November 4, 2020, 08:53:56 AM CST, James Amos <jimamos@...> wrote:

[snip]

> Several mentions were made to summing the different multipath rays for better detection. This >does not work on a single antenna, as the singles get summed at the input!

[snip]


This will be more clear with some numerical experiments, but those will take a while to find time.

The general model of multipath arrivals at a single receiver in Z transform notation of sorts:

D(z) = S*A0*s(z) +S*A1*s(a*z) + S*A2*s(b*z) + ...

with S signal, A0... being path strength and s delay with exponents a,b... over path.

If S=M*PRN where * indicates convolution, then if one one crosscorrelates D(z) with PRN, one then gets the bit for that transmission frame prior to multipath filtering. Without correlation with the PRN the signal sounds like low level white noise. Because the bit frame is long, precise resolution and tracking of multiple arrivals is easy. So the travel time sequence for the arrivals is simple to determine.

If you know the PRN pair used by a station, you can listen for that signal at very low computational cost. There is a very big difference in what is possible if you allow enough time per bit. By using GPS synchronization, multipath at 10-30 seconds per bit is a bit different. You can exploit the additional signal by phase aligning and summing multiple arrivals. This can even be used to separate arbitrary signals on the same frequency if you have enough compute available.

My goal is reliable peer to peer radio mail at a few kB/day.

Have Fun!
Reg


 

Bonjour ¨¤ tous

A few Historical notes, please....

Spread Spectrum

The first frequency hopping spread Spectrum invented in 1890s by Nikola Tesla for a remotely controllable boat.
In 1942 famous actress Hedy Lamarr patented another form of FHSS for Secret control of torpedoes.
First practical use of spread Spectrum was in top secret 1942 SIGSALY speech encryption machine.
See NSA/NCM sites and my IEEE SPECTRUM article for SIGSALY Quantizer reconstruction.

PRN, and true random Ciphers and coding....

Vernam at AT&T patented a TTY Baudot true random key encoding in 1920s.
Early PRN was used in 1936 Siemens T-52 cipher teletype rotor machine "Gehiemeschriber"
Claude Shannon at BTL, prooved unbreakable cipher theory in a top secret 1942 paper, later published in 1949, using a true random key

Hope this background interesting to some of you!

Bon journ¨¦e

Jon