penn state engineering: department of mechanical engineering · web viewdigital signals analog...
TRANSCRIPT
N06page 22 of 22
Digital Signals
Analog signals - continuous
a) amplitude
b) time
Digital signals - discrete values
a) amplitude
b) time
Amplitude
digitizer must have sufficient -
1) span
2) resolution
3) accuracy
Time
digitzer must have sufficient -
1) speed - convert and store
2) capacity
3) precision
Fixed sampling rate
h = time interval between samples (constant)
= 1 / h
Time domain
Digital domain
t
x(t)
xi
Aliasing
% alias.m - aliasing due to undersampling
% HJSIII - 07.11.12
clear
% actual sampling rate 200 Hz
fs = 200;
% sampling rate for display
fsfast=2000;
% sampling times
dt = 1 / fs;
dtfast = 1 / fsfast;
% fill sample buffers
tend = 0.1;
ns = tend / dt;
nsfast = tend / dtfast;
ts = (0:ns) * dt;
v30 = sin( 2 * pi * 30 * ts );
v60 = sin( 2 * pi * 60 * ts );
v90 = sin( 2 * pi * 90 * ts );
v120 = sin( 2 * pi * 120 * ts );
v150 = sin( 2 * pi * 150 * ts );
v180 = sin( 2 * pi * 180 * ts );
v210 = sin( 2 * pi * 210 * ts );
v240 = sin( 2 * pi * 240 * ts );
tsfast = (0:nsfast) * dtfast;
v30fast = sin( 2 * pi * 30 * tsfast );
v60fast = sin( 2 * pi * 60 * tsfast );
v90fast = sin( 2 * pi * 90 * tsfast );
v120fast = sin( 2 * pi * 120 * tsfast );
v150fast = sin( 2 * pi * 150 * tsfast );
v180fast = sin( 2 * pi * 180 * tsfast );
v210fast = sin( 2 * pi * 210 * tsfast );
v240fast = sin( 2 * pi * 240 * tsfast );
% plot time domain
figure( 1 )
subplot(4,2,1)
plot( ts, v30, ts, v30, 'o', tsfast, v30fast, ':' )
title('30/60/90/120 Hz sampled at 200 Hz')
% xlabel('Time (sec)')
% ylabel('Amplitude')
subplot(4,2,3)
plot( ts, v60, ts, v60, 'o', tsfast, v60fast, ':' )
% title('60 HZ sine sampled at 200 Hz')
% xlabel('Time (sec)')
% ylabel('Amplitude')
subplot(4,2,5)
plot( ts, v90, ts, v90, 'o', tsfast, v90fast, ':' )
% title('90 HZ sine sampled at 200 Hz')
% xlabel('Time (sec)')
% ylabel('Amplitude')
subplot(4,2,7)
plot( ts, v120, ts, v120, 'o', tsfast, v120fast, ':' )
% title('120 HZ sine sampled at 200 Hz')
xlabel('Time (sec)')
% ylabel('Amplitude')
subplot(4,2,2)
plot( ts, v150, ts, v150, 'o', tsfast, v150fast, ':' )
title('150/180/210/240 Hz sampled at 200 Hz')
% xlabel('Time (sec)')
% ylabel('Amplitude')
subplot(4,2,4)
plot( ts, v180, ts, v180, 'o', tsfast, v180fast, ':' )
% title('180 HZ sine sampled at 200 Hz')
% xlabel('Time (sec)')
% ylabel('Amplitude')
subplot(4,2,6)
plot( ts, v210, ts, v210, 'o', tsfast, v210fast, ':' )
% title('210 HZ sine sampled at 200 Hz')
% xlabel('Time (sec)')
% ylabel('Amplitude')
subplot(4,2,8)
plot( ts, v240, ts, v240, 'o', tsfast, v240fast, ':' )
% title('240 HZ sine sampled at 200 Hz')
xlabel('Time (sec)')
% ylabel('Amplitude')
% plot frequency domain
figure( 2 )
f0 = fs / 2;
f = 0 : 400;
fsym = [ 30 60 90 120 150 180 210 240 270 300 330 360 390 ];
a = f0 - abs( mod(f,fs) - f0 );
asym = f0 - abs( mod(fsym,fs) - f0 );
plot( f, a, fsym, asym, 'o' )
title( 'Aliasing = fs/2 - abs( mod(f,fs) - fs/2 )' )
xlabel( 'Actual frequency [Hz]' )
ylabel( 'Apparent frequency [Hz] for fs=200 Hz' )
Nonrecursive Digital Filters
VIN
VOUT
analog filter
(only real-time)
xi
yi
digital filter
(real-time, post sampling
and backward in time)
Digital filter
xi raw
yi filtered
Low pass smoothing with moving averages
first-order, low pass, backward difference
second-order, low pass, backward difference
third-order, low pass, backward difference
order = number of time samples h e,g, is second order
DC gain = sum of coefficients
DC gain > 0 low pass (in general)
DC gain = 0 high pass or bandpass (in general)
Backward difference
a) all time steps are prior history
b) has startup artifact
c) OK for real-time
d) phase lag
e) finite impulse response (FIR) - no knowledge of events for
i
xi
yi
actual
impulse
spring-mass-damper (second order analog filter) has infinite impulse response (IIR)
t
Forward difference
a) all time steps in future
b) has artifact at end of sequence
c) NOT OK for real-time
d) phase lead
e) FIR
Central difference
a) some time steps in future and some in prior history
b) has artifact at startup and end of sequence
c) NOT OK for real-time
d) zero phase (generally)
e) FIR
Weighting
uniform weighing
central weighing
forward weighing
backward weighing
High pass
first-order, first derivative, backward difference (actually at i-½)
first-order, first derivative, forward difference (actually at i+½)
average
second-order, first derivative, central difference
DC gain = 0 high pass
second-order, second derivative, central difference
DC gain = 0 high pass
Plot the frequency response transfer function of the digital filter shown below that modifies the sequence xi into a new sequence yi. Circle any filter descriptors that apply.
yi = xi+1 + 3 * xi + xi-1
recursivenonrecursive
forward-differencecentral-differencebackward-difference
high passband passlow pass
FIRIIR
forward-weightedcentrally-weightedbackward-weighted
phase-leadzero-phasephase-lag
startup artifactno startup artifact
first-ordersecond-orderthird-order
DC gain = 0DC gain = 1DC gain = 5
0
f / fs = 0.25
f /fs = 0.50
f / fs = 0.75
f / fs = 1.00
-20 dB
0 dB
+20 dB
Plot the frequency response transfer function of the digital filter shown below that modifies the sequence xi into a new sequence yi. Circle any filter descriptors that apply.
yi = xi+1 + 3 * xi + xi-1
recursivenonrecursive
forward-differencecentral-differencebackward-difference
high passband passlow pass
FIRIIR
forward-weightedcentrally-weightedbackward-weighted
phase-leadzero-phasephase-lag
startup artifactno startup artifact
first-ordersecond-orderthird-order
DC gain = 0DC gain = 1DC gain = 5
Frequency response for nonrecursive digital filters
backward difference
% nonrecursive.m - gain/phase for nonrecursive digital filter
% HJSIII, 13.11.14
r = 0:0.01:1;
G = exp(j*2*pi*r) + 3 + exp(-j*2*pi*r); % central difference
%G = 1 + 3*exp(-j*2*pi*r) + exp(-j*4*pi*r); % backward difference
amp = 20*log10( abs( G ) );
phi = 180/pi*angle( G );
subplot(2,1,1)
plot( r,amp )
ylabel( 'Gain [dB]' )
title( 'y(i) = x(i+1) + 3*x(i) + x(i-1)')
% title( 'y(i) = x(i) + 3*x(i-1) + x(i-2)')
subplot(2,1,2)
plot( r,phi )
ylabel( 'Phase [deg]' )
xlabel( 'Frequency ratio r = f/fs' )
Backward difference
Startup artifact (works for recursive and nonrecursive)
examples for second-order backward difference
similar approach for end of sequence artifact
i
1
0
3
2
-1
a) ignore - start at i = 3
b) pad with constants -
discontinuity in , introduces high frequency artifact
c) reflect
i
1
0
3
2
-1
d2
d3
artifact
Filter forward and then backward in time (works for recursive and nonrecursive)
1) filter forward in time
2) reverse sequence of data (e.g. MATLAB "flipud" or "fliplr"
3) filter again
4) reverse sequence back to original
can also perform using filter time loops
a) effectively removes phase lag/lead
b) provides double order attenuation
Recursive Digital Filters
Recursion
compute a new value for a function using old values that were computed with the same function
example -
now includes
recursion provides IIR capability
must be VERY careful with high pass filters
Standard second-order backward-difference recursive form
DC gain =
Recursive digital filter to emulate spring-mass-damper
VIN
VOUT
analog filter
xi
yi
digital filter
m
k
c
x
y
x
y
spring-mass-damper
digitize xi at fs = 1/h and use approximations for derivatives
Butterworth = critical damping
standard second-order backward-difference recursive form
sample values for fc = 4 Hz, fs = 60 Hz
1.594339
0.372781
0
-0.262729
-1.254439
0.364490
Recursive digital filter using z-transform
Laplace transform of transfer function
second order expansion for continuous variables
Butterworth filter low-pass A0 = 1, Aother = 0
Butterworth filter high-pass Ak = 1, Aother = 0
Butterworth filter (low-pass or high-pass)
Order k
B0
B1
B2
B3
B4
B5
1
1
1
2
1
1.4142136
1
3
1
2
2
1
4
1
2.6131259
3.4142136
2.6131259
1
corresponding z-transform
expansion for digitized variables
standard second-order backward-difference recursive form
second-order coefficients a and b using bilinear transformation from s to z
sample values for fc = 4 Hz, fs = 60 Hz
C = 1 / tan( fc / fs )4.70463
A = B0 + B1 C + B2 C229.78689
a0 = ( A0 + A1 C + A2 C2 ) / A0.033571
a1 = ( 2 A0 - 2 A2 C2 ) / A0.067143
a2 = ( A0 - A1 C + A2 C2 ) / A0.033571
b1 = ( 2 B0 - 2 B2 C2 ) / A-1.41898
b2 = ( B0 - B1 C + B2 C2 ) / A0.553269
reference:Digital Signal Processing, W. Stanley, G. Dougherty and R. Dougherty;
2nd ed, Reston, 1984
NOTE: MATLAB butter, filter, and filtfilt interchange a-b terms from notation above.
% check_filter.m - check transfer function of digital filter
% HJSIII, 13.11.14
clear
% test conditions - 1024 points sampled at 1 KHz
n = 1024;
fs = 1000;
f0 = fs / 2;
dt = 1 / fs;
t = dt * (0:(n-1));
% create second order Butterworth filter - cutoff 100 Hz
fc = 10;
wn = fc / f0;
[ b, a ] = butter( 2, wn );
% frequencies for FFT
df = fs / n;
f = df * (0:(n-1));
f(1) = 1e-20;
lf = log10( f );
% buffer to accumulate average/max/min transfer functions
ave_trf = zeros( n, 1 );
max_trf = -100* ones( n, 1 );
min_trf = 100 * ones( n, 1 );
% repeat for multiple trials
ntrial = 100;
for itrial = 1:ntrial,
% sample random signal
xin = randn( n, 1 );
% apply filter
xout = filter( b, a, xin );
% FFT
fftin = fft( xin );
fftout = fft( xout );
% transfer function
trf = fftout ./ fftin;
mag_trf = log10( abs( trf ) );
ave_trf = ave_trf + mag_trf;
max_trf = max( mag_trf, max_trf );
min_trf = min( mag_trf, min_trf );
% bottom of averaging loop
end
ave_trf = ave_trf / ntrial;
figure( 1 )
plot( lf,mag_trf )
axis( [ -1 3 -5 1 ] )
title( 'Single transfer function for 10 Hz LP Butterworth' )
xlabel( 'Log Frequency [Hz]' )
ylabel( 'Log gain' )
figure( 2 )
plot( lf,ave_trf,'r', lf,max_trf,'g', lf,min_trf,'g' )
axis( [ -1 3 -5 1 ] )
title( 'Average transfer function for 10 Hz LP Butterworth' )
xlabel( 'Log Frequency [Hz]' )
ylabel( 'Log gain' )
Recursive digital filter in MATLAB
>> help butter
BUTTER Butterworth digital and analog filter design.
[B,A] = BUTTER(N,Wn) designs an Nth order lowpass digital
Butterworth filter and returns the filter coefficients in length
N+1 vectors B (numerator) and A (denominator). The coefficients
are listed in descending powers of z. The cutoff frequency
Wn must be 0.0 < Wn < 1.0, with 1.0 corresponding to
half the sample rate.
If Wn is a two-element vector, Wn = [W1 W2], BUTTER returns an
order 2N bandpass filter with passband W1 < W < W2.
[B,A] = BUTTER(N,Wn,'high') designs a highpass filter.
[B,A] = BUTTER(N,Wn,'low') designs a lowpass filter.
[B,A] = BUTTER(N,Wn,'stop') is a bandstop filter if Wn = [W1 W2].
When used with three left-hand arguments, as in
[Z,P,K] = BUTTER(...), the zeros and poles are returned in
length N column vectors Z and P, and the gain in scalar K.
When used with four left-hand arguments, as in
[A,B,C,D] = BUTTER(...), state-space matrices are returned.
BUTTER(N,Wn,'s'), BUTTER(N,Wn,'high','s') and BUTTER(N,Wn,'stop','s')
design analog Butterworth filters. In this case, Wn is in [rad/s]
and it can be greater than 1.0.
See also buttord, besself, cheby1, cheby2, ellip, freqz, filter.
N = order
Wn = fC / fn = fC / (fS/2)
NOTE: MATLAB butter, filter, and filtfilt interchange a-b terms from notation above.
>> help filter
FILTER One-dimensional digital filter.
Y = FILTER(B,A,X) filters the data in vector X with the
filter described by vectors A and B to create the filtered
data Y. The filter is a "Direct Form II Transposed"
implementation of the standard difference equation:
a(1)*y(n) = b(1)*x(n) + b(2)*x(n-1) + ... + b(nb+1)*x(n-nb)
- a(2)*y(n-1) - ... - a(na+1)*y(n-na)
If a(1) is not equal to 1, FILTER normalizes the filter
coefficients by a(1).
FILTER always operates along the first non-singleton dimension,
namely dimension 1 for column vectors and non-trivial matrices,
and dimension 2 for row vectors.
[Y,Zf] = FILTER(B,A,X,Zi) gives access to initial and final
conditions, Zi and Zf, of the delays. Zi is a vector of length
MAX(LENGTH(A),LENGTH(B))-1, or an array with the leading dimension
of size MAX(LENGTH(A),LENGTH(B))-1 and with remaining dimensions
matching those of X.
FILTER(B,A,X,[],DIM) or FILTER(B,A,X,Zi,DIM) operates along the
dimension DIM.
See also filter2 and, in the signal Processing Toolbox, filtfilt.
Overloaded methods:
timeseries/filter
fxptui.filter
dfilt.filter
>> help filtfilt
FILTFILT Zero-phase forward and reverse digital filtering.
Y = FILTFILT(B, A, X) filters the data in vector X with the filter described
by vectors A and B to create the filtered data Y. The filter is described
by the difference equation:
y(n) = b(1)*x(n) + b(2)*x(n-1) + ... + b(nb+1)*x(n-nb)
- a(2)*y(n-1) - ... - a(na+1)*y(n-na)
After filtering in the forward direction, the filtered sequence is then
reversed and run back through the filter; Y is the time reverse of the
output of the second filtering operation. The result has precisely zero
phase distortion and magnitude modified by the square of the filter's
magnitude response. Care is taken to minimize startup and ending
transients by matching initial conditions.
The length of the input x must be more than three times
the filter order, defined as max(length(b)-1,length(a)-1).
Note that FILTFILT should not be used with differentiator and Hilbert FIR
filters, since the operation of these filters depends heavily on their
phase response.
See also filter.
>>
(
)
1
i
h
t
at
n
i
1
for
x
i
i
-
´
=
£
£
s
c
n
n
f
1
h
f
2
m
k
m
2
c
=
p
=
=
w
w
=
2
s
c
2
s
2
n
2
s
c
s
n
f
f
2
f
m
kh
f
f
2
f
m
2
m
2
m
2
ch
÷
÷
ø
ö
ç
ç
è
æ
p
=
w
=
p
=
w
=
2
s
c
s
c
f
f
2
f
f
2
1
A
÷
÷
ø
ö
ç
ç
è
æ
p
+
p
+
=
A
/
f
f
2
f
f
2
a
2
s
c
s
c
0
÷
÷
ø
ö
ç
ç
è
æ
÷
÷
ø
ö
ç
ç
è
æ
p
+
p
=
0
a
1
=
A
/
f
f
2
a
s
c
2
÷
÷
ø
ö
ç
ç
è
æ
p
-
=
(
)
A
/
2
b
1
-
=
A
/
f
f
2
1
b
s
c
2
÷
÷
ø
ö
ç
ç
è
æ
p
-
=
-1-0.500.511.52
-2
-1.5
-1
-0.5
0
0.5
1
Hand-made 4 Hz LP Butterworth at 60 Hz sampling
Log Frequency [Hz]
Log gain
)
s
(
X
)
s
(
Y
s
B
...
s
B
s
B
B
s
A
...
s
A
s
A
A
)
s
(
G
k
k
2
2
1
0
k
k
2
2
1
0
=
+
+
+
+
+
+
=
00.050.1
-1
0
1
30/60/90/120 Hz sampled at 200 Hz
00.050.1
-1
0
1
00.050.1
-1
0
1
00.050.1
-1
0
1
Time (sec)
00.050.1
-1
0
1
150/180/210/240 Hz sampled at 200 Hz
00.050.1
-1
0
1
00.050.1
-1
0
1
00.050.1
-1
0
1
Time (sec)
y
B
y
B
y
B
x
A
x
A
x
A
2
1
0
2
1
0
&
&
&
&
&
&
+
+
=
+
+
)
z
(
X
)
z
(
Y
z
b
...
z
b
z
b
1
z
a
...
z
a
z
a
a
)
z
(
H
k
k
2
2
1
1
k
k
2
2
1
1
0
=
+
+
+
+
+
+
+
=
-
-
-
-
-
-
k
i
k
2
i
2
1
i
1
i
k
i
k
2
i
2
1
i
1
i
0
y
b
y
b
y
b
y
x
a
x
a
x
a
x
a
-
-
-
-
-
-
+
+
+
+
=
+
+
+
+
L
L
-1-0.500.511.522.53
-5
-4
-3
-2
-1
0
1
Single transfer function for 10 Hz LP Butterworth
Log Frequency [Hz]
Log gain
-1-0.500.511.522.53
-5
-4
-3
-2
-1
0
1
Average transfer function for 10 Hz LP Butterworth
Log Frequency [Hz]
Log gain
050100150200250300350400
0
10
20
30
40
50
60
70
80
90
100
Aliasing = fs/2 - abs( mod(f,fs) - fs/2 )
Actual frequency [Hz]
Apparent frequency [Hz] for fs=200 Hz
1
i
i
i
x
2
/
1
x
2
/
1
y
-
+
=
2
i
1
i
i
i
x
3
/
1
x
3
/
1
x
3
/
1
y
-
-
+
+
=
3
i
2
i
1
i
i
i
x
4
/
1
x
4
/
1
x
4
/
1
x
4
/
1
y
-
-
-
+
+
+
=
2
i
i
i
x
2
/
1
x
2
/
1
y
-
+
=
2
i
1
i
i
i
x
3
/
1
x
3
/
1
x
3
/
1
y
-
-
+
+
=
order
*
h
t
t
EVENT
i
+
>
i
1
i
2
i
i
x
3
/
1
x
3
/
1
x
3
/
1
y
+
+
=
+
+
1
i
i
1
i
i
x
3
/
1
x
3
/
1
x
3
/
1
y
-
+
+
+
=
1
i
i
1
i
i
x
3
/
1
x
3
/
1
x
3
/
1
y
-
+
+
+
=
1
i
i
1
i
i
x
4
/
1
x
2
/
1
x
4
/
1
y
-
+
+
+
=
1
i
i
1
i
i
x
4
/
1
x
4
/
1
x
2
/
1
y
-
+
+
+
=
1
i
i
1
i
i
x
2
/
1
x
4
/
1
x
4
/
1
y
-
+
+
+
=
(
)
h
/
x
x
y
x
1
i
i
i
-
-
=
»
&
(
)
h
/
x
x
y
x
i
1
i
i
-
=
»
+
&
(
)
(
)
(
)
(
)
2
/
h
/
x
x
h
/
x
x
2
/
x
x
x
1
i
i
i
1
i
2
/
1
i
2
/
1
i
-
+
-
+
-
+
-
=
+
»
&
&
&
(
)
h
2
/
x
x
y
x
1
i
1
i
i
-
+
-
=
»
&
(
)
(
)
(
)
(
)
h
/
h
/
x
x
h
/
x
x
h
/
x
x
x
1
i
i
i
1
i
2
/
1
i
2
/
1
i
-
+
-
+
-
-
-
=
-
»
&
&
&
&
(
)
2
1
i
i
1
i
i
h
/
x
x
2
x
y
x
-
+
+
-
=
»
&
&
i
r
2
j
i
s
s
t
f
2
j
e
x
f
/
f
r
f
/
i
h
i
t
e
x
p
p
=
=
=
=
=
(
)
(
)
1
i
r
2
j
i
r
2
j
1
i
r
2
j
1
i
i
1
i
i
e
e
3
e
x
x
3
x
y
-
p
p
+
p
-
+
+
+
=
+
+
=
(
)
(
)
(
)
r
2
j
i
r
2
j
i
r
2
j
r
2
j
i
r
2
j
i
e
e
e
3
e
e
y
p
-
p
p
p
p
+
+
=
5
G
0
f
/
f
r
for
e
3
e
x
/
y
G
s
r
2
j
r
2
j
i
i
=
=
=
+
+
=
=
p
-
p
r
4
j
r
2
j
2
i
1
i
i
i
e
e
3
1
G
x
x
3
x
y
p
-
p
-
-
-
+
+
=
+
+
=
S
f
00.10.20.30.40.50.60.70.80.91
0
5
10
15
Gain [dB]
y(i) = x(i+1) + 3*x(i) + x(i-1)
00.10.20.30.40.50.60.70.80.91
-1
-0.5
0
0.5
1
Phase [deg]
Frequency ratio r = f/fs
00.10.20.30.40.50.60.70.80.91
0
5
10
15
Gain [dB]
y(i) = x(i) + 3*x(i-1) + x(i-2)
00.10.20.30.40.50.60.70.80.91
-200
-100
0
100
200
Phase [deg]
Frequency ratio r = f/fs
1
0
1
x
x
x
=
=
-
x
&
(
)
2
1
1
2
1
2
1
0
x
x
2
x
x
x
d
x
x
-
=
-
-
=
-
=
(
)
3
1
1
3
1
3
1
1
x
x
2
x
x
x
d
x
x
-
=
-
-
=
-
=
-
0
x
1
=
&
&
(
)
!
5
6
!
6
=
1
i
1
i
i
i
y
3
/
1
x
3
/
1
x
3
/
1
y
-
-
+
+
=
1
i
y
-
2
i
2
1
i
1
2
i
2
1
i
1
i
0
i
y
b
y
b
x
a
x
a
x
a
y
-
-
-
-
-
-
+
+
=
(
)
MAX
t
t
0
for
t
x
£
£
2
1
2
1
0
b
b
a
a
a
-
-
+
+
(
)
(
)
x
y
c
x
y
k
y
m
F
&
&
&
&
-
-
-
-
=
=
å
kx
x
c
ky
y
c
y
m
+
=
+
+
&
&
&
&
(
)
(
)
h
/
x
x
or
h
2
/
x
x
x
1
i
i
2
i
i
-
-
-
-
»
&
(
)
(
)
h
/
y
y
or
h
2
/
y
y
y
1
i
i
2
i
i
-
-
-
-
»
&
(
)
2
2
i
1
i
i
h
/
y
y
2
y
y
-
-
+
-
»
&
&
i
2
i
i
i
2
i
i
2
i
2
1
i
2
i
2
kx
x
h
2
c
x
h
2
c
ky
y
h
2
c
y
h
2
c
y
h
m
y
h
m
2
y
h
m
+
÷
ø
ö
ç
è
æ
-
=
+
÷
ø
ö
ç
è
æ
-
+
÷
ø
ö
ç
è
æ
+
-
-
-
-
-
2
i
i
2
i
2
1
i
2
i
2
x
h
2
c
x
k
h
2
c
y
h
2
c
h
m
y
h
m
2
y
k
h
2
c
h
m
-
-
-
÷
ø
ö
ç
è
æ
-
+
÷
ø
ö
ç
è
æ
+
=
÷
ø
ö
ç
è
æ
-
+
÷
ø
ö
ç
è
æ
-
+
÷
ø
ö
ç
è
æ
+
+
2
i
2
1
i
2
2
i
i
i
2
y
h
2
c
h
m
y
h
m
2
x
h
2
c
x
k
h
2
c
y
k
h
2
c
h
m
-
-
-
÷
ø
ö
ç
è
æ
-
-
÷
ø
ö
ç
è
æ
-
-
÷
ø
ö
ç
è
æ
-
+
÷
ø
ö
ç
è
æ
+
=
÷
ø
ö
ç
è
æ
+
+
(
)
2
i
1
i
2
i
i
2
i
2
y
m
2
ch
1
y
2
x
m
2
ch
x
m
kh
m
2
ch
y
m
kh
m
2
ch
1
-
-
-
÷
ø
ö
ç
è
æ
-
-
-
-
÷
ø
ö
ç
è
æ
-
+
÷
÷
ø
ö
ç
ç
è
æ
+
=
÷
÷
ø
ö
ç
ç
è
æ
+
+