Summary: Simulation and visualization enhance understanding of communication system behavior and performance. In this project, develop a simple model for a transmitter, channel, and receiver, and study the performance of the system in terms of bit error rate (BER). Channel errors are visualized as images and "auralized" as sound to further develop insight into the relationships between bit error rate and message length.
Note: Your browser may not currently support MathML. See our browser support page for additional details. You can always view the correct math in the PDF version.
![]() |
This module refers to LabVIEW, a software development environment that features a graphical programming language. Please see the LabVIEW QuickStart Guide module for tutorials and documentation that will help you: |
| • Apply LabVIEW to Audio Signal Processing | |
| • Get started with LabVIEW | |
| • Obtain a fully-functional evaluation edition of LabVIEW |
Simulation and visualization enhance understanding of communication system behavior and performance. In this project, develop a simple model for a transmitter, channel, and receiver, and study the performance of the system in terms of bit error rate (BER). Channel errors are visualized as images and "auralized" as sound to further develop insight into the relationships between bit error rate and message length.
Refer to the following textbooks for additional background on the binary symmetric channel (also known as the discrete memoryless channel) used in this project; see the "References" section below for publication details:
If you are relatively new to LabVIEW, consider taking the course LabVIEW Techniques for Audio Signal Processing which provides the foundation you need to complete this project activity, including: block diagram editing techniques, essential programming structures, subVIs, arrays, and audio.
Figure 1 illustrates a generic communication system (transmitter, channel, and receiver) and a comparator to compare the original source bitstream to the output bitstream and report bit errors.
![]() |
This project implements Figure 1 at an elementary level:
Build the subVIs listed below. You may already have some of these available from previous projects.
Demonstrate that each of these subVIs works properly before continuing to the next part.
SystemOne.vi pictured in
Figure 2 by assembling the
subVIs you built in the previous step. Use the default control and indicator styles for now.
Expand the Boolean array indicators to show 20 elements (click on the outer frame of the
indicator and drag either horizontally or vertically).
length (say, 10 or 20) and various levels
of bit error rate. Remember that the keyboard shortcut "Ctrl+R" runs the VI.
measured BER output.
![]() |
The default numerical controls and indicators are useful to examine details such as the BER calculation. However, changing many of the controls and indicators to other forms greatly improves the usability of the front panel and facilitates greater interactivity.
View the Figure 3 screencast video to learn how to convert the
numerical front panel controls to sliders and to visualize the bitstreams as waveforms.
In addition, learn how to set the BER slider control to use logarithmic
mapping to more conveniently select values over a wide range.
Modify your application VI front panel accordingly to produce SystemTwo.vi.
You have noticed by now that the measured bit error rate value is rarely (if ever) the same value
as the specified BER of the channel. Moreover, the measured BER can change considerably from one run
to the next.
Continual operation of a VI greatly improves one's ability to see patterns and
relationships emerge. In this section, modify the VI to run continually and observe the relationship
between specified and measured BER value as a function of the bitstream length.
View the Figure 4 screencast video to learn how to add a
while-loop structure to operate the system continually, and then modify your application VI
accordingly to produce SystemThree.vi.
Experiment with SystemThree.vi:
Discuss your results:
Visualizing the error bitstream as 2-D image develops a qualitative feel for the impact of bit error rate on the data output of a binary communication system. That is, what value of BER corresponds to a "high quality" image transmission? Or, what value of BER makes the received image "poor quality"?
View the Figure 5 screencast video to learn how to reshape the error bitstream
into a two-dimensional array suitable for display as a binary (2-level) image using the LabVIEW subVIs "Flatten Pixmap" and
"Draw Flattened Pixmap." In addition, learn how to programmatically control the size of the front-panel image indicator
using a "property node." Modify your application VI accordingly to produce SystemFour.vi.
Experiment with SystemFour.vi to study the relationship between BER and image size. To begin,
set the bitstream length to 1,024 to produce a 32x32 image. Set the bit error rate to 0.0001. Describe the appearance of the
error bitstream as an image, and state the relative "quality" of the image (remember that an ideal error image would always be
uniformly black).
Now, gradually increase the bitstream length to 200,000 while watching the image. Would you still consider the image to be at the same quality level as before? What BER value do you need to obtain the same quality level you stated for the short bitstream length?
Explain why a specific BER value can be considered acceptable for some types of transmitted messages and not for others.
"Auralizing" the error bitstream as sound also develops your qualitative feel for bit error rate.
Download and run bit_errors_as_sound.vi.
This application VI continually generates "the sound of silence" (bitstream of 0s) at the source with channel bit errors inserted according to the "BER" slider. Sound is generated in blocks (frames), and total errors within a frame are reported. The average bit errors per second is also reported. Note that the circular panel indicators use logarithmic mapping.
"In this project, develop a simple model for a transmitter, channel, and receiver, and study the performance of the system in terms of bit error rate (BER). Channel errors are visualized as images […]"