We’re rewarding the question askers & reputations are being recalculated! Read more.

New answers tagged

1

"integrator is unstable since it has a pole on the unit circle" -- not true. This Z-1 is done all the time in CIC resamplers. The pole is --on-- the unit circle exactly, and is therefore stable. Fun fact, if you use floating point math this falls apart and the integrator blows up bc the value is not exactly 1, its 1.000000000001 (or something larger than 1)


0

We discussed this phenomenon on the music-dsp mailing list in May 2014. For long enough a period, the audible repetition is not directly about the frequency spectrum but that instances of white noise are not white but usually contain distinct features or patterns that can be learned and then recognized in the later periods. In some instances, there will be ...


0

@Marcus I took your advice based on the correlation. So i modified the Y segments to generate different white noise at each instance. Here is the MATLAB code for the same. clc;clear all;close all; block_len = 4096; YY = wgn(block_len, 1, 50, 10, 'dBm', 'real'); XY = wgn(block_len, 1, 50, 10, 'dBm', 'real'); ZY = wgn(block_len, 1, 50, 10, 'dBm', 'real'); ...


0

If you were to assemble a very large number of these segments and then take the FFT of the entire signal, you would see that you have a series of spectral sticks every FS/4096 hz, with nothing in between, because the signal you have made by concatenation is periodic. However your ear does not have an infinite analysis window, so once your block length is ...


1

Rather than generating a longer block of data, i would like to make a longer file by concatenating the block of 4096 samples. Bad idea. That means your noise becomes perfectly correlated with a period of 4096 samples, and that's definitely not white noise anymore, and you'll stand a realistic chance of noticing that audibly; depending on the sampling rate, ...


3

I believe that h(-t) means a "time-reversed" version of h(t). Your command: 'y = conv(r,-h);' computes the convolution of 'r' and negative 'h', and you don't want that. I think you want: y = conv(r,conj(fliplr(h)));


1

Use pointwise vector operations: % given A,B,C,D,E A = rand(1,1155); B = rand(1,1155); C = rand(1,1155); D = rand(1,1155); E = rand(1,1155); % compute F F = (A+B)./(C + D.*E);


0

It's been said so many times before that multiplying the Fourier transform coefficients of an image with a mask of ones and zeros in the frequency domain in order to achieve a short-cut to the ideal brickwall filtering in the time-domain is not a recommended method; and almost never preferred due to unavoidable, and unforeseen, errors it would introduce. ...


1

Take a look at this repository. It uses oriented gabor filters to perform noise removal, thereby enhancing the image. It can also recover broken ridges up to a certain extent. https://github.com/Utkarsh-Deshmukh/Fingerprint-Enhancement-Python


1

If you plot the cross correlation instead of taking the maximum, then I expect you'd see the problem. The cause is that your signals aren't centered around zero. They have an offset. The cross correlation of two signals with an offset is a kind of triangle looking thing with the peak at zero. As far as the cross correlation is concerned, your two signal ...


0

A real, 1D DFT is fully described by the non-negative frequencies, since real DFTs are symmetric about the 0 frequency bin. The function you linked is only computing the FFT along one dimension, and is only returning the non-negative frequency bins. From the manual page: "Notice how the final element of the fft output is the complex conjugate of the ...


1

It may be useful to have a deeper understanding of you satellite's dynamics. What I mean is that by observing your attitude quaternion error variation DSP ( or using the motion mathematical model), you may be able to choose a convenient filtering type/tuning to get rid of most possible white noise.


3

What you have are not the poles and zeros, but simply the filter coefficients, i.e., the coefficients of the numerator and denominator polynomials. The poles are the roots of the denominator polynomial, and the zeros are the roots of the numerator polynomial. In Matlab they can be found by using the roots command: p = roots(a); z = roots(b); Note that in ...


1

Marcus' answer is perfect! For any wireless channel, y = Hx + n, where: y = received signal x = transmitted signal n = noise in the channel For an AWGN channel, output 'y' = input 'x' plus 'noise' (AWGN) i.e. y = x + n Therefore, for AWGN channel, channel matrix or H-matrix is the identity matrix.


1

This is may be the effect of the interference by other symbols


0

No I would not suggest using symbollic math at all... Matlab internally uses 64-bit IEEE binary64 (CPU hardware supported) numerical data format for all arithmetic operations including FFT function. Even at 64-bits there is a limit of precision and accumulation of errors. You can consider the followings to increase (if possible) the precison of your ...


0

If you can relax on pure orthogonality, there exist Integer Discrete Fourier transforms, like the Integer fast Fourier transform (INTFFT) (Integer FFT(Fast Fourier Transform) in Python).


0

You should see that figure(2) is the only process that avoids some errors. Note on figure (1) the magnitude overlaps; you can add a constant say bode(lag_daccu_d,lagaccu+.0001,pts); to split them bu that messes up the phase plot. I didn't track down where the errors were coming from but note that octave says it uses the same code base for this as Matlab; ...


0

An FFT using symbolic math might be possible, but would be many orders of magnitude slower. (I'm guessing at least 10,000 times slower, except for a set of exact equation input signals). You would have to use a symbolic math package instead of Matlab. (Perhaps Mathematica, Maxima, or Maple?) Instead you might be able pre- and post-process certain inputs ...


0

I tried using MMSE equalizer, it worked well. single tap equalizer is not always working with ZP as well as CP OFDM.


3

Essentially, your code does not respect the inherent Hermitian symmetry of the output of the FFT. Here, your signal is odd-sized $2K+1$. Hence, this FFT yields a complex vector of coefficients $d$ (real) and $a_k$ (generally complex), arranged as: $$ \left[d,a_1,a_2,\ldots,a_K,\overline{a_K},\ldots,,\overline{a_2},\overline{a_1} \right]$$ If you want to ...


1

When considering finite differences there are three of them: Forward, backward and central. Neither of them is "shorter" than the main signal. The zero is not exactly zero, it should be $\emptyset$. That is, "I don't know". In backward difference, $y[n] = x[n] - x[n-1]$, but at $n=0$, $n-1$ is not even defined and the same applies for $y[0]$. We usually do ...


0

I modeled the the acoustic channel noise in matlab: % On the Relationship Between Capacity and Distance in an % Underwater Acoustic Communication Channel Turbulence=17-(30*log10(f)); Noise_Turbulence= power(10,(Turbulence*0.1)); Shipping=40+(20*(s-0.5))+(26*log10(f))-(60*log10((f)+0.03)); Noise_Shipping= power(10,(Shipping*0.1)); ...


Top 50 recent answers are included