8 1. INTRODUCTION
FIR filtering (linear convolution) code is used here to show the effects of these steps on the real-
time throughput. Compiler options constitute the simplest but an effective optimization step.
By changing these options, the compiler produces executable binaries that are either optimized
for higher processing speed or for lower memory footprint. After carrying out various compiler
optimization options and observing the computational efficiency gains, one can take advantage
of the NEON SIMD coprocessor that modern smartphones possess to perform vector data
processing. One method of using the NEON coprocessor is the use of NEON intrinsics within
C codes. ese intrinsics allow access to architecture specific operations such as fused multiply-
accumulate, the Newton–Raphson method for division and square root, data format conversions,
and saturating arithmetic operations. In other words, many of the architecture specific features
of the ARM processor can be accessed by utilizing intrinsic functions within C codes. e initial
processing algorithms can be used as a basis for deciding where to utilize intrinsics. In this lab, it
is demonstrated that the convolution of two signal sequences can be performed more efficiently
by utilizing a vectorized loop via NEON intrinsics.
Chapter 10 presents an optional alternative approach using the MATLAB Coder [14]
from the company MathWorks that can be used to rapidly take a signal processing algorithm
implemented in MATLAB and transfer it to a smartphone target. e lab experiment (Lab L10)
covered in the chapter exhibits the setup process for the MATLAB Coder tool provided by
MathWorks which allows converting MATLAB functions into C functions. is requires the
use of MATLAB version 2016a with the MATLAB Coder included. e experiment discussed
in this chapter shows how to convert a MATLAB function into a C function and implement it
into an Android or an iOS app.
1.5 SOFTWARE PACKAGE OF LAB CODES
For performing the laboratory experiments, similar to existing real-time or applied digital signal
processing courses, familiarity with C programming and MATLAB are assumed. e lab codes
can be obtained from the third-party link http://sites.fastspring.com/bookcodes/pro
duct/SignalProcessingBookcodesSecondEdition. e lab subfolders found under Android
and iOS in the package include all the codes necessary to implement the labs. For the iOS
platform, the necessary software is the Xcode IDE which may be installed from the Mac App
Store free of charge. In order to deploy and test apps on an iOS device, note that it is first
required to enroll in the iOS Developer Program. e shell for the iOS operating system is
included as part of the above package so that all the codes can be acquired together in one place.
In the absence of a smartphone target, the simulator can be used to verify code function-
ality by using data already stored in a data file or from sensors present on the host machine
running the simulator. However, when using the simulator, sensor support is often limited and
performance is not comparable to that of an actual smartphone target. To be able to process
signals in real-time, an actual smartphone target is needed. All the hardware necessary to run
the laboratory experiments covered in this book is available on a modern smartphone.
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.188.66.13