21

It is actually not distorted, it is sampled at high enough rate. What fools you is the straight lines drawn between sample points, it gives you a false impression of the waveform. It shows you a linear interpolation of the signal. It does not represent how the signal would actually look like. A sampled signal exists only at the sample points, and to convert ...


14

I would do a normalized autocorrelation to determine periodicity. If it is periodic with period $P$ you should see peaks at every $P$ samples in the result. A normalized result of "1" implies perfect periodicity, "0" implies no periodicity at all at that period, and values in between imply imperfect periodicity. Subtract the data sequence's mean from the ...


14

Figure 1.(c) shows the Test image reconstructed from MAGNITUDE spectrum only. We can say that the intensity values of LOW frequency pixels are comparatively more than HIGH frequency pixels. Actually, this is not correct. The phase values determine the shift in the sinusoid components of the image. With zero phase, all the sinusoids are centred at the same ...


12

The FFT can only be performed over a limited chunk of data. The basic math is based on the assumption that the time domain signal is periodic, i.e. your chunk of data is repeated in time. That typically results in a major discontinuity at the edges of the chunk. Let's look at a quick example: FFT size = 1000 points, Sample Rate = 1000 Hz, Frequency ...


11

Two remarks: I am assuming you are plotting the real (or imaginary) part of the Fourier transform. It is much more common to work with the magnitude or squared magnitude (power spectrum). The peak in the spectrum is a very poor measure of fundamental frequency (pitch). Take a piano note at 440 Hz, apply a notch filter to it to remove the 440 Hz component. ...


11

Posted for anyone who may find this useful... I created a picture that shows DFT frequency bin spacing for odd and even cases of N where N is the number of samples. FFTs usually operate on an even number of samples (the algorithm works by repeatedly breaking the problem into halves), so only the even case applies. The DC component (0*fs) is always part of ...


10

A beamformer is basically a spatial filter. It can be passive, just like a temporal filter. Instead of samples separated by time, they are separated by space. A passive temporal filter can be a bandpass that is "aimed" or "steered" at a particular frequency. For passive spatial filters (i.e. beamformers), the filter can be steered towards a particular ...


10

One trick, for even-length signals, is what to do with the "middle" sample. Here, I've split it half and half between each side of the FFT. The other trick is to ensure that you have the right amplitudes in the resampled signal. Here's it's a factor of 2. Try this in scilab: x = rand(1,100,'normal'); X = fft(x); XX = 2*[X(1:50) X(51)/2 zeros(1,99) X(51)/...


10

Well, first of all the Sound Level Pressure decreases by $6 \; \mathtt{dB}$ when doubling the distance - this plays a big role. We do also have sound attenuation coming from our medium - air. Let's take a closer look onto sound absorption coefficient for different frequencies: Knowing that human speech is mostly concentrated at the range of $300\;\mathtt{Hz}...


10

Phase Noise and Frequency Noise are not two different noise sources, they are artifacts of the same noise, it is just a matter of what units you want to use. Frequency and Phase are directly related as frequency is phase changing with time, so if you have one you will always have the other; frequency and phase are related by derivatives and integrals: the ...


9

You can make a positive frequency spectrum quite simply (where fs is the sampling rate and NFFT is the number of fft bins). In the Matlab implementation of the FFT algorithm, the first element is always the DC component, hence why the array starts from zero. THis is true for odd and even values of NFFT. %//Calculate frequency axis df = fs/NFFT; fAxis = 0:df:...


9

This comes from music terminology. The name "octave" comes from the fact that in the heptatonic musical scales (which are the prevalent scales in western music), the note with a 2:1 frequency ratio is the eighth note in the scale. For example, in the C major scale (C D E F G A B C) the eighth note is one octave above / has a 2:1 frequency ratio with the ...


9

The actual requirement is to sample at GREATER then twice the bandwidth, not at a rate equal to it... So only your 80Hz same set actually meets the requirement, because the 60Hz case is ambiguous in general, consider if you were sampling sin (2PiFt) instead then you would get a flat line at zero amplitude.... And changing the angle between sin and cos would ...


8

You might remember Nyquist's theorem. Given a signal which is band limited to $f_1$, we must sample it at least at $2f_1$: $f_S>2f_1$ So if you check you favourite Signals and Systems book (e.g. Oppenheim's), you might recall that, once sampled, we can consider the signal's discrete Spectrum (which is periodic every $2\pi$ radians, by the way). (In the ...


8

If your sampling frequency is $f_s=8000$ Hz, your maximum signal frequency is indeed 4000 Hz ($=f_s/2$). If your signal contains frequencies above $=f_s/2$ you would hear the results of aliasing. This means that the original spectrum is folded back into the range $[0,4000]$ Hz. What actually happens is that by sampling with a sampling frequency $f_s$ your ...


8

The term Doppler Shift is actually a bit of a misnomer. The frequencies are not actually shifted but they are scaled (see http://fourier.eng.hmc.edu/e101/lectures/handout3/node2.html for definition of shifting vs. scaling). It's a relative change not an absolute one. Both time and frequency domains are scaled: when the source is moving towards you, the ...


7

You're overlooking four things: The $\frac{1}{FFT\_size}$ normalization coefficient. Some FFT implementations have or do not have this factor. Check the definition of FFT as performed by matlab on the Mathworks site! Why are you looking at the real part only? The amplitude is conveyed by the modulus (magnitude) of the complex number. Here, the real part is ...


7

The key insight that Fourier had when he developed Fourier analysis is that any absolutely integrable (thanks Jason R) function can be represented as the weighted sum of sines and cosines. Explaining why this is true is way beyond the scope of this answer. I suggest you study Fourier theory to understand this better.


7

It's certainly calculating the right thing. Though instead of sum(x.*(cos(1000*2*pi*t)-i*sin(2*pi*1000*t)))*2/N; you might try sum(x.*exp(-i*2*pi*1000*t))*2/N; If you need to do something similar, but in-line (not in a batch), you might want to look at the Goertzel algorithm. As the Wikipedia link says: .. provides a means for efficient evaluation of ...


7

The two frequencies you are referring to are the spatial frequency and temporal frequency of the wave, and you are correct in your reasoning on converting one to the other. The spatial frequency refers to how many complete periods the signal goes through for a given unit of distance (eg. cylcles/m) while the temporal frequency refers to how many complete ...


7

For the source, go to end of the answer Suppose one day you got one note which has some thing written to it, say "Major frequency components are 10 Hz, 25Hz, 50 Hz and 100 Hz". Somehow, you understood that its time-series representation is a very important thing (may be master-piece work of a great musician, or some national security matter, anything). So ...


7

From the ones I've been using I can recommend: YAAFE - very pleasant to work with in Python ESSENTIA - another one I like particularly due to Python integration aubio FEAPI Aquila - friend of mine used it extensively and he likes it a lot Recently I came across this paper and I believe that this should perfectly answer your question. Moffat D. et al - ...


6

Shortly, we have two kind of basic responses: time responses and frequency responses. Time responses test how the system works with momentary disturbance while the frequency response test it with continuous disturbance. Time responses contain things such as step response, ramp response and impulse response. Frequency responses contain sinusoidal responses. ...


6

If the signal is recorded using just one microphone, you can use methods such as spectral subtraction. This method is more suitable for "constant" noise, like the noise from a fan or an idle engine. Other methods rely on statistics and perceptual models of speech. If the signal is recorded with several microphones, you can use blind source separation for ...


6

This will give you a plot of the autocovariance up to lag 100 samples: plot(autocov(a,100)) There you can clearly get the period of your signal. Another approach is to explicitly get the time of each pulse: pulses = a > 0.1; leading_edges = diff(pulses) > 0; times = find(leading_edges > 0); periods = diff(times) ans = 55 56 56 56 56 ...


6

The scheme you are using is called On/Off Keying. It is not terribly efficient, but it is simple and gets the job done. When you say that the signal is 10 dB below the noise floor I suspect what you mean is that if you add up all the signal energy and all of the noise from 0.3 - 14 kHz the signal is 10 dB weaker, but that the signal uses a much narrower ...


6

Short answer: yes, I think so. Long answer: The FFT is just a fast implementation of the DFT. The frequency spacing of an N-point DFT operation is $\frac{f_s}{N}$. Samples of the DFT where $\omega \ge \pi$ correspond to the negative frequencies. If N is odd, then $\frac{N-1}{2} \cdot \frac{2\pi}{N}$ is less than $\pi$ and the next DFT frequency, $\frac{...


6

As Dilip pointed out in the comment above, you can get the impulse response using the inverse Fourier transform. However, a slightly easier method might be to use the Laplace domain instead; it's more amenable to easy inverse transforming via transform tables. First, recall that the frequency response is really just the $s$-plane transfer function evaluated ...


6

For the first few experiments I would recommend using a scripting language like Matlab or Python. They're much easier to understand and much quicker to write than "lower level programming languages" like C++. Matlab has a signal processing toolbox and can read and write audio files, do windowing, FFTs etc. as well as a very simple playback mechanism. Basic ...


6

The HUP follows directly from the properties of the Fourier Transform, because time and frequency are orthogonal bases in which we can expand the co-efficient sequence of our signal. In fact all pairs of orthonormal bases will have some kind of Uncertainty Principle associated with them. In traditional Fourier analysis, the either the time axis or the ...


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