I know this is kind of a noob question. I am trying to establish a wireless communication between two 8051 microcontrollers using a 433 MHz RF module. But since 433 MHz is a quite noisy frequency, the receiver immediately starts collecting the garbage around. In this case, would implementing a software filter do the job to eliminate the garbage data or is my data getting completely disturbed on the way? Thanks in advance.
Are you using such type of modules?
If yes, then don't expect them to work without proper software noise filtering algorithms. This module will give out data at Rx output even if there is no other transmitter operating at 433MHz. This is because this device works on OOK(On-Off Keying) and AGC (automatic gain control). Thus if Rx does not detect any signal for some time it will automatically reduce the threshold, and once the threshold gets close to the noise level, then the noise will get interpreted as the bitstream of \$ 1\$'s and \$0\$'s.
To properly identify your packets, add 3-4 identification bytes to each of the frames you transmit. Adding more number of identification bytes will reduce the probability that the noise will get interpreted as your packet. Usually, 3-4 bytes are sufficient.
Also, it takes some time (few bit durations) to get the threshold adjusted with the transmitting signal level, so if you are not transmitting continuously then it is better to send 1 or 2 junk bytes before transmitting any frame (as initial bits have some chance of getting corrupted due to improper initial threshold level).
Hardware solution: A common chipset used in such receiver module is PT4317. If you check the datasheet then you can see that the data slicer inputs are available off-chip. Thus the slicing threshold can be manually adjusted by properly assigning threshold voltage to DSN pin. But this will compromise the sensitivity of the receiver and thus the longest range it can operate with. You will have to experiment with different values of this pin's voltage and the range it produces.
It does not have to be the environment that's noisy, it is also the receiver itself which produces noise. How that's solved in most 433 MHz devices is by using coding of the data. So the data packets consist of the data itself plus extra code so that the micro can recognize the data packets and distinguish them from the noise.
There are libraries for Arduino for data transfer over 433 (or 315) MHz. One example is the Virtualwire library. I suggest you look into those to see how it is done.
Just don't expect a "clear" channel when you're not sending data. 433 MHz communications do not work like that. They are designed with extremely simple (and cheap) receiver and transmitter using OOK modulation (also simple), the "clever" bit is then done in software by correlation, pattern recognition etc. Since it is for low data rates this can be done even in a simple micro controller.
There is nothing about the 433MHz band that makes it especially noisy, though there may be occasional interference from other users of the band, that's probably not what you're seeing.
Simple receivers can crank up the gain in the absence of a signal until their own internal noise is decoded as spurious signals, and that's probably what you are seeing : software filtering is unlikely to be a fix.
Check the datasheet for your receiver : there might be an RSSI output - (Received Signal Strength Indicator) - usually an analog voltage, representing the incoming signal strength (and not very precisely).
One approach is to read this in an analog (ADC) channel, and ignore the receiver output if the RSSI is below a certain level. If you're not attempting maximum range, you can set this level fairly high so that you only decode a strong signal with few errors.
Otherwise you may need to combine with some other error mitigation scheme - re-transmitting faulty messages or error correcting codes for example - details are far too wide for a simple Q&A but how to meet a specific service goal might be a better question.
Thought experiment: remove the receiver antenna, replace with short circuit from antenna connection on pcb to ground on pcb. Place receiver in a perfect faraday cage and only when you cool it down to significantly close to absolute zero will the automatic gain control in the receiver not be sensitive enough to pick up noise and amplify it.