Hot answers tagged

9

My answer is for real scale $a$ and the fact that wavelet transform is usually defined in $L_2$ with norm $$||\Psi(\tau)|| = \int_\mathbb{R} \Psi(\tau)\Psi^*(\tau)\mathrm{d}\tau $$ So $$||\Psi_{a,t}(\tau)|| = \int_\mathbb{R} \frac{1}{|a|}\Psi(\frac{\tau-t}{a})\Psi^*(\frac{\tau-t}{a})\mathrm{d}\tau$$ Set $\tau' = \frac{\tau-t}{a} \implies d\tau' = d\tau / ...


6

A simple bound is just the number of samples. Indeed, for $$ X_k = \sum_{n=0}^{N-1} x[n]e^{-2i\pi kn/N}$$ then obviously: $$ |X_k| \le \sum_{n=0}^{N-1} \left|x[n]\right|\left|e^{-2i\pi kn/N}\right|$$ hence $$ |X_k| \le \sum_{n=0}^{N-1} \left|x[n]\right|\le N$$ if $-1\le x[n]\le 1$. The $N$ bound is s attained for a given $k$ when you choose a complex $x[n]...


3

Let's assume continuous time (rather than discrete time). If you do not process the windowed data at all, you would like the output (the sum of the windowed frames) to be equal to the original signal. Allowing scaling of the output by a constant scaling term, this is only possible if the sum of all of the time-shifted window functions is constant over time. ...


2

The tf2sos function takes an input filter of order $N$, given by $H(z)=\frac{\sum_i^{N} b_iz^{-i}}{\sum_i^{N} a_iz^{-i}}$ and returns coefficients for $N/2$ second-order filters $H_k(z)=\frac{b_{k0}+b_{k1}z^{-1}+b_{k2}z^{-2}}{a_{k0}+a_{k1}z^{-1}+a_{k2}z^{-2}}$ and a gain $g$ such that $$ H(z) = g \prod_kH_k(z) $$ So, regardless of what normalization you ...


2

Parseval's theorem states that the energy in the output of the DFT is proportional to the input energy. That proportionality factor depends on how you define the DFT (whether you divide by the length, the square root of the length, or not at all). For all practical implementations of the DFT (especially FFTs), we don't do that normalization. So, for example,...


2

An upper bound for the absolute value of the DFT coefficients can be derived as follows: $$|X[k]|=\left|\sum_{n=0}^{N-1}x[n]e^{-j2\pi nk/N}\right|\le \sum_{n=0}^{N-1}|x[n]|\le N$$ if we assume that $|x[n]|\le 1$ holds. For most practical signals, this bound is not very tight.


2

this formula $FFT^{-1} \left( FFT \left( F \right) \odot FFT \left( G \right) \right) \stackrel{!}{=} F \ast G$ is not always true, it's true when you scale at the inverse operation as you mentioned in your first case, in second case you have to multiply the right side by $\sqrt{N}$ to make it right. Generally when you apply the Fourier transform over the ...


2

OK, let us go for a 2-point DFT. It should be noted that, depending on the software used, scaling can be different, and ought to be checked. The standard unscaled version does multiply the input vector by: $$\left[\begin{matrix} 1 & 1\\1 & -1\end{matrix}\right]$$ We have two more options: preserve the average, thus we need: $$\frac{1}{{2}}\left[\...


2

Wavelets play differents role in functional spaces, especially as unconditional bases (see What are unconditional bases and which wavelets have this property?). In $L_p$ spaces, if $|\psi|^p$ is integrable, the translation operator $t\to t-\tau$ preserves the norm, while the dilation $t\to t/a$ induces a scale factor of $|a|^{1/p}$, which can be corrected ...


1

Your $dt$ has an implicit $1/N$ in it: $$ dt \frac{time}{sample} = \frac{ T_{DFT} }{ N } \cdot \frac{ \frac{time}{frame} }{ \frac{samples}{frame} } $$ That's why it works. My preference is strongly to use a $1/N$ normalization. The principal reason is that it makes the magnitudes of the bin values of pure whole integer tones independent of how many ...


1

FFT is a fast way to compute DFT. Hence the scale factor $1/N$ belongs to the DFT (specifically the inverse DFT in MATLAB ifft() function). As Marcus has already pointed out; it's arbitrary to put the scale factor either into the forward or to the inverse DFT. However, the concept of energy equivalence in time and frequency domains (i.e., norm be ...


1

FFT scaling for audio signals is indeed difficult. Sometimes the energy is distributed over many frequencies, sometimes the energy is only at few or just one frequency. This can result in a very high "crest factor". i.e the ratio of the peak value to the average power (RMS) value. This mainly depends on the the length of the FFT: the longer the FFT, the ...


1

I found some details, for those who might come after me. Scale and frequency should be inversely proportional, which is as one might figure. However, there seems to be an issue (possibly a bug) in PyWavelets that makes this not always the case. There is an internal function in the PyWavelets library called scale2frequency() that takes 2 arguments plus an ...


1

The concept of multiresolution has roots on the observation that in data (eg images), objects and features can be observed and processed at different resolutions. One of the crudest version is to build a pyramid with the original image, and other sub-sampled versions, keeping 1 out of 4, 1 out of 16... pixels. This yields a crude multiresolution pyramid, ...


1

In a practical setting to adjust the variance (thereof the power) of a random process, you could use the following to get what you want. Let the variance of a given RV $X$ be $$\text{Var}\{X\} = \sigma_X^2 $$ Then the following transform $$ Y = K X $$ ($K$ being a scalar) will define a RV $Y$ with a variance given by $$\text{Var}\{Y\} = \text{Var}\{ K X\}...


1

1: Scaling Audio corresponds to a pressure wave, so it is mostly symmetrical in amplitude. Therefore audio is normally represented as a signed value (with 0 average). [-1,1) is the standard representation. You may offset your signal by 1/2 and represent the wave in the range [0,1), but this adds nothing but a huge component at 0 Hz in your spectrogram. 2: ...


1

Sorry, that doesn't work. You have to scale all numerator (the "b") or all denominator coefficients (the "a") at the same time. That doesn't work for the denominator since you all practical implementations require $a_0=1$. Scaling $a_1$ and $a_2$ without scaling $a_1$ will move the poles and change the overall shape of the transfer function and not just the ...


1

One option is keep all the edge points, or to identify key points (junctions, corner) on both images, and then perform a (semi-)rigid matching, such as Coherent Point Drift, which is robust to missing points. Further, you could split the biggest images into smaller overlapping patches, and adapt the template to the different patches.


1

Probably not what you want, but using the convex hull of your points will preserve the minima and maxima. R Code Below #31780 T <- 1000 x <- rnorm(T,0,1) ix <- seq(1,T) ix_hpts <- chull(x = ix, y= x) plot(ix_hpts, x[ix_hpts], type='l', col='red') points(ix, x)


Only top voted, non community-wiki answers of a minimum length are eligible