New answers tagged

0

Matlab arrays always start at index 1, so technically you can't represent an array from indexed from -12850 : 13975 : 13975 in Matlab directly. Most people work around this by simply keeping manually track of an index offset. Something like yOffset = -12850 +1; % offset tmp = y(yOffset + nn); % access y() starting at -12850 The time reversal is simple ...


1

I think of it as 2 sets of guard bands, one set in the frequency domain (unused spectrum), and one set in the time domain (OFDM cyclic prefix). One guards against adjacent frequency channel splatter (offset errors plus Doppler). One guards against before/after time domain splatter (synchronization latencies plus multipath interference).


2

The language choice depends on many factors. For instance, are you after developing low level features of DNN or using existing building blocks? Most advanced and popular Deep Neural Networks (DNN) Frameworks are nativly integrated into Python though they are mostly implemented using different low level language (C++ mainly). Those include PyTorch and ...


1

Actually I have a similar problem like yours. But in mine, the objective function is not like rectangular pulse but just spikes as shown below. I work in ultrasoinc testing field. So, this example is kind of like an ultrasoinc signal. But, first I tried with the code from Royi using the ADMM solver from the: answer. For me, I find his solution was painfully ...


1

In the Python version you initialize the filter state and in the Matlab version you don't. Hence the result is different. lfilter_zi() calculates the filter state for a unit step response. Your actual signal is 17 orders of magnitude smaller, the initial state will completely dominate the result (for a while).


0

The MATLAB documentation for filtfilt() links to a brief explanation of the concept. It seems they use an anti-causal version of the original filter to "rectify" to zero-phase. I imagine if you multiply the transfer function of your original filter and it's anti-causal counterpart, you will arrive at the total transfer function for the filter. $$ ...


1

As you corrupt with Poisson noise, perhaps Richardson Lucy is relevant to you? https://en.m.wikipedia.org/wiki/Richardson–Lucy_deconvolution


1

Since you don't have any inputs, $x_n$ is only a function of past values of itself, your B an D should indeed be zero. You don't have your output defined either. You could pick the most recent $x_n$ as output, but it could also be something else. A transfer functions describe an input output relation. However, you don't have inputs, so also no input output ...


0

Given a signal with frequency $f(t)$, the phase of the signal is $\phi(t) = \int f(t) dt$, assuming constant frequency for each sampling interval you have $\phi(t + T_s) = \phi(t) + T_s f(t)$, you can easily compute this using the cumsum function (cummulative sum). y = sin(cumsum(f_mod / fs))*x$ This will have the envelope of $x$ and the frequencies of ...


2

It's all about vectorization. N = 8; K = 10; k = 1:K; % row vector f = k * 100; % row vector alpha = k / 10; % row vector a = k / 10; % row vector phi = k * pi; % row vector deltat = 1; n = (0:N-1)'; % column vector b = (1:N)'; % column vector x = sum(a.*exp(1j*phi).*exp((-alpha+1j*2*pi*f)*deltat.*n)+b, 2);...


2

We're after the problem: $$\begin{aligned} \arg \min_{\boldsymbol{x}} \quad & {\left\| \boldsymbol{x} \right\|}_{1} \\ \text{subject to} \quad & \hat{F} \boldsymbol{x} = \boldsymbol{y} \end{aligned}$$ Where $ \hat{F} $ is a sub set of rows of a unitary matrix. In the case of the example of Emmanuel J. Candes, Michael B. Wakin - An Introduction To ...


0

That should work fine. If it doesn't, the issue is most likely with your signal 'testing_voice.wav'. Could be scaling, noise, or just too much pauses in the speech. Probable root cause is scaling: while your noise burst is short, the power is larger than any wave can carry so it's possible that your noise energy simply dominates the speech. Matlab comes with ...


Top 50 recent answers are included