New answers tagged

0

What could the cause of this trend be? System bias or something else? Most mechanical systems are low-pass, i.e. they let through less energy at higher frequencies. That would be perfectly plausible, but I don't know what you're observing. Of course, your accelerometer is inherently frequency-selective, too, and you might need to calibrate it, together with ...


0

I suppose that the $n$ points (hereafter, the chunk) precisely divide the base period (which you don't know yet) evenly. You are lucky. You can verify that by concatenating the $n$ discrete samples (or possibly $n-1$ consecutive ones) by an integer number $K$ of (periodic) repetitions (copy-paste, several times, hereafter the chain), with $Kn\ge m$ (or $...


0

The @LaurentDuval is right. The MATLAB's dualtree3 function returns all detail and approximation subbands which are expected when performing 3D dual-tree complex wavelet transform (cplxdual3D). However, instead of returning separate approximation subbands, dualtree3 function groups them all in a single cube. In the following, I explain it by using both ...


0

Here $y^T H x$ is a scalar. So as a matrix of dimensions $1 \times 1$, it is equal to its transpose: $$(y^T H x)^T = x^TH^T(y^T)^T= x^TH^Ty$$


1

Indeed since both expressions are scalars then they are equal to each other since the transpose of a scalar is the same scalar. See in MATLAB as an example (Calculating $ {x}^{T} H y $ and $ {y}^{T} {H}^{T} x $: >> vX = randn(10, 1); >> vY = randn(10, 1); >> mH = randn(10, 10); >> vX.' * mH.' * vY ans = -0.8618 >> vY.' * mH * ...


1

TL,DR: the low-pass component (approximation coefficients, a) has a size bigger than expected ($2^3$ times). So I guess that the 8 avatars of the approximation subbands are gathered into one. First, I did not take enough time to check the codes, so this may be a partial answer. While performing a dualtree3 decomposition: zr = rand(64,64,64); [a,d] = ...


0

Since your window is not centered, you receive a shift of half-length of the chosen window.


1

rectangularPulse() and triangularPulse() are built-in functions that can also do this.


0

Based on the blog post - The Paint Bucket in Paint.Net 4.0 (Video) I can tell it uses some edge detection to handle similar colors within a piece wise smooth area. More information is given in the Paint Bucket Tool documentation. Usually the way it can be implemented is by defining color metric. How far a color is form another color. If it within the ...


1

Prof. Nick Kingsbury kindly provide an answer to my question!. In 1-D, the lowpass basis functions (scaling functions) from the two trees (a) and (b) of the dual tree WT tend to look very similar to each other, apart from a shift of half the output sample period between them. Hence it usually makes most sense to regard the two sets of lowpass samples as ...


0

In general: 1.) The real values are the magnitudes and the imaginary values are the phase. Phase is typically ignored when plotting a spectrogram. 2.) The best values for overlap and windowsize are made on a case-by-case basis and really depends on what you're looking for. Overlap is usually measured in percent and window is usually measured in samples so it'...


2

See the MATLAB documentation: s = spectrogram(x) returns the short-time Fourier transform of the input signal, x. Each column of s contains an estimate of the short-term, time-localized frequency content of x.. Namely each column of the matrix s is the result of an fft() on some samples of the input. So the plot you see is the magnitude of the columns of s. ...


1

Pay attention that by default MATLAB use DCT Type II hence the inverse is basically DCT Type III: vX = [1 + 1i; 1 - 1i; -1 + 1i; 1 + 1i]; %Assume N = 4 vY = dct(vX); mD = dctmtx(length(vX)); vYY = mD * vX; vYY ./ vY max(abs(vY - vYY)) vY = idct(vX); vYY = mD.' * vX; vYY ./ vY max(abs(vY - vYY)) The result: ans = 1.0000 + 0.0000i 1.0000 + 0....


0

It seems that the confusion occurs due to you wanting to visualize the 4 GHz chirp itself versus the beat frequency signal that is yielded after mixing, which is what is ultimately used for detection in FMCW radars. These are two different signals! This is why the 2 MHz sampling rate does not work: it is much much lower than what the minimum requirement is ...


1

filtfilt() applies forwards, then backwards filtering using any iir filter you feed it. As such, it only applies to finite length file processing, not realtime stream processing. fir1 is a method to design fir filters that can subsequently be applied using filter, conv or (unusually) filtfilt.


1

Why not using the tsa in Matlab ?


0

By looking at the table, it seems to me that the sampling rate is $2 \text{ MHz}$. I came to that from $\frac{\text{Samples Per Chirp}}{\text{Chirp Duration}}$, which also matches up with what I expected that this is what the paper calls the "Fast Time Axis sampling rate". They may also show results for a $4 \text{ MHz}$ setup as well, see this ...


0

Okay, I don't use MATLAB, but I think this Python example represents what you may be asking. import numpy as np A = 3 + 4j k = 5 N = 128 Z = np.zeros(N, dtype='complex') Z[k] = A Z[N-k] = np.conj( A ) z = np.fft.ifft(Z) print( z ) This will generate a real valued pure tone (all the imaginary values are zero to the limit of precision) signal with 5 ...


2

Similar to The Concepts Behind SVD Based Image Processing the horizontal axis are the samples index of the SVD basis. The idea in the chapter you linked is generalizing the Wiener Filter. While the Wiener Filter uses the Fourier Transform as a basis the SVD uses the data adaptive basis.


1

You may think on the SVD as a generalization of the Discrete Fourier Transform. Namely, it is generates an orthogonal basis to represent the data. The nice thing about it, it generates the basis according to data (Where the Discrete Fourier Transform basis is the same for any data). Just like the Fourier Spectrum, you have the "Energy" - The ...


0

You can possibly generate the C++ code from the Faust DSP and start from there? Possibly by copy/paste the DSP code in the Faust Web IDE (https://faustide.grame.fr/) and export in C++: The IDE shows the SVG for the signal flow digram:


0

The plane at infinity has to be calculated as following: function plane = computePlaneAtInfinity(P, K) %Input % P - Projection matrices % K - Approximate Values of Intrinsics % %Output % plane - coordinate of plane at infinity % Compute the DIAC W^-1 W_invert = K * K'; % Construct Symbolic Variables to Solve for Plane at Infinity % X,Y,Z is the ...


1

Direct conversion from magnitude to dB is done by $20\text{log}_{10}\big(|x|\big)$. I will highlight the parallel to Hilmar's answer by saying that the conversion from power to dB is done by $10\text{log}_{10}\big(|x|^2\big)$, so by following Hilmar you do $10\text{log}_{10}\big(xx^*\big)=10\text{log}_{10}\big(|x|^2 \big)$ which can be simplified to $20\text{...


1

valueInDB = 10*log10(magnitude.*conj(magnitude));


1

If you have no prior data on the signal of interest there is nothing to do actually. The more prior you have the better you can do. For instance, if the only information you have is the Bandwidth of your signal, the best you can do is apply an Band Pass / Low Pass Filter. If you know a sparse representation of your signal it will be great, as you can remove ...


0

Your question is vague for me. I understand that you want to make a convolution on an received OFDM signal to synchronize right? OFDM signal is demodulated through an FFT. Usually FFT size is a power of 2 (128,256,512,etc...). To demodulate FFT symbols cleanly, they must be synchronized (beginning symbol is found) Your OFDM waveform has probably a preamble, ...


0

Yes, when we can recover OFDM in fading scenarios along with gaussian noise, then yes we can also recover it in just gaussian noise. You can think of fading coefficients having a magnitude of 1 and phase zero


Top 50 recent answers are included