28

Does the Nyquist frequency of the Cochlear nerve impose the fundamental limit on human hearing? No. A quick run-through the human auditory system: The outer ear (pinnae, ear canal), spatially "encodes" the sound direction of incidence and funnel the sound pressure towards the ear drum, which converts sound into physical motions, i.e. mechanical ...


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 ...


15

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 ...


15

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

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 ...


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}...


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 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 ...


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

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 ...


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

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 ...


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 - ...


7

Consider a liner discrete-time system. Assume we can define it in terms of an input-output relation as follows (you can assume a more general model but it is enough for our purpose): $$a_0y[n]+a_{1}y[n-1]+\cdots+a_{N}y[n-N]=b_0x[n]+b_{1}x[n-1]+\cdots+b_{M}x[n-M]\tag{1}$$ When the coefficients $\{a_i\}$ and $\{b_i\}$ are constant, we call it a finite-order ...


7

The OP's opening statement is incorrect: $f_s > f_{max}/2$ prevents frequency aliasing for a bandlimited signal, but not amplitude aliasing $f_s > 2 f_{max}$ prevents aliasing. It's as simple as that. There is no such distinction as "amplitude aliasing". Since the OP has stated the signal is band-limited; as long as we can assume that means ...


7

A zero coefficient at DC simply means the mean of the waveform is 0; bin 0 of the DFT is identical to calculating the mean value scaled by $N$. Consider the general expression for the DFT: $$X(k) = \sum_{n=0}^{N-1}x(n)e^{-j k \omega_n n}$$ with $\omega_n = 2\pi/N$ and $k = 0,1 \ldots N-1$ (This is a correlation of the waveform x(n) with every integer ...


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

Note: I originally posted this answer for the Stack Overflow copy of this question, before realizing that it had also been asked here. It somewhat duplicates pichenettes' answer, but I felt it still worth (re)posting here, since it includes some extra details. (Whether those details are useful or not, I'll leave for you and the OP to judge.) If you know ...


6

The theory behind sweep-sine measurements of LTI systems requires a signal with constantly changing the frequency. You cannot simply playback few tones - the whole frequency range is necessary. So that if you want to identify your system with the impulse response $h[n]$, you feed the sweep sine signal $s[n]$ into it and record the output. Obviously output ...


6

The article Handling Spectral Inversion in Baseband Processing that you refer to in your question is not about simple inversion of the frequency axis, but it is about inversion of the frequency axis and conjugation in the frequency domain. This is necessary because due to different mixing conventions in several conversion stages, the upper and lower side-...


6

You need to build a time varying delay, where you can modulate the delay amount over time. The peak delay modulation is a function of your maximum desired frequency shift and the modulation frequency. This is not trivial since it will require fractional sample delays with some kind of interpolation algorithm. You can't round to the nearest integer delay ...


6

In digital signal processing, one almost never deals directly with high-frequency signals. The reason is that the frequency band that a signal occupies is completely irrelevant to the information that the signal conveys; the information exists in the envelope of the signal, which usually can be handled either by a generic CPU, a DSP, FPGA, or ASIC. So, let'...


6

I think it means the "apparent" frequency of oscillation. It's poorly worded. What's happening is that the frequency is increased to the Nyquist rate in the first half and then above it, causing aliasing, in the second. What looks like the frequency increases in the first half and decreases in the second because of aliasing.


6

$\Omega$ is the usual angular frequency in radians per second, and is equal to $2 \pi f$. It is the way to measure frequency for continuous-time signals. In discrete-time, frequency is measured in radians per sample, and is denoted as $\omega$. Here, a frequency component with $\omega = 2\pi$ is indistinguishable from $\omega = 0$. $\Omega$ and $\omega$ is ...


6

There is no aliasing as 𝑓 = 30 Hz is less than or equal to the folding frequency, 30 Hz and 40 Hz, respectively. Yes and no. There isn't significant aliasing when you're sampling at 80Hz, because the resulting signal has frequency components at 30Hz and 50Hz. The result is thus unambiguous as long as you take that 50Hz signal into account. There is ...


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