1.4 ANALOG VERSUS DIGITAL TRANSMISSION

 < Day Day Up > 



1.4 ANALOG VERSUS DIGITAL TRANSMISSION

The electrical signal output from a transducer such as microphone or a video camera is an analog signal; that is, the amplitude of the signal varies continuously with time. Transmitting this signal (with necessary transformations) to the receiving end results in analog transmission. However, at the receiving end, it has to be ensured that the signal does not get distorted at all due to transmission impairments, which is very difficult.

start example

In analog communication, the signal, whose amplitude varies continuously, is transmitted over the medium. Reproducing the analog signal at the receiving end is very difficult due to transmission impairments. Hence, analog communication systems are badly affected by noise.

end example

The output of a computer is a digital signal. The digital signal has a fixed number of amplitude levels. For instance, binary 1 can be represented by one voltage level (say, 5 volts) and binary 0 can be represented by another level (say, 0 volt). If this signal is transmitted through the medium (of course with necessary transformations), the receiving end needs only to detect these levels. Even if the signal is slightly impaired due to noise, still there is no problem. For example, we can say that if the signal is above 2.5 volts, it is 1 and if it is below 2.5 volts, it is zero. Unless the signal is badly damaged, we can easily find out whether the transmitted bit is a 1 or a 0.

The voice and video signals (output of the transducer) are always analog. Then how do we take advantage of the digital transmission? Simple. Convert the analog signal into the digital format. This is achieved through analog-to-digital conversion. At this point, let us assume only that it is possible to convert an analog signal into its equivalent digital signal. We will study the details of this conversion process in later chapters.

start example

In a digital communication system, 1s and 0s are transmitted as voltage pulses. So, even if the pulse is distorted due to noise, it is not very difficult to detect the pulses at the receiving end. Hence, digital communication is much more immune to noise as compared to analog communication.

end example

Digital transmission is much more advantageous than analog transmission because digital systems are comparatively immune to noise. Due to advances in digital electronics, digital systems have become cheaper, as well. The advantages of digital systems are:

  • More reliable transmission because only discrimination between ones and zeros is required.

  • Less costly implementation because of the advances in digital logic chips.

  • Ease of combining various types of signals (voice, video, etc.).

  • Ease of developing secure communication systems.

Though a large number of analog communication systems are still in use, digital communication systems are now being deployed. Also, the old analog systems are being replaced by digital systems. In this book, we focus mainly on digital communication systems.

start example

The advantages of digital communication are more reliable transmission, less costly implementation, ease of multiplexing different types of signals, and secure communication.

end example

Note 

All the newly developed communication systems are digital systems. Only in broadcasting applications, is analog communication used extensively.

Summary

This chapter has presented the basic building blocks of a communication system. The information source produces the data that is converted into electrical signal and sent through the transmission medium. Since the transmission medium introduces noise, additional processing is required to transmit the signal over large distances. Also, additional processing is required if the medium is shared by a number of users.

Communication systems are of various types. Point-to-point systems provide communication between two end points. Point-to-multipoint systems facilitate sending information simultaneously to a number of points. Broadcasting systems facilitate sending information to a large number of points from a central location. Simplex systems allow communication only in one direction. Half-duplex systems allow communication in both directions but in one direction at a time. Full-duplex systems allow simultaneous communication in both directions.

Communication systems can be broadly divided into analog communication systems and digital communication systems. In analog communication systems, the analog signal is transmitted. In digital communication system, even though the input signal is in analog form, it is converted into digital format and then sent through the medium. For a noise condition, the digital communication system gives better performance than the analog system.

The concepts of multiplexing and multiple access also are introduced in this chapter. The details will be discussed in later chapters.

References

  • G. Kennedy and B. Davis. Electronic Communication Systems. Tata McGraw-Hill Publishing Company Limited, 1993.

  • R. Horak. Communication Systems and Networks. Wiley-Dreamtech India Pvt. Ltd., 2002.

Questions

  1. What are the advantages of digital communication over analog communication?

  2. Explain the different types of communication systems.

  3. What are the different types of transmission impairments?

  4. What is multiplexing?

  5. What is multiple access?

  6. What is signaling?

Exercises

1. 

Write a program to generate a bit stream of ones and zeros.

to generate a bit stream of 1s and 0s, you can write a program that takes characters as input and produces the ascii bit stream. a segment of the vc++ code is given in listing c.1 . the screenshot for this program is given in figure c.1 . please note that you need to create your own project file in vc++ and add the code given in listing c.1 . screenshot that displays the input text and equivalent ascii code. to generate a bit stream of 1s and 0s. /* converts the text into ascii */ cstring casciimy::texttoascii(cstring text) {cstring ret_str, temp_str;int length, temp_int=0;length=text.getlength();for(int i=0;i-length;i++){ temp_int=text.getat(i); temp_str=convertbase(temp_int,2); ret_str=ret_str+temp_str;}return ret_str; } cstring casciimy::convertbase(int val, int base) {cstring ret_str, temp_str;int ret_val=0;int temp=val;while(1){ if(temp-0){temp_str.format(`%d`,temp%base);ret_str=temp_str+ret_str;temp=temp/base; } else break;}while(ret_str.getlength()-7){ ret_str=`0`+ret_str;}return ret_str; }

2. 

Write a program to generate noise. You can use the random number generation function rand() to generate the random numbers. The conversion of the random numbers to binary form produces a pseudo-random noise.

to generate noise, you need to write a program that generates random numbers. the random numbers can be between 1 and +1. listing c.2 gives the vc++ code segment that does this. you need to create a project file in the vc++ environment and add this code. the waveform of the noise generated using this program is shown in figure c.2 . waveform of the noise signal. to generate random numbers between 1 and +1 and display the waveform. /* to display the signal on the screen */ int cnoise_signaldlg::noisefunction() {cwindowdc dc(getdlgitem(idc_sine));crect rcclient;logbrush logbrush;logbrush.lbstyle =bs_solid;logbrush.lbcolor=rgb(0,255,0);cpen pen(ps_geometric | ps_join_round,1, &logbrush);dc.selectobject(&pen);dc.settextcolor(rgb(255,255,255)); while(continuethread){ m_sine.getclientrect(rcclient); dc.fillsolidrect(rcclient, rgb(0,0,0)); dc.moveto(0,rcclient.bottom/2); int x, y; dc.moveto(0,rcclient.bottom/2); for (x =0 ; x - (rcclient.right); x++) // display input {y = rcclient.bottom/2 - noise();dc.lineto(x, y); } sleep(200);}return 0; }/* to generate the noise signal */ int cnoise_signaldlg::noise() {int nisample;double nsample;double n2pi = 2*tpi;double nwt;noisefreq = 300+rand()%4300;noiseamp = 8+rand()%32;nwt = noisefreq*0.00125;nsampleno++;nsample =noiseamp*sin(n2pi*nwtn);nwtn += nwt;if (nwtn - 1.0) nwtn -= 1.0;nisample = (int) nsample;return nisample; }

3. 

Write a program that simulates a transmission medium. The bits at random places in the bit stream generated (in Exercise #1) have to be modified to create the errors—1 has to be changed to 0 and 0 has to be changed to 1.

to simulate a transmission medium, you need to modify the bit stream at random places by converting 1 to 0 and 0 to 1. listing c.3 gives vc++ code segment that generates the bit stream and then introduces errors at random places. figure c.3 gives the screenshot that displays the original bit stream and the bit stream with errors. screenshot that displays the original bit stream and the bit stream with errors. to simulate a transmission medium. /* to convert the text into bit stream and introduce errors in the bit stream */void cbitstreamdlg::ondisplay(){ // todo: add your control notification handler code here cstring strdata, binary, s, ss, no; int bit, i=0, count=0; char ch; m_text.getwindowtext(strdata); for(int j=0;j-strdata.getlength();j++) {ch=strdata[j];for(int k=0;k-8;i++,count++,k++){ bit = ch%2; bin_val[i]=bit; ch=ch/2; s.format(`%d`,bin_val[i]); binary = binary + s; }}m_bin_data.setwindowtext(binary);for(int n=0;n-10;n++){ int ran_no; srand((unsigned)time( null ) ); ran_no = rand() % 100; ss.format(`%d`,ran_no); afxmessagebox(ss); no = no + `,` + ss; if(bin_val[ran_no]==0) bin_val[ran_no]=1; else bin_val[ran_no]=0;}cstring bin1;for(i=0;i-104;i++){ s.format(`%d`,bin_val[i]); bin1 = bin1 + s;}m_con_text.setwindowtext(bin1);m_random_no.setwindowtext(no); }

4. 

Chips (integrated circuits) are available for generation of noise. Identify a noise generator chip.

many semiconductor vendors provide integrated circuits that generate noise in the audio frequency band. suppliers of measurement equipment provide noise generators used for testing communication systems. the best way to generate noise is through digital signal processors.

Answers

1. 

To generate a bit stream of 1s and 0s, you can write a program that takes characters as input and produces the ASCII bit stream. A segment of the VC++ code is given in Listing C.1. The screenshot for this program is given in Figure C.1. Please note that you need to create your own project file in VC++ and add the code given in Listing C.1.

click to expand
Figure C.1: Screenshot that displays the input text and equivalent ASCII code.

Listing C.1: To generate a bit stream of 1s and 0s.

start example
 /* Converts the text into ASCII */ CString CAsciiMy::TextToAscii(CString text) {    CString ret_str, temp_str;    int length, temp_int=0;    length=text.GetLength();    for(int i=0;i<length;i++){       temp_int=text.GetAt(i);       temp_str=ConvertBase(temp_int,2);       ret_str=ret_str+temp_str;    }    return ret_str; } CString CAsciiMy::ConvertBase(int val, int base) {    CString ret_str, temp_str;    int ret_val=0;    int temp=val;    while(1){       if(temp>0){          temp_str.Format("%d",temp%base);          ret_str=temp_str+ret_str;          temp=temp/base;       }       else             break;    }    while(ret_str.GetLength()<7){       ret_str="0"+ret_str;    }    return ret_str; } 
end example

2. 

To generate noise, you need to write a program that generates random numbers. The random numbers can be between –1 and +1. Listing C.2 gives the VC++ code segment that does this. You need to create a project file in the VC++ environment and add this code. The waveform of the noise generated using this program is shown in Figure C.2.

click to expand
Figure C.2: Waveform of the noise signal.

Listing C.2: To generate random numbers between –1 and +1 and display the waveform.

start example
 /* To display the signal on the screen */ int CNoise_signalDlg::NoiseFunction() {    CWindowDC dc(GetDlgItem(IDC_SINE));    CRect rcClient;    LOGBRUSH logBrush;    logBrush.lbStyle =BS_SOLID;    logBrush.lbColor=RGB(0,255,0);    CPen pen(PS_GEOMETRIC | PS_JOIN_ROUND,1, &logBrush);    dc.SelectObject(&pen);    dc.SetTextColor(RGB(255,255,255));    while(continueThread){       m_sine.GetClientRect(rcClient);       dc.FillSolidRect(rcClient, RGB(0,0,0));       dc.MoveTo(0,rcClient.bottom/2);       int x, y;       dc.MoveTo(0,rcClient.bottom/2);       for (x =0 ; x < (rcClient.right); x++) // display Input       {          y = rcClient.bottom/2 - Noise();          dc.LineTo(x, y);       }       Sleep(200);    }    return 0; } /* To generate the noise signal */ int CNoise_signalDlg::Noise() {    int NISample;    double NSample;    double N2PI = 2*TPI;    double NWT;    NoiseFreq = 300+rand()%4300;    NoiseAMP = 8+rand()%32;    NWT = NoiseFreq*0.00125;    NSampleNo++;    NSample =NoiseAMP*sin(N2PI*NWTn);    NWTn += NWT;    if (NWTn > 1.0) NWTn -= 1.0;    NISample = (int) NSample;    return NISample; } 
end example

3. 

To simulate a transmission medium, you need to modify the bit stream at random places by converting 1 to 0 and 0 to 1. Listing C.3 gives VC++ code segment that generates the bit stream and then introduces errors at random places. Figure C.3 gives the screenshot that displays the original bit stream and the bit stream with errors.

click to expand
Figure C.3: Screenshot that displays the original bit stream and the bit stream with errors.

Listing C.3: To simulate a transmission medium.

start example
    /* To convert the text into bit stream and introduce errors in the bit stream */    void CBitStreamDlg::OnDisplay()    {       // TODO: Add your control notification handler code here       CString strdata, binary, s, ss, no;       int bit, i=0, count=0;       char ch;       m_text.GetWindowText(strdata);       for(int j=0;j<strdata.GetLength();j++)       {          ch=strdata[j];          for(int k=0;k<8;i++,count++,k++)          {             bit = ch%2;             bin_val[i]=bit;             ch=ch/2;             s.Format("%d",bin_val[i]);             binary = binary + s;       }    }    m_bin_data.SetWindowText(binary);    for(int n=0;n<10;n++)    {       int ran_no;       srand((unsigned)time( NULL ) );       ran_no = rand() % 100;       ss.Format("%d",ran_no);       AfxMessageBox(ss);       no = no + "," + ss;       if(bin_val[ran_no]==0)             bin_val[ran_no]=1;       else             bin_val[ran_no]=0;    }    CString bin1;    for(i=0;i<104;i++)    {       s.Format("%d",bin_val[i]);       bin1 = bin1 + s;    }    m_con_text.SetWindowText(bin1);    m_Random_no.SetWindowText(no); } 
end example

4. 

Many semiconductor vendors provide integrated circuits that generate noise in the audio frequency band. Suppliers of measurement equipment provide noise generators used for testing communication systems. The best way to generate noise is through digital signal processors.

Project

Write a report on the history of telecommunication, listing the important milestones in the development of telecommunication technology.



 < Day Day Up > 



Principles of Digital Communication Systems and Computer Networks
Principles Digital Communication System & Computer Networks (Charles River Media Computer Engineering)
ISBN: 1584503297
EAN: 2147483647
Year: 2003
Pages: 313
Authors: K V Prasad

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net