<< Modification Modification sigmerge >>

stftb >> stftb > Modification > scale

scale

Scale a signal using the Mellin transform

Calling Sequence

S = scale(X)
S = scale(X, A)
S = scale(X, A, FMIN, FMAX)
S = scale(X, A, FMIN, FMAX, N)
S = scale(X, A, FMIN, FMAX, N, TRACE)

Parameters

X :

signal in time to be scaled (Nx=length(X)).

A :

scale factor. A < 1 corresponds to a compression in the time domain. A can be a vector.(default : 2)

FMIN,FMAX :

respectively lower and upper frequency bounds of the analyzed signal. These parameters fix the equivalent frequency bandwidth (expressed in Hz). When unspecified, you have to enter them at the command line from the plot of the spectrum. FMIN and FMAX must be >0 and <=0.5.

N :

number of analyzed voices (default : automatically determined).

TRACE :

if nonzero, the progression of the algorithm is shown (default : 0).

S :

the A-scaled version of signal X. Length of S can be larger than length of X if A > 1. If A is a vector of length L, S is a matrix with L columns. S has the same energy as X.

Description

scale computes the A-scaled version of signal X : A^(-1/2) X(T/A) using its Mellin transform.

Examples

N = 128; a = 2;
sig = klauder(N);
S = scale(sig,a,.05,.45,128);
clf
subplot(211); 
plot(sig);gca().tight_limits="on"; 
title("The signal")
subplot(212);
plot(real(S))
//focus on the scaled signal's middle
ax = gca();
ax.data_bounds(1,1) = 1+N/a;
ax.data_bounds(2,1) = a*N-N/a;
ax.tight_limits = "on";
title("A focus on the middle of the scaled signal")

Authors


Report an issue
<< Modification Modification sigmerge >>