6
Software Development for Wind Profiler Signal Processing Using Python with NumPy and SciPy Noor Hafizah Binti Abdul Aziz 1,2 , Masayuki K. Yamamoto 1 , Toshiyuki Fujita 1 , Hiroyuki Hashiguchi 1 , Mamoru Yamamoto 1 1 Research Institute for Sustainable Humanosphere (RISH), Kyoto University, Japan. 2 Faculty of Electrical Engineering, Universiti Teknologi MARA (UiTM), Malaysia. 1. Introduction Wind profiler is a useful means to measure altitude profiles of vertical and horizontal wind velocities with high time and vertical resolutions (Hocking, 2011). Range imaging (RIM) is a technique that improves range resolution down to several ten meters by using frequency diversity and adaptive signal processing. RIM is useful for resolving fine-scale structure of atmospheric instability such as Kelvin-Helmholtz billows. Therefore RIM can be used for early detection of small-scale turbulence. In order to develop an algorithm that detects the small-scale turbulence automatically, a software with high portability (i.e. work under multiple platform) and generality (i.e. written by popular software language) is required to be developed. In developing software, we are using Python with SciPy and NumPy libraries. 2. USRP2 as a Radar Digital Receiver USRP2 (Universal Software Radio Peripheral 2) is a software defined radio receiver. USRP2 is controlled by UHD (‘Universal Software Radio Peripheral’ Hardware Driver). UHD is available from C++ and Python. Software defined radar receiver is able to be developed using free and popular software languange. Because USRP2 does not have trigger terminal to start and stop data sampling, the leakaged of transmission signals are used for ranging. Oversampling facility is easy to be implemented because of high-time resolution data sampling up to 25 MHz is available. Data were collected by USRP2 and 1.3-GHz LQ7 transmission system (Imai et. al., 2007). 3. Python with NumPy and SciPy Python runs on Windows, Linux/Unix, Mac OS X, and has been ported to the Java and .NET virtual machines which is free to use, even for commercial products, because of its OSI- approved open source license. SciPy library is built to work with NumPy arrays which is the fundamental package needed for scientific computing with Python. NumPy and SciPy contain a powerful N-dimensional array object, sophisticated functions such as linear algebra, Fourier transform, and random number capabilities. Indexing like operations can be used in this data signal processing (example ‘numpy.where’ which returns array indices which satisfy given conditions). Other useful mathematical operators such as numpy.mean, numpy.max, numpy.empty, numpy.sum, numpy.array, numpy.copy and numpy.dot is used to increase the calculation and coding efficiency. Using Python, radar signal processing software has been developed in order to estimate spectral parameters (i.e. echo power, Doppler velocity and Doppler velocity variance).

Software Development for Wind Profiler Signal … Development for Wind Profiler Signal Processing Using Python with NumPy and SciPy Noor Hafizah Binti Abdul Aziz1,2, Masayuki K. Yamamoto1,

Embed Size (px)

Citation preview

Page 1: Software Development for Wind Profiler Signal … Development for Wind Profiler Signal Processing Using Python with NumPy and SciPy Noor Hafizah Binti Abdul Aziz1,2, Masayuki K. Yamamoto1,

Software Development for Wind Profiler Signal Processing Using Python

with NumPy and SciPy

Noor Hafizah Binti Abdul Aziz1,2, Masayuki K. Yamamoto1, Toshiyuki Fujita1, Hiroyuki Hashiguchi1, Mamoru Yamamoto1

1Research Institute for Sustainable Humanosphere (RISH), Kyoto University, Japan. 2Faculty of Electrical Engineering, Universiti Teknologi MARA (UiTM), Malaysia.

1. Introduction

Wind profiler is a useful means to measure altitude profiles of vertical and horizontal wind velocities with high time and vertical resolutions (Hocking, 2011). Range imaging (RIM) is a technique that improves range resolution down to several ten meters by using frequency diversity and adaptive signal processing. RIM is useful for resolving fine-scale structure of atmospheric instability such as Kelvin-Helmholtz billows. Therefore RIM can be used for early detection of small-scale turbulence. In order to develop an algorithm that detects the small-scale turbulence automatically, a software with high portability (i.e. work under multiple platform) and generality (i.e. written by popular software language) is required to be developed. In developing software, we are using Python with SciPy and NumPy libraries.

2. USRP2 as a Radar Digital Receiver

USRP2 (Universal Software Radio Peripheral 2) is a software defined radio receiver. USRP2 is controlled by UHD (‘Universal Software Radio Peripheral’ Hardware Driver). UHD is available from C++ and Python. Software defined radar receiver is able to be developed using free and popular software languange. Because USRP2 does not have trigger terminal to start and stop data sampling, the leakaged of transmission signals are used for ranging. Oversampling facility is easy to be implemented because of high-time resolution data sampling up to 25 MHz is available. Data were collected by USRP2 and 1.3-GHz LQ7 transmission system (Imai et. al., 2007).

3. Python with NumPy and SciPy

Python runs on Windows, Linux/Unix, Mac OS X, and has been ported to the Java and .NET virtual machines which is free to use, even for commercial products, because of its OSI-approved open source license. SciPy library is built to work with NumPy arrays which is the fundamental package needed for scientific computing with Python. NumPy and SciPy contain a powerful N-dimensional array object, sophisticated functions such as linear algebra, Fourier transform, and random number capabilities. Indexing like operations can be used in this data signal processing (example ‘numpy.where’ which returns array indices which satisfy given conditions). Other useful mathematical operators such as numpy.mean, numpy.max, numpy.empty, numpy.sum, numpy.array, numpy.copy and numpy.dot is used to increase the calculation and coding efficiency. Using Python, radar signal processing software has been developed in order to estimate spectral parameters (i.e. echo power, Doppler velocity and Doppler velocity variance).

Page 2: Software Development for Wind Profiler Signal … Development for Wind Profiler Signal Processing Using Python with NumPy and SciPy Noor Hafizah Binti Abdul Aziz1,2, Masayuki K. Yamamoto1,

The sigwhich haveragedevelopsignal pseries sdone byonline calculatvelocity

Figure data, anshows aIQ signpurple averageFigure

b)

gnal processhad been ped in time (iped using Pprocessing fsignal procey running mor offline. tion by FFTy and Doppl

1 shows a rnd red and ba time serie

nals comput(imaginary

ed data are 1c are used

DC had bee

sing starts frprocessed ini.e. coheren

Python withfocused on essing, DC

mean methodIn the sec

T, noise levler spectrum

esult of timblack curve

es after DC ed by 100 pcomponensubtracted

for spectral

en removed

c

4. Signa

from IQ signn USRP2. Int integratioh NumPy aclutter rejecomponent

d. Ranging,cond sectiovel estimatiom) estimatio

me series siges show rea

componentpoints runni

nt) curves. Fd (i.e., highl moment es

a)

d and low-fr

c) Running

Fig. 1 : Ex

al Processin

nal detectioIn the PC, on). Subsequand SciPy, ection and st had been , decoding a

on, there aron and specon by mome

nal processal and imagt is removeing averageFigure 1c s

hpass filterestimation.

Raw time

requency sig

g average d

xample of re

ng Flow

on and analothe IQ signuently, in oit is divide

spectral pararemoved a

and coherenre three cactral parameent method.

ing. Figure inary comp

ed (black ane are shownshows the ted data). Th

e series

gnals compu

ata is subtra

eceived time

og to digitanals are ranoffline signaed into twoameter estimand then hint integratioalculations: eter (i.e. ec

1a shows aponent, respnd red curven by blue (retime series he time ser

uted by 100

acted

e series.

al (A/D) connged, decodal processino parts: timmation. In tgh-pass filt

on are proceDoppler s

cho-power,

a raw IQ timpectively. Fies). Low freeal compon

after the rries data sh

0 points runn

nversion ded, and ng which me series

the time tering is essed by pectrum Doppler

me series igure 1b equency

nent) and running-hown in

ning averagge

Page 3: Software Development for Wind Profiler Signal … Development for Wind Profiler Signal Processing Using Python with NumPy and SciPy Noor Hafizah Binti Abdul Aziz1,2, Masayuki K. Yamamoto1,

Figure 2a Doppcorrecteexist inscipy.ff

In speccalculatspectra,receivedspectraland numcurve isvelocityused fospectra.

2 shows a rpler spectrued Doppler n the rangeftshift and s

ctral paramtion using H, (iii) peak d power is l parameter mpy.max ars raw Doppy range seleor spectral p. These calc

result of speum compute

spectrum fre between cipy.fftpack

meter estimHildebrand

search, (ivgreater thanestimation

re used. Figupler spectrumected by smparameter eculations use

ectral data ued from rawrom high-pa2 to 3 ms

k are used.

Fig. 2 : Ex

mation, the (1974), (ii)

v) determinn thresholdusing the m

ure 3 showsm and green

moothed Dopestimation se numpy.m

using the timw time seriass filtered ts-1 and noi

ample of sp

following ) 5 points runation of co(noise leve

moment mes a result ofn curve is sppler spectruch as echoean, numpy

me series shies (see Figtime series se level is

pectral data.

proceduresunning meaontinuous Dl + 3×(nois

ethod. In thef spectral pasmoothed Drum and theo power, sty.where and

hown in Figgure 1a) an(see Figure92 dB. F

.

s are takenan (smoothiDoppler vele standard de all procedarameter est

Doppler spece threshold (tandard devd numpy.ma

gure 1. Red nd black cue 1c). Clear-or executin

n. (i) Noising) to the locity rangedeviation)),

dures, numptimation. Thctrum. The (blue dotted

viation and ax.

curve is urve is a -air echo ng FFT,

se level Doppler e where , and (v)

py.where he black Doppler

d line) is Doppler

Page 4: Software Development for Wind Profiler Signal … Development for Wind Profiler Signal Processing Using Python with NumPy and SciPy Noor Hafizah Binti Abdul Aziz1,2, Masayuki K. Yamamoto1,

Figure determioversamscale veclearer reprodureveal f

A radarturbulenresults processfilteringHildebrspectraldevelopoversamdevelop

F

4 shows ined by 1-µmpling. Theertical chanthan no-ov

uction of turfine-scale tu

r signal pronce using Rdemonstrat

sing. The sog, calculaterand (1974)l parameterped is usefmpling to pment will b

ig. 3 : An e

a spectral µs transmittee result demges of receiversamplingrbulence strurbulence st

cessing sofRIM is beinge that Pyth

oftware inclue Doppler ), find the Drs with gooful for mitreveal fine

be show in s

xample of s

5. Ove

parameter ed pulse wi

monstrates thived signalsg scale. Thructure by futructure by d

6

ftware necesg developed

hon with Nuudes the folspectrum uDoppler veod accuracytigating clue-scale strusubsequent

spectral para

ersampling

estimationdth (150m)

hat even thes. The verticherefore, ovfurther usingdecorrelatin

. Conclusio

ssary for bud using PythumPy and Sllowing funusing FFT,elocity rangy. We shoutter signalucture of rstudies.

ameter estim

Result

n result usi, and Figur

e simple ovecal variabiliversamplingg RIM and fng signals in

on

uilding detehon with NuSciPy is a pctions remo

estimate nge where raowed the exls. Further radar echo

mation resu

ing originare 5 shows aersamplingity of Doppg is useful for developn range.

ection algorumPy and Spowerful to

ove clutter snoise level adar echo example tha

we showeand wind

ult.

al range rea result of 1can reveal t

pler spectra for high a

ping an algo

ithm of smaSciPy packaool for radasignals by h

using metexists, and eat the softwed a capabd velocity.

esolution 10 times the fine-is much accurate

orithm to

all-scale age. Our ar signal high pass thod by estimate

ware we bility of

Further

Page 5: Software Development for Wind Profiler Signal … Development for Wind Profiler Signal Processing Using Python with NumPy and SciPy Noor Hafizah Binti Abdul Aziz1,2, Masayuki K. Yamamoto1,

Fig. 44 : Result us

Fig. 5 : R

sing 150-m

Result using

resolution (

g 10-times (

(i.e., withou

15-m) overs

ut oversamp

sampling.

pling).

Page 6: Software Development for Wind Profiler Signal … Development for Wind Profiler Signal Processing Using Python with NumPy and SciPy Noor Hafizah Binti Abdul Aziz1,2, Masayuki K. Yamamoto1,

Acknowledgement

This research was supported by Adaptable and Seamless Technology Transfer Program through Target-Driven R&D (A-STEP) Exploratory Research (Research No. AS232Z00186A).

References

1. Hildebrand, P.H., and Sekhon, R.S., Objective Determination of the Noise Level in Doppler Spectra, Appl. Meterol., 13, 808-811, 1974.

2. Hocking, W.K., A review of Mesosphere-Stratosphere-Troposphere (MST) Radar Developments and Studies, circa 1997-2008, Journal Atmosphere Solar Terr. Phys., 73, 848–882, 2011.

3. Imai, K., Nakagawa, T., and Hashiguchi, H., Development of Tropospheric Wind Profiler Radar with Luneberg Lens Antenna (WPR LQ-7), Sumitomo Electric Technical Review, 38-42, 2007.