Please help me with this assignment.
The purpose of this assignment is to simulate the transmission and reception of a text message (i.e., character string) over a noisy communications channel. Suppose we wish to transmit the string "Hello." We can translate this string into a bit stream as shown below:
String: H e l l o . \0 (note: the last character \0 is the null terminator character)
ASCII: 72 101 108 108 111 46 0
Binary: 01001000 01100101 01101100 01101100 01101111 00101110 00000000
Notice how this string can be expressed as 8 x 7 = 56 bits. Suppose we transmit each of these bits as voltages on an electrical signal (for simplicity, +1.0 V for binary 1 and 0.0 V for binary 0).
We can simulate noise by encoding these bits in a double array of length 56 and then adding noise samples to the 1.0 and 0.0 values that will initially be loaded into the array. With a small amount of noise (low SNR), the values in this array for the first character "H" may be:
0.0143, 0.9985, -0.00124, 0.1076, 1.00325, 0.00173, 0.0563, 0.00474
With low noise, it is clear that the voltages "near" 0 represent binary 0 and the voltages "near" 1 represent binary 1. As a general rule, a receiver will take any voltages less than 0.5 and treat them as binary 0 and any voltages greater than or equal to 0.5 and treat them as binary 1.
Problem
Write a function
char* signal_to_message(double* signal, int size);
that accepts a noisy signal (as an array) and the size of the array. The output should be a string,
i.e., character array with null terminator, that represents the received message.