26
Short Course on Underwater Acoustic Signal Processing, Arraial do Cabo, 2009 Module 1 - Signal estimation ergio M. Jesus ([email protected]) Universidade do Algarve, PT-8005-139 Faro, Portugal www.siplab.fct.ualg.pt February 2009 Short Course on Underwater Acoustic Signal Processing

Module 1 - Signal estimation · Module 1 - Signal estimation S ergio M. Jesus ([email protected]) Universidade do Algarve, PT-8005-139 Faro, Portugal February 2009 Short …

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Module 1 - Signal estimation · Module 1 - Signal estimation S ergio M. Jesus (sjesus@ualg.pt) Universidade do Algarve, PT-8005-139 Faro, Portugal  February 2009 Short …

Short Course on Underwater Acoustic Signal Processing, Arraial do Cabo, 2009

Module 1 - Signal estimation

Sergio M. Jesus([email protected])

Universidade do Algarve,PT-8005-139 Faro, Portugal

www.siplab.fct.ualg.pt

February 2009

Short Course on Underwater Acoustic Signal Processing

Page 2: Module 1 - Signal estimation · Module 1 - Signal estimation S ergio M. Jesus (sjesus@ualg.pt) Universidade do Algarve, PT-8005-139 Faro, Portugal  February 2009 Short …

Outline of Module 1

• Parameter estimation(1) the problem(2) example of estimators

• The underwater channel as a linear system(1) data model and assumptions(2) the space-time filter: real data example

• Data model and optimality(1) the discrete data model(2) deterministic signal in noise: the optimal noise enhancer(3) the generalized matched filter (GMF)(4) the correlated noise case(5) the multichannel optimal receiver

Short Course on Underwater Acoustic Signal Processing S.M.Jesus

Page 3: Module 1 - Signal estimation · Module 1 - Signal estimation S ergio M. Jesus (sjesus@ualg.pt) Universidade do Algarve, PT-8005-139 Faro, Portugal  February 2009 Short …

A parameter estimation problem

Assume de discrete time observations

xt = [x(0), x(1), . . . , x(N − 1)] (1)

that depends on some parameter θ that we want to estimate.

Estimator θ of θ can be written as a deterministic function g of the observed dataset

θ = g(x) (2)

Our goal is to determine g that provides “the best estimator θ of θ”.

⇒ best in which sense ?

⇒ how to determine g ?

Short Course on Underwater Acoustic Signal Processing S.M.Jesus

Page 4: Module 1 - Signal estimation · Module 1 - Signal estimation S ergio M. Jesus (sjesus@ualg.pt) Universidade do Algarve, PT-8005-139 Faro, Portugal  February 2009 Short …

Example: the mean of a time series

Our data model in this case will appopriately be x(n) = A + w(n), where A is aconstant to be determined and w(n) is a zero-mean random process.

Short Course on Underwater Acoustic Signal Processing S.M.Jesus

Page 5: Module 1 - Signal estimation · Module 1 - Signal estimation S ergio M. Jesus (sjesus@ualg.pt) Universidade do Algarve, PT-8005-139 Faro, Portugal  February 2009 Short …

An intituitive estimator of A would be

A =1

N

N−1∑n=0

x(n) (3)

in fact if the model is true, in a mean

E[A] =1

N

N−1∑n=0

E[x(n)] = A (4)

Estimator A is said to be unbiased. But there are many other estimators of A as forexample, A = x(0). Which one of this estimators is the best estimator of A ?

Short Course on Underwater Acoustic Signal Processing S.M.Jesus

Page 6: Module 1 - Signal estimation · Module 1 - Signal estimation S ergio M. Jesus (sjesus@ualg.pt) Universidade do Algarve, PT-8005-139 Faro, Portugal  February 2009 Short …

Example: the mean of a time series (cont.)

Let us assume that w(n) : N (0, σ2), then

E[A] = E[x(0)] = A+ E[w(0)] = A (5)

which basically says that A is also unbiased. So, we have to resort to second orderstatistics...

V [A] = V

[1

N

N−1∑n=0

x(n)

]

=1

N2

N−1∑n=0

V [w(n)]

=σ2

N(6)

Short Course on Underwater Acoustic Signal Processing S.M.Jesus

Page 7: Module 1 - Signal estimation · Module 1 - Signal estimation S ergio M. Jesus (sjesus@ualg.pt) Universidade do Algarve, PT-8005-139 Faro, Portugal  February 2009 Short …

while for A

V [A] = V [x(0)]

= V [w(0)]

= σ2 (7)

and therefore the variance of A is smaller than that of A by a factor N .

⇒ search for the Minimum Variance Unbiased Estimator (MVUE)

Short Course on Underwater Acoustic Signal Processing S.M.Jesus

Page 8: Module 1 - Signal estimation · Module 1 - Signal estimation S ergio M. Jesus (sjesus@ualg.pt) Universidade do Algarve, PT-8005-139 Faro, Portugal  February 2009 Short …

Minimum Variance Unbiased Estimator (MVUE)

Minimum variance and no bias are estimator characteristics but do not tell us howclose we are from the true value ⇒ mean square error (MSE).

MSE(θ) = E[(θ − θ)2] (8)

but

MSE(θ) = E[[(θ − E[θ]) + (E[θ]− θ)]2

]= V [θ] +

[E(θ)− θ

]2= V [θ] + b2(θ)

so, for unbiased estimators b(θ) = 0 and therefore minimum variance means minimumMSE.

An MVUE does not always exists and if it exists it is not ensured to be able tofind it.

Short Course on Underwater Acoustic Signal Processing S.M.Jesus

Page 9: Module 1 - Signal estimation · Module 1 - Signal estimation S ergio M. Jesus (sjesus@ualg.pt) Universidade do Algarve, PT-8005-139 Faro, Portugal  February 2009 Short …

How to find the MVUE

1. determine the Cramer-Rao Lower Bound (CRLB) and check if some estimator satisfiesit - that is the MVUE.

2. if no estimator satisfies the bound, use a sufficient statistic and apply the Rao-Blackwell-Lehmann-Scheffe theorem.

3. restrict the class of estimators not only unbiased and of minimum variance but alsolinear in the data so that g is a linear function. This is the Best Linear UnbiasedEstimator (BLUE), which may coincide with the MVUE if it happens to be linear.

Short Course on Underwater Acoustic Signal Processing S.M.Jesus

Page 10: Module 1 - Signal estimation · Module 1 - Signal estimation S ergio M. Jesus (sjesus@ualg.pt) Universidade do Algarve, PT-8005-139 Faro, Portugal  February 2009 Short …

CRLB

The CRLB states how well a given parameter can be estimated. That ability dependson the sharpness of the Probability Density Function (PDF) against the parameter giventhe data.

PDF of data dependence on a given parameter, assuming Gaussian

p(x[0];A) =1√2ıσ2

exp

[− 1

2σ2(x[0]−A)2

](9)

V [θ] ≥ 1

−E[∂2 ln p(x;θ)

∂θ

] (10)

Assume data model, hypothesis on signal(s), noise and interferences.

Short Course on Underwater Acoustic Signal Processing S.M.Jesus

Page 11: Module 1 - Signal estimation · Module 1 - Signal estimation S ergio M. Jesus (sjesus@ualg.pt) Universidade do Algarve, PT-8005-139 Faro, Portugal  February 2009 Short …

Short Course on Underwater Acoustic Signal Processing S.M.Jesus

Page 12: Module 1 - Signal estimation · Module 1 - Signal estimation S ergio M. Jesus (sjesus@ualg.pt) Universidade do Algarve, PT-8005-139 Faro, Portugal  February 2009 Short …

Problems and applications

• Direct problem: determine acoustic pressure → propagation model(s)

• Geometric inverse problem: determine source characteristics

– is there a source present ? detection problem– where is the source emitting from ? estimate source position,– what is the source emitting ? estimate emitted signal

• Environmental inverse problem: monitoring / exploring the environment

– tomography: estimate water column temperature in 3D and time– bottom properties: estimation bottom properties in 3D

Short Course on Underwater Acoustic Signal Processing S.M.Jesus

Page 13: Module 1 - Signal estimation · Module 1 - Signal estimation S ergio M. Jesus (sjesus@ualg.pt) Universidade do Algarve, PT-8005-139 Faro, Portugal  February 2009 Short …

The underwater channel as a linear system

s(t) Channelh(t, θ)

p(t, θ)

w(t)

y(t, θ)

{p(t, θ) = h(t, θ) ∗ s(t)y(t, θ) = p(t, θ) + w(t)

(11)

• h(t, θ) : channel impulse response, θ is a vector with geometric and environmentalknown, unknown or partially known parameters, assumed deterministic or random

• s(t) : emitted signal, assumed known, unknown, random or deterministic.

• w(t) : observation additive noise, non-correlated with signal, zero mean, space-timecorrelated or uncorrelated

Short Course on Underwater Acoustic Signal Processing S.M.Jesus

Page 14: Module 1 - Signal estimation · Module 1 - Signal estimation S ergio M. Jesus (sjesus@ualg.pt) Universidade do Algarve, PT-8005-139 Faro, Portugal  February 2009 Short …

The underwater channel as a space-time filter

Example from the MREA/BP’07 sea trial...

#Y

#Y

#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S

#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S

#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S#S

A

B 100 m

50 m

30 m20 m

AOB22

AOB21

Leonardo

08:55

14:00

14:00

08:55

1000 0 1000 2000 3000 Meters

42°36

' 42°36'42

°39' 42°39'

42°42

' 42°42'

10°42'

10°42'

10°45'

10°45'

10°48'

10°48'

10°51'

10°51'

10°54'

10°54'

10°57'

10°57'

ACTIVE ACOUSTIC RUN REP230 APRIL 2007

UTC Time : 08:55 - 14:00

##############################################################################################################################################

############################################################################

############################################################################################################################################################################

################################################################################################################################################################

##################################################################################################################################################################################

###############################################################

###################################################################################################################################

##############################################################################################################################################################################################################################################################################################################################################################################################################################################################################################

##########################################################################################################################################################

##################################################################################################################################################################################################################################################################################################################

#####################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################

##################################################################################################################################################################################################################

####################################################################################################################################################################################################################################################################################

######################################################################################################################################################################################################################################################################################################################################################################################

################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################

##########################################################################################################################################################################################################################################################################################################################################################################

##########################################################################################################################################################################################################

##################################################################################################################################################################################################

###################################################################################################################################################################################################################################################################

##############################################################################################################################################################################################################################

##############################################################################################################

###########################################################################################################################################################################################################################################

######################################################################################################################################################################################################

###############################################################################################################################################################################################################################################################################################################

######################################################################

###############################################################################################################################################################################################################################################################################################################

#############################################################

###########################################################################################################################################################################################################################################################################################################################################################

############################################################################################################################################################################################################################################

##################################################################################################################################

##############################################################################################################################################################################################################

##################################################################################################################################################################################################################################################################################################

############################################################################################################################################################################################################################################################################################################################################################################################################################

##############################################################################################################################################################################################################################################################################################################################

###################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################

##############################################################################################################################################################################################################################################################################################################################################################################################

####################################################################################################################################

#############################

#########################################################################################################################################################################

##########################################################################################################################################################

#############################

##################################################

##############################################################################################################################################################################################################################################################

############################################################################################

###################

##########

###############

###############

##############################################################################

##################

#############################################################################################################

################################################################################################################################################################################################################################################################################################################################################################################################################################################

##############################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################

###############################################################################################################################################################################################################################################################################################################################

#####################################################################################################################################################################################################################################################################################################################################################################

####################################################################

##############################################################################################################################################################################

######################################################################################

#########################################################################################################################################################################################################################################################################################################################################

#####################################################################

###############################################################################################################################

##############################################################################################################################################################

########################################

###################

##############################################################

#################################################

####################################################

#####################################################################################

######################################################################################################################################################################################

####################################################################################################################################################################################################################################################################################################################################################################################

####################################################################################################

##########################################################################################################################################################

#####################

################

##########################################################################################################################

###############################################################################################################################

#######################################################################################################################################################################################################################################################################################

#####################################

###############################

################################################################################################################################################################################################################################################

###################################################################################################################################################################################################

#################

############

#####################

#################################################################################################################

###############

##############################################################################################################################################################################################################################

##############################################################################################################################################################################################################

############

######################################################################################################################################################################################################################################################################

###############################################################################################

#################################################

#######################################################################

############

##############

#######

#######

#########################################################################################################

###############

########################################################################################################################################################

######################################

#########################################################

#################################################################################################################

#######################################################################################################################

##################

############

##########

#########################################################################################################################

#################

############################################################################################################################################################################################################

###############################

###################################################################################################

###########################

####################################################################################################################################################

########################

############################# ######## #############

##############

##########################

################################# #########

##################################################################################

#################

##################################################################### #####################################################################################################

######################################################################################################

######## #############

##########

########################## LEONARDO

0 1 Meters

Short Course on Underwater Acoustic Signal Processing S.M.Jesus

Page 15: Module 1 - Signal estimation · Module 1 - Signal estimation S ergio M. Jesus (sjesus@ualg.pt) Universidade do Algarve, PT-8005-139 Faro, Portugal  February 2009 Short …

Received signals in the AO Buoy 1 @ 7km

Short Course on Underwater Acoustic Signal Processing S.M.Jesus

Page 16: Module 1 - Signal estimation · Module 1 - Signal estimation S ergio M. Jesus (sjesus@ualg.pt) Universidade do Algarve, PT-8005-139 Faro, Portugal  February 2009 Short …

Received signals in the AO Buoy 2 @ 11km

Short Course on Underwater Acoustic Signal Processing S.M.Jesus

Page 17: Module 1 - Signal estimation · Module 1 - Signal estimation S ergio M. Jesus (sjesus@ualg.pt) Universidade do Algarve, PT-8005-139 Faro, Portugal  February 2009 Short …

Comparing received signals

Short Course on Underwater Acoustic Signal Processing S.M.Jesus

Page 18: Module 1 - Signal estimation · Module 1 - Signal estimation S ergio M. Jesus (sjesus@ualg.pt) Universidade do Algarve, PT-8005-139 Faro, Portugal  February 2009 Short …

Data model and optimality (1)

Continuous to discrete time data model{p(t, θ) = h(t, θ) ∗ s(t)y(t, θ) = p(t, θ) + w(t)

⇒{

p(θ) = H(θ)sy(θ) = p(θ) + w

with

pt(θ) = [p(0, θ), p(1, θ), . . . , p(N − 1, θ)]

H(θ) =

h(0, θ) 0 . . . 0h(1, θ) h(0, θ) 0

... ... . . . ...h(N − 1, θ) h(N − 2, θ) . . . h(0, θ)

=

ht(0, θ)

...ht(n, θ)

...ht(N − 1, θ)

st = [s(0), s(1), . . . , s(N − 1)]

w is [0,Cw] if time correlated, Cw = σ2I if time uncorrelated.

y is [p(θ),Cw] if deterministic signal

Short Course on Underwater Acoustic Signal Processing S.M.Jesus

Page 19: Module 1 - Signal estimation · Module 1 - Signal estimation S ergio M. Jesus (sjesus@ualg.pt) Universidade do Algarve, PT-8005-139 Faro, Portugal  February 2009 Short …

Data model and optimality (2)

Objective: find filter g(t) to optimally reduce noise on the received acoustic pressure.

y(t, θ)g(t)

z(t, θ)

y(θ) = p(θ) + w ⇒ z(θ) = zo(θ) + wo

zo(θ) = Gp(θ)

wo = Gw

Short Course on Underwater Acoustic Signal Processing S.M.Jesus

Page 20: Module 1 - Signal estimation · Module 1 - Signal estimation S ergio M. Jesus (sjesus@ualg.pt) Universidade do Algarve, PT-8005-139 Faro, Portugal  February 2009 Short …

Generalized Matched Filter (GMF)

Signal-to-noise ratio in: ρin = |p(θ)|2E[|w|2]

Signal-to-noise ratio out: ρout = |zo(θ)|2E[|wo|2]

Instantaneous SNR out:

ρ(n, θ) =|gt(n)p(θ)|2

E[|gt(n)w|2]

⇒ Find G so as to maximize ρ(n, θ)

Short Course on Underwater Acoustic Signal Processing S.M.Jesus

Page 21: Module 1 - Signal estimation · Module 1 - Signal estimation S ergio M. Jesus (sjesus@ualg.pt) Universidade do Algarve, PT-8005-139 Faro, Portugal  February 2009 Short …

GMF: the white noise case

Assuming: temporally white noise, Cw = σ2I

ρ(n, θ) =|gt(n)p(θ)|2

E[|gt(n)w|2]=

|gt(n)p(θ)|2

gt(n)E[wwt]g(n)

=1

σ2

|gt(n)p(θ)|2

gt(n)g(n)

in virtue of the Schwartz inequality |xty|2 ≤ |x|2|y|2 with equality iff x = λy,ρ(n, θ) will be maximum for

g(n) = λp(θ) = λH(θ)s

the filter is said to be matched to the incoming signal → matched filter

Short Course on Underwater Acoustic Signal Processing S.M.Jesus

Page 22: Module 1 - Signal estimation · Module 1 - Signal estimation S ergio M. Jesus (sjesus@ualg.pt) Universidade do Algarve, PT-8005-139 Faro, Portugal  February 2009 Short …

GMF: the correlated noise case (1)

Assuming: temporally correlated noise, E[wwt] = Cw, with Cw definite positive

C−1w = DtD, with D non-singular, therefore

y(θ)→ y(θ) = Dy(θ)

y(θ) is said to be a pre-whitened version of the observation vector y(θ).

ρ(n, θ) =|gt(n)p(θ)|2

E[|gt(n)w|2]=

|gt(n)p(θ)|2

gt(n)DE[wwt]Dtg(n)

=|gt(n)p(θ)|2

gt(n)DCwDtg(n)=|gt(n)p(θ)|2

gt(n)g(n)

Short Course on Underwater Acoustic Signal Processing S.M.Jesus

Page 23: Module 1 - Signal estimation · Module 1 - Signal estimation S ergio M. Jesus (sjesus@ualg.pt) Universidade do Algarve, PT-8005-139 Faro, Portugal  February 2009 Short …

GMF: the correlated noise case (2)

As before ρ(n, θ) will be maximum for g(n) = λp(θ), since g(n) = Dtg(n) wehave

g(n) = λp(θ) = λDp(θ)g(n) = λDtDp(θ) = λC−1w p(θ)

in practice the GMF is a time-reversed replica of the signal

g(N − 1− n, θ) = λp(n, θ), n = 0, . . . , N − 1

g(n, θ) = λp(N − 1− n, θ), n = 0, . . . , N − 1

⇒ filter by a time-reversed signal = correlate with that signal.

Short Course on Underwater Acoustic Signal Processing S.M.Jesus

Page 24: Module 1 - Signal estimation · Module 1 - Signal estimation S ergio M. Jesus (sjesus@ualg.pt) Universidade do Algarve, PT-8005-139 Faro, Portugal  February 2009 Short …

GMF: the multichannel (spatial) version (1)

Let us assume K sensors, → KN sample augmented vector

yta(θ) = [yt(0, θ),yt(1, θ), . . . ,yt(N − 1, θ)]

with y(n, θ) a K-dimensional vector with the K sensor entries at time n,

yt(n, θ) = [y1(n, θ), y2(n, θ), . . . , yK(n, θ)]

is the temporal-ordering. Similarly the spatial ordering is

yta(θ) = [yt1(θ),yt2(θ), . . . ,y

tK(θ)]

with

ytk(θ) = [yk(0, θ), yk(1, θ), . . . , yk(N − 1, θ)].

Short Course on Underwater Acoustic Signal Processing S.M.Jesus

Page 25: Module 1 - Signal estimation · Module 1 - Signal estimation S ergio M. Jesus (sjesus@ualg.pt) Universidade do Algarve, PT-8005-139 Faro, Portugal  February 2009 Short …

GMF: the multichannel (spatial) version (2)

The augmented data model (spatially-ordered)

ya(θ) = Ha(θ)s + wa

with

Ha(θ) = [H1(θ)|H2(θ)| . . . |HK(θ)]t

and the appropriate notation for wa, allows for the multichannel GMF,

ga(n) = λpa(θ)

= λHa(θ)s

z(n, θ) =

n−1∑n′=0

gt(n′)y(n′, θ) =

K∑k=1

gtk(n)yk(θ)

Short Course on Underwater Acoustic Signal Processing S.M.Jesus

Page 26: Module 1 - Signal estimation · Module 1 - Signal estimation S ergio M. Jesus (sjesus@ualg.pt) Universidade do Algarve, PT-8005-139 Faro, Portugal  February 2009 Short …

Bibliography

1. W.B. Davenport Jr. and W.L. Root, “An Introduction to the Theory of Random Signals

and Noise”, IEEE Press, New York, 1987.

2. L. Scharf, “Statistica Signal Processing: Detection, Estimation and Time Series Analysis”,

Addison-Wesley, New York, 1991.

3. S.M. Kay, “Fundamentals of Statistical Signal Processing: Detection Theory”,

Vol.2, Prentice-Hall, New Jersey (USA), 1998.

4. S.M. Jesus, C. Martins and F. Zabel, “Maritime Rapid Environmental

Assessment / Blue Planet’07: Acoustic Oceanographic Buoys Data Report”,

Rep. 03/07, SiPLAB Report, University of Algarve, August 2007.

5. F.B. Jensen, W.A. Kuperman, M.B. Porter and H. Schmidt, “Computational

Ocean Acoustics”, AIP, New York (USA), 1993.

Short Course on Underwater Acoustic Signal Processing S.M.Jesus