I am not sure if I should ask this here but I am researching to build a receiver similar to a wifi one. I don't know here to look to find the flow that the data goes through.

For example, what I believe right now is that

  • the data stream gets captured by the antenna.
  • Now you have data to work with and it either gets put into packets in the receiver or in the computer.
  • Once in the computer, I assume it goes through a device driver for the wifi (usb for example).
  • Then from there I don't know where it goes.

If you can point me to a resource that would help with creating and programming a receiver for a different spectrum, that would be awesome. Thanks

  • $\begingroup$ Huh, this is indeed quite broad and "leaks" into topics that are not very signal processing related. I'll try to answer nevertheless. $\endgroup$ Feb 7, 2020 at 10:33
  • $\begingroup$ If you want to simulate a network interface on Linux for a proof of concept, then (A) that is not a DSP question and (B) use a tap device, because you don't need to write a driver for that, so it's easier. $\endgroup$
    – user253751
    Feb 7, 2020 at 10:42

1 Answer 1


the data stream gets captured by the antenna.

No, that's not right. The antenna doesn't "capture data"; it just converts electromagnetic waves to electrical signal that your receiver can work with. It's still analog RF oscillations, and not digital "data".

The receiver then goes and converts that RF to baseband, i.e. moves it from 2.4 GHz to 0 Hz, for example, resulting in analog complex baseband signal.

That is then simply sampled (like a microphone-generated electrical signal with a sound card, but thousands of times faster) at regular intervals: it now becomes a digital signal, i.e. an "infinite" sequence of complex numbers in a chip.

These numbers are then analyzed by algorithms that – all within your Wifi chip –

  • look for the presence of a Wifi transmission
  • recognize the start time and exact frequency of that
  • correct tat
  • divide the result in many parallel, smaller chunks of signal
  • on each of them, correct influences of the transmission over the air
  • then, decide which symbol (i.e. a complex number) was originally sent
  • convert the resulting symbol stream to a stream of code bits
  • processing the stream of bits with an error-correcting code
  • passing the resulting info bits on to the next layer

That next layer typically is still on the same IC; it now understands what bits belong to a data packet, checks whether the error correction has been successful (checksum), checks whether the packet is relevant to the receiver at all, and then hands it of to the host (over whatever link you use – USB, PCIe, SPI...).

There, a wifi driver takes the "surviving" packets and analyzes them to see whether they contain data that is of any relevance to the network stack of your computer.

Then from there I don't know where it goes.

Network stack.

If you can point me to a resource that would help with creating and programming a receiver for a different spectrum

You need to learn about Software-Defined Radio, then (book example). That will make little sense if you haven't had basics of communications; the book I linked to tries to bring these basics to you, but it's certainly not the only book. If you're currently enrolled at university, you'd want to study their course on "basics of communications technology" or so.

Your Wifi card will not help you very much - it's not meant to be anything than a wifi receiver.

So, really, the hard part is not so much letting the data flow – your network stack of the operating system you're using will take care of that – but coming up with a receiver, which in essence is nothing but an estimator for the data sent by someone far away, whose analog signals were subject to a fiercely antagonistic channel.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.