Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
nam
ProxPython
Commits
d89c86f5
Commit
d89c86f5
authored
May 23, 2017
by
alexander.dornheim
Browse files
Added Utilities ZeroPad
parent
6ff02159
Changes
1
Hide whitespace changes
Inline
Side-by-side
proxtoolbox/Utilities/ZeroPad.py
0 → 100644
View file @
d89c86f5
#######################################################################
#
# ZeroPad.m
# written by
# Russell Luke
# Nachwuchsforschergruppe
# Inst. fuer Num. u. Angew. Math
# Universitaet Goettingen
# August 12, 2001
# DESCRIPTION: Function for zero padding an array preparatory to
# using the FFT. Automatically resizes the array to the next
# largest diad by adding np.zeros symmetrically to the array and again
# symmetrically doubles the size of the array. Takes one or two
# dimensional arrays.
#
# INPUT:
# m = data array
#
# OUTPUT: padded_m = the zero padded array ready for use with
# the FFT.
#
# USAGE: padded_m = ZeroPad(m)
# Non-standard function calls:
#
########################################################################
import
numpy
as
np
def
ZeroPad
(
m
):
dim
=
np
.
shape
(
m
)
print
(
dim
)
orient
=
np
.
argmax
(
dim
)
major
=
dim
[
orient
]
minor
=
np
.
min
(
dim
)
tmp
=
np
.
log2
(
major
+
1
)
n
=
np
.
ceil
(
tmp
)
tmp
=
np
.
round
(
2
**
n
-
(
2
**
tmp
-
1
))
if
np
.
mod
(
tmp
,
2
)
==
1
:
leftpad
=
int
((
tmp
+
1
)
/
2
)
rightpad
=
int
((
tmp
-
1
)
/
2
)
else
:
leftpad
=
int
(
tmp
/
2
)
rightpad
=
leftpad
if
orient
==
2
:
tmp
=
np
.
zeros
((
minor
,
leftpad
))
padded_m
=
np
.
concatenate
((
tmp
,
m
),
axis
=
1
)
tmp
=
np
.
zeros
((
minor
,
rightpad
))
padded_m
=
np
.
concatenate
((
padded_m
,
tmp
),
axis
=
1
)
else
:
tmp
=
np
.
zeros
((
leftpad
,
minor
))
print
(
tmp
)
padded_m
=
np
.
concatenate
((
tmp
,
m
),
axis
=
0
)
tmp
=
np
.
zeros
((
rightpad
,
minor
))
padded_m
=
np
.
concatenate
((
padded_m
,
tmp
),
axis
=
0
)
major
=
2
**
n
if
minor
!=
1
:
tmp
=
np
.
log2
(
minor
)
tmp
=
np
.
round
(
2
**
n
-
2
**
tmp
)
if
np
.
mod
(
tmp
,
2
)
==
1
:
leftpad
=
(
tmp
+
1
)
/
2
rightpad
=
(
tmp
-
1
)
/
2
else
:
leftpad
=
tmp
/
2
rightpad
=
leftpad
if
orient
==
2
:
tmp
=
np
.
zeros
((
leftpad
,
major
))
padded_m
=
np
.
concatenate
((
tmp
,
padded_m
),
axis
=
0
)
tmp
=
np
.
zeros
((
rightpad
,
major
))
padded_m
=
np
.
concatenate
((
padded_m
,
tmp
),
axis
=
0
)
else
:
tmp
=
np
.
zeros
((
major
,
leftpad
))
padded_m
=
np
.
concatenate
((
tmp
,
padded_m
),
axis
=
1
)
tmp
=
np
.
zeros
((
major
,
rightpad
))
padded_m
=
np
.
concatenate
((
padded_m
,
tmp
),
axis
=
1
)
return
padded_m
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment