16-01-2013, 11:14 AM
APPLICATION OF VIRTUAL INSTRUMENTATION & LABVIEW IN COMMUNICATION SYSTEMS
APPLICATION OF VIRTUAL.pdf (Size: 2.17 MB / Downloads: 299)
Introduction:
Virtual instrumentation:
Virtual Instrumentation is the use of customizable software and modular measurement hardware
to create user-defined measurement systems, called virtual instruments. The concept of a
synthetic instrument is a subset of the virtual instrument concept. A synthetic instrument is a
kind of virtual instrument that is purely software defined. A synthetic instrument performs a
specific synthesis, analysis, or measurement function on completely generic, measurement
agnostic hardware. Virtual instruments can still have measurement specific hardware, and tend to
emphasize modular hardware approaches that facilitate this specificity. Hardware supporting
synthetic instruments is by definition not specific to the measurement, nor is it necessarily (or
usually) modular.
Leveraging commercially available technologies, such as the PC and the analog to digital
converter, virtual instrumentation has grown significantly since its inception in the late 1970s.
Additionally, software packages like National Instruments' Lab VIEW and other graphical
programming languages helped grow adoption by making it easier for non-programmers to
develop systems.
Lab VIEW:
Lab VIEW (short for Laboratory Virtual Instrumentation Engineering Workbench)
is a platform and development environment for a visual programming language from National
Instruments. Originally released for the Apple Macintosh in 1986, Lab VIEW is commonly used
for data acquisition, instrument control, and industrial automation on a variety of platforms
including Microsoft Windows, various flavors of UNIX, Linux, and Mac OS.The programming
language used in Lab VIEW, is a dataflow language. Execution is determined by the structure of
a graphical block diagram.
Communication systems:
Starting from the easiest of the communication techniques and systems we move
towards the most complicated and explore the use of virtual instrumentation and lab VIEW and
its scope in creating a close simulation of these systems. The techniques covered begin from
normal frequency translation to amplitude modulation leading to pulse modulation and finally
culminates in the simulation of tougher topics like that of time and frequency division
multiplexing and amplitude shift keying.
Virtual instrumentation
Virtual Instrumentation is the use of customizable software and modular measurement hardware
to create user-defined measurement systems, called virtual instruments.
'Traditional' or 'natural' instrumentation systems are made up of pre-defined hardware components,
such as digital multimeters and oscilloscopes that are completely specific to their stimulus, analysis,
or measurement function. Because of their hard-coded function, these systems are more limited in
their versatility than virtual instrumentation systems. The primary difference between 'natural'
instrumentation and virtual instrumentation is the software component of a virtual instrument. The
software enables complex and expensive equipment to be replaced by simpler and less expensive
hardware; e.g. analog to digital converter can act as a hardware complement of a virtual
oscilloscope, a potentiostat enables frequency response acquisition and analysis in electrochemical
impedance spectroscopy with virtual instrumentation.
The concept of a synthetic instrument is a subset of the virtual instrument concept. A synthetic
instrument is a kind of virtual instrument that is purely software defined. A synthetic instrument
performs a specific synthesis, analysis, or measurement function on completely generic,
measurement agnostic hardware. Virtual instruments can still have measurement specific hardware,
and tend to emphasize modular hardware approaches that facilitate this specificity. Hardware
supporting synthetic instruments is by definition not specific to the measurement, nor is it
necessarily (or usually) modular.
Dataflow programming
The programming language used in LabVIEW, called "G", is a dataflow language. Execution is
determined by the structure of a graphical block diagram (the LV-source code) on which the
programmer connects different function-nodes by drawing wires. These wires propagate variables
and any node can execute as soon as all its input data become available. Since this might be the case
for multiple nodes simultaneously, G is inherently capable of parallel execution. Multi-processing
and multi-threading hardware is automatically exploited by the built-in scheduler, which
multiplexes multiple OS threads over the nodes ready for execution.
Programmers with a background in conventional programming often show a certain reluctance to
adopt the LabVIEW dataflow scheme, claiming that LabVIEW is prone to race conditions. In
reality, this stems from a misunderstanding of the data-flow paradigm. The aforementioned dataflow
(which can be "forced", typically by linking inputs and outputs of nodes) completely defines
the execution sequence, and that can be fully controlled by the programmer. Thus, the execution
sequence of the LabVIEW graphical syntax is as well defined as with any textually coded language
such as C, Visual BASIC, and Python etc. Furthermore, LabVIEW does not require type definition
of the variables; the wire type is defined by the data-supplying node. LabVIEW supports
polymorphism in that wires automatically adjust to various types of data.
Graphical programming
LabVIEW ties the creation of user interfaces (called front panels) into the development cycle.
LabVIEW programs/subroutines are called virtual instruments (VIs). Each VI has three
components: a block diagram, a front panel and a connector pane. The latter may represent the VI as
a subVI in block diagrams of calling VIs. Controls and indicators on the front panel allow an
operator to input data into or extract data from a running virtual instrument. However, the front
panel can also serve as a programmatic interface. Thus a virtual instrument can either be run as a
program, with the front panel serving as a user interface, or, when dropped as a node onto the block
diagram, the front panel defines the inputs and outputs for the given node through the connector
pane. This implies each VI can be easily tested before being embedded as a subroutine into a larger
program.
The graphical approach also allows non-programmers to build programs by simply dragging and
dropping virtual representations of the lab equipment with which they are already familiar. The
LabVIEW programming environment, with the included examples and the documentation, makes it
simpler to create small applications. This is a benefit on one side but there is also a certain danger of
underestimating the expertise needed for good quality "G" programming. For complex algorithms
or large-scale code it is important that the programmer possess an extensive knowledge of the
special LabVIEW syntax and the topology of its memory management. The most advanced
LabVIEW development systems offer the possibility of building stand-alone applications.
Furthermore, it is possible to create distributed applications which communicate by a client/server
scheme, and thus is easier to implement due to the inherently parallel nature of G-code.
Benefits
One benefit of LabVIEW over other development environments is the extensive support for
accessing instrumentation hardware. Drivers and abstraction layers for many different types of
instruments and buses are included or are available for inclusion. These present themselves as
graphical nodes. The abstraction layers offer standard software interfaces to communicate with
hardware devices. The provided driver interfaces save program development time.
Criticism
LabVIEW is a proprietary product of National Instruments. Unlike common programming
languages such as C or FORTRAN, LabVIEW is not managed or specified by a third party
standards committee such as ANSI. Obtaining a fully compatible and up to date LabVIEW platform
requires purchasing the product. There is a movement to create user-defined extensions for the
development environment at OpenG.org but an initial purchase of LabVIEW is still required.
Currently there is no open source, free software or alternative commercial program that can
implement any portion of G-code.
In addition, as of version 8, all LabVIEW installs require customers to contact National Instruments
by Internet or phone to "activate" the product. The increasing dependence on the vendor suggests
possible privacy and data security concerns. For example, although National Instruments claims the
process is "secure and anonymous" the immediate implication is that a legal but privately installed
instance of LabVIEW seems no longer possible. However, if National Instruments were to go out of
business, the LabVIEW code is escrowed and would be released to the public, and so there would
be no concerns over activation. This would mean that, with the current system, the user would no
longer be able to access their code base as well as certain formats of archived data.