Maker Pro
Maker Pro

RF project

Hello.
I want to send an RF AM signal (EX: 010101010). I want my receiver to check if the received signal is the same as the transmit signal (010101010). Once the receiver receives the correct signal, it lights up an LED.

How can I go about this?

I have already made the AM receiver and transmitter. I am just not sure how I can have my receiver check for the signal.

Any advise?
 

(*steve*)

¡sǝpodᴉʇuɐ ǝɥʇ ɹɐǝɥd
Moderator
The first thing you need to do is to determine how you are going to transmit a '0' and a '1'. (these things are bits)

Now we need to see what signals we will send (these will define your baud).

You could decide that '1' means the transmitter is on, and '0' means it is off. This is very simple, but may lack noise immunity, and turning the transmitter on and off may pose some technical issues at higher speeds and powers. In this case if we can turn the transmitter on and off 300 times per second and our receiver can detect that, then we have a baud rate of 300 per second and as each baud encodes one bit, the bit rate is also 300 bits per second.

Alternately, you could decide to send a '1' as one tone modulating the carrier, and '0' as another tone. The rate at which you can send data is dependant on the frequency of these tones -- you may require (say) 4 cycles of the lower frequency tone to be able to reliably detect it. If we call the tones A and B, your signal would be represented by ABABABABABA. Again, a single signal defines a single bit, so if our lowest frequency is 1200Hz, and we need 4 cycles, we again have 300 baud, and therefore 300 bits per second.

If you want to get more fancy, you can use more tones, and perhaps even phase relationships to encode more bits at once. A simple example is to have 4 tones (lets call them A, B, C, and D) and send A to represent 00, B to represent 01, C to represent 10, and D to represent 11, then your information would be represented by the signals BBBBBA (you want to send 11 bits, and this must send pairs of bits, so I filled the last bit with a 0. This technique can be extended up to sending 5 bits or more per detectible signal type (using frequency, phase, and/or amplitude variations). With the 4 signals, assuming the lowest frequency is again 1200Hz, then our baud rate is still 300, but there are 2 bits to a baud, so we have 600bits per second).

Clearly there are timing issues. You will always find a combination of bits that result in the transmitter (say) being off all the time (and how can you distinguish this from no signal), or a continuous signal for some period (how can you tell if it is 1, 2, 3, or 10 groups of bits?)

In order to detect these things more reliably, several things are done:

1) a preamble -- this is a unique signal pattern sent at the beginning of a message. It helps the receiver get its timing right and allows for things like the speed of the transmitter starting up, and other similar things in the receiver which could garble the beginning of the message.

2) encoding, or bit-stuffing of the message. The message needs to be altered somehow so that the signal does not remain the same for too long. This might be as simple as converting each bit into two, so 0 becomes 01 and 1 becomes 10. Or it might involve inserting a 1 after any run of 5 or more 0's (and vice versa)

3) (perhaps optianally) a checksum or other error detection/correction code. This can be omitted, or be as complex as you desire.

4) a "postamble" (optional) this may be needed to give your transmitter something to do while you are turning it off. Something that can't be confused with the start of a new data packet. It can also signal that the channel is about to be free, or that there are no more data packets to be sent.

Whilst writing this, I found a lot of it described very well here.

OK, so once you've decided on the mechanism, you need to make something to send this data (often this is the easy bit) and something else to interpret the received signal to extract the information you have sent. The latter part can be extremely tricky.

An alternative is to purchase a chipset that already does all of this for you, but these days ist can be cheaper and easier to purchase a complete radio module which handles all of the signal handling and sometimes even error detection and retransmissions).

So... The question is. Which way do you want to go?
 

CDRIVE

Hauling 10' pipe on a Trek Shift3
I would think that FSK (Frequency Shift Keying) would lend itself well to byte data transmission.

Chris
 
Top