T.J.Moir Personal pages
This software may be freely used, copied and redistributed without
fee for non-commerical purposes provided that this copyright notice is
preserved intact on all copies.
There is no warranty or other guarantee of fitness of this software.
It is provided solely "as is". The author disclaims all
responsibility and liability with respect to this software's usage
and its effect upon hardware or computer systems.LabVIEW is the trademark of National Instruments.
If you are an engineer or scientist and haven't used LabView then you are seriously missing out!! Imagine all the power of Matlab but with easy input-ouput capability
as well. You can access real-world signals via analogue to digital convertors without all the hasltle factor you might have in C++ or C#. Most of
the scientific libraries are all aready written for you - drivers and so on.You even have the famous Compact Rio or the new myRio (a cheaper version for students)
which is an FPGA programmable board and you need to know very little about FPGAs! Great for Robotics,SIgnal Processing,Control-Systems,Measurement and Instrumentation - Data-Logging and so on.
My own experience of programming goes back almost 40 years now. I have programmed in just about every language under the sun but found
LabView by far the easiest by a long stretch for Scientific and Engineering computing. It is a serious object-orientated language like c++ but data-flow based so you program in block diagram
form - a little bit like Simulink. However, unlike Matlab and Simulink which are interpretive languages (ie not compiled), when you press the RUN button
in LabView it compiles into the native code of the machine you are using. You can also create executables too of course and import programs - dll's
from other languages if you have a driver written in c for instance and you don't want to re-write it.
Graphics is as easy as pie - loads of graphical possibilities. It's not cheap, but you have to remember that there is a huge scientific library already
written for it. So what's wrong with Matlab? Nothing, I use it too. It's just that LabView has that extra dimension for continual simulation or analysis where data is being retreieved from real hardware.
Matlab doesn't provide hardware support except via third party equipment. You can take your Matlab script and put it into LabView too of course.
Dual LMS (least-mean squares) adaptive noise canceller
This is a cross-coupled method using two microphones of separating two speech signals which have been
mixed with convulution. The mixture model is something like Y1=H11 X1 + H12 X2 and Y2=H21 X1 + H22 X2
where X1 and X2 are the two pure speech signals and Y1 and Y2 are the measured signals. The H terms are the acoustic transfer functions.
You also need to download a stereo wav file to test the program.
Stereo Wav file 16bit sampled at 22050Hz
If you don't have LabView then you can download the executable version of the program.
Dual LMS (least-mean squares) adaptive noise canceller executable version
Note, you will also need the LabView 2009 runtime engine from the link below.
LabView runtime engine at this link.
Here are some more LabView programs I wrote on the National Instruments website. These include Kalman Filters,
H Infinity Estimation,Recursive Least Squares,Acoustic Direction Finding and so on.
Comparison of RLS,a Kalman Filter and an H Infinity state Estimator
Sonar simulation with 3 microphones.
Time-delay estimation and acoustic bearing estimation.
Comparison of normalised LMS,RLS,Kalman FIlter and H Infinity.
LabView Internet Phone
Spectral Factorization of z-domain Polynomials.
Phase-Locked Loop (PLL) Simulation.
Multivariable Polynomial Matrix Spectral Factorization.
Multivariable Polynomial Matrix Spectral Factorization using feedback control paper.
FPGA Single Board Rio 9636 Spectrum Analyser and Wireless Transmission to a Tablet PC.
Youtube video illustrating Tablet PC based Spectral Analysis and Oscilloscope.
Youtube video of an Acoustic Direction Finder
Youtube video illustrating Blind Source Speech Separation using the Natural Gradient Algorithm.
Polynomial Matrices AND how to deal with them in LabView.A library.
Scrolling Large LED Display Board. Also illustrates State-Machines.