resample — Resample a signal by a rational factor with FIR antialiasing.

y = resample(x,p,q) changes the sample rate of x by the rational factor p/q. RunMat designs a Kaiser-windowed FIR antialiasing filter by default, compensates the filter delay, and operates along the first non-singleton dimension unless Dimension is specified.

Syntax

Y = resample(X, P, Q)
Y = resample(X, P, Q, N)
Y = resample(X, P, Q, N, BETA)
Y = resample(X, P, Q, B)
[Y, B] = resample(X, P, Q, ___)
[Y, B] = resample(X, P, Q, B, ___)

Inputs

NameTypeRequiredDefaultDescription
XAnyYesInput signal array.
PNumericScalarYesPositive integer upsampling factor.
QNumericScalarYesPositive integer downsampling factor.
NNumericScalarNo10Half-length filter order factor.
BETANumericScalarNo5Kaiser window shape parameter.
BNumericArrayNoFIR antialiasing filter coefficients.
BNumericArrayVariadicFIR antialiasing filter coefficients.

Returns

NameTypeDescription
YNumericArrayResampled signal.
BNumericArrayFIR antialiasing filter coefficients used for resampling.

Returned values from resample depend on how many outputs the caller requests.

Errors

IdentifierWhenMessage
RunMat:sampleRate:ArgCountRequired arguments are missing or more than three inputs are provided.sample-rate builtin: expected X, N, and optional PHASE
RunMat:sampleRate:InvalidInputX is not numeric, logical, complex, or a gpuArray containing numeric values.sample-rate builtin: X must be numeric or logical
RunMat:sampleRate:InvalidFactorN is not a finite positive integer scalar.sample-rate builtin: N must be a positive integer scalar

How resample works

  • Accepts numeric, logical, integer, complex, vector, matrix, N-D tensor, and GPU tensor inputs.
  • p and q must be finite positive integer scalars; the ratio is reduced before filter design and output sizing.
  • The output size along the operated dimension is ceil(size(x,dim) * p / q); all other dimensions are preserved.
  • resample(x,p,q,n) uses a Kaiser-windowed FIR filter with 2*n*max(p,q)+1 taps after ratio reduction.
  • resample(x,p,q,n,beta) uses beta as the Kaiser window shape parameter.
  • resample(x,p,q,b) uses a caller-supplied real FIR coefficient vector.
  • [y,b] = resample(...) returns the resampled signal and the FIR coefficients used.
  • Dimension, dim resamples along an explicit one-based dimension.
  • Timetable and nonuniform time-vector syntaxes are not implemented yet; use interp1/timetable-specific workflows before rational resampling when those forms are needed.

Examples

Upsample a row vector by a rational factor

x = 1:5;
y = resample(x, 3, 2)

Return the filter coefficients

[y,b] = resample(x, 4, 1, 8, 5)

Resample along columns

Y = resample(X, 2, 1, Dimension=2)

Using resample with coding agents

Open a RunMat example with live inputs, then ask the agent to explain how resample changes the result.

Run a small resample example, explain the result, then change one input and compare the output.

FAQ

Which dimension does resample use?

By default RunMat follows MATLAB's first non-singleton dimension rule. Use the Dimension name-value option to select a specific dimension.

Can I provide my own antialiasing filter?

Yes. Pass a real coefficient vector as the fourth argument, for example resample(x,p,q,b).

Does resample support nonuniform time vectors or timetables?

Not yet. This implementation covers the uniform rational-rate signal forms and rejects unsupported time/timetable forms rather than returning a misleading result.

Elementwise

abs · angle · bsxfun · complex · conj · double · erf · erfcinv · exp · expm1 · factorial · flintmax · gamma · gammaln · heaviside · hypot · idivide · imag · intmax · intmin · ldivide · log · log10 · log1p · log2 · minus · nextpow2 · plus · pow2 · power · rdivide · real · realmax · realmin · realsqrt · rescale · sign · single · sqrt · swapbytes · times · uint32

Trigonometry

acos · acosh · asin · asinh · atan · atan2 · atanh · cos · cosd · cosh · cospi · deg2rad · pol2cart · rad2deg · sin · sind · sinh · sinpi · tan · tand · tanh

Reduction

all · any · bounds · cummax · cummin · cumprod · cumsum · cumtrapz · diff · gradient · max · maxk · mean · median · min · mink · movmax · movmean · movmedian · movmin · movprod · movstd · movsum · movvar · nnz · prod · rms · std · sum · trapz · var

Rounding

ceil · fix · floor · mod · rem · round

Factor

chol · decomposition · eig · eigs · lu · qr · svd

Solve

cond · det · inv · linsolve · norm · null · pinv · rank · rcond · rref · vecnorm

Symbolic

digits · int · limit · piecewise · sym · syms · vpa

Fft

fft · fft2 · fftshift · ifft · ifft2 · ifftshift

Discrete

lcm · primes

Ode

ode15s · ode23 · ode45

Open-source implementation

Unlike proprietary runtimes, every RunMat function is open-source. Read exactly how resample is executed, line by line, in Rust.

About RunMat

RunMat is an open-source runtime that executes MATLAB-syntax code blazing on any GPU. It is licensed under the Apache 2.0 license.

  • RunMat automatically optimizes your math for GPU execution on Apple, Nvidia, and AMD hardware. No code changes needed. Simulations that took hours now take minutes.
  • Start running code in seconds. RunMat runs in the browser, on the desktop, or from the CLI. No license server, no IT ticket.

Getting started · Benchmarks · Pricing

Download RunMat

Download RunMat for full performance, or use RunMat in your browser for zero setup.