Upsample[array,n]
returns an upsampled version of the array by inserting
zeros between array elements.
Upsample[array,n,offset]
shifts array so that its first element moves to the position offset in the resulting array.
Upsample[array,n,offset,val]
inserts
elements of value val between array elements.
Upsample[image,…]
upsamples an image.
Upsample
Upsample[array,n]
returns an upsampled version of the array by inserting
zeros between array elements.
Upsample[array,n,offset]
shifts array so that its first element moves to the position offset in the resulting array.
Upsample[array,n,offset,val]
inserts
elements of value val between array elements.
Upsample[image,…]
upsamples an image.
Details
- In Upsample[array,…], array can be an array of any rank.
- Upsample works with arrays of any rank and 2D and 3D images.
- Upsample[array,{n1,n2,…}] inserts ni zeros between elements in the i
dimension. - Upsample[array,n] is equivalent to Upsample[array,n,1].
- In Upsample[array,n,offset], the offset has to be an integer between 1 and n.
Examples
open all close allBasic Examples (3)
Upsample a list by a factor of 3:
Upsample[{1, 2, 3}, 3]Upsample[{1, 2, 3}, 3, 2]Specify the value to be inserted:
Upsample[{1, 2, 3}, 3, 2, -1]Upsample[(| | | |
| - | - | - |
| 1 | 2 | 3 |
| 4 | 5 | 6 |
| 7 | 8 | 9 |), 2]//MatrixFormUpsample an image by a factor of 2:
Upsample[[image], 2]Scope (3)
Use a different upsampling factor in each dimension:
Upsample[(| | | |
| - | - | - |
| 1 | 2 | 3 |
| 4 | 5 | 6 |
| 7 | 8 | 9 |), {2, 3}]//MatrixFormUpsample[{a, b, c}, 2]Upsample an image by a factor of 2:
Upsample[[image], 2]By default, using offset equal to 1, no shifting is performed:
Upsample[[image], 2, 1]Upsample[[image], 2, 2]Use a different offset in each dimension:
Upsample[[image], 2, {1, 2}]Upsample[[image], 2, {1, 2}, LightBlue]Applications (3)
Create a Nyquist filter of length 7:
q = LeastSquaresFilterKernel[{"Lowpass", π / 2}, 7]Upsample by a factor of 2 using the smoothing filter:
list = Sin[2π / 8Range[0, 7]]res = ListConvolve[q, Upsample[list, 2], 4]ListLinePlot[res]Linear interpolation using upsampling and convolution:
h = {1 / 2, 1, 1 / 2};
x = Range[10];ListConvolve[h, Upsample[x, 2], 1, 0]This implementation is not very efficient:
x2 = N@Range[1000000];
AbsoluteTiming[res1 = ListConvolve[h, Upsample[x2, 2], 1, 0];]A faster implementation would merge convolutions of the signal with odd and even samples of the filter:
AbsoluteTiming[res2 = Flatten[Transpose[Map[ListConvolve[#1, x2, 1, 0]&, Transpose[Partition[h, 2, 2, {1, 1}, 0]]]]];]res1 == res2Linear interpolation by a factor
:
k = 4;
h = Array[BartlettWindow, 2k + 1, {-1 / 2, 1 / 2}];
x = Sin[2π / 8Range[0, 7]];res = Flatten[Transpose[Map[ListConvolve[#1, x, Floor[k / 2], 0]&, Transpose[Partition[h, k, k, {1, 1}, 0]]]]];ListPlot[{Transpose[{Range[1, 32, 4], x}], res}, PlotStyle -> {PointSize[Large], Automatic}]See Also
Related Guides
Text
Wolfram Research (2012), Upsample, Wolfram Language function, https://reference.wolfram.com/language/ref/Upsample.html (updated 2016).
CMS
Wolfram Language. 2012. "Upsample." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2016. https://reference.wolfram.com/language/ref/Upsample.html.
APA
Wolfram Language. (2012). Upsample. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/Upsample.html
BibTeX
@misc{reference.wolfram_2026_upsample, author="Wolfram Research", title="{Upsample}", year="2016", howpublished="\url{https://reference.wolfram.com/language/ref/Upsample.html}", note=[Accessed: 13-June-2026]}
BibLaTeX
@online{reference.wolfram_2026_upsample, organization={Wolfram Research}, title={Upsample}, year={2016}, url={https://reference.wolfram.com/language/ref/Upsample.html}, note=[Accessed: 13-June-2026]}