- #1
FrankJ777
- 140
- 6
I would like to do some audio programming for a school project, but I'm not sure how a computer processes audio and reconstructs it in a sound card. I've had a signal processing course that covered standard DSP topics but I'm not sure when or how they are applied to acquire, store, and reproduce audio through a sound card. In trying to find a functional explanation I usually see it explained as sampling a time domain signal, storing the samples, and then reproducing audio wave in the time domain by using the sample to represent a voltage at discrete time intervals. But use of the FFT is always mentioned, but I'm not sure how it all fits together. So I have two "theories" about how it's accomplished.
a) A audio signal x(t) is sampled, which represents signal voltage levels at discrete time intervals x[n]. The time domain samples are stored in memory. Then the time domain samples are used to output a voltage signal by setting a voltage level to the value of the sample x[n] at time intervals of the sampling period.
b) A audio signal x(t) is sampled as before. The samples x[n] are then passed to an FFT then the frequency domain values X[k] are stored in memory. Reconstruction is accomplished by oscillators in the sound card which each oscillate at a discrete frequency (for time intervals of the sampling period) at the magnitude indicated by the value of the sample X[k].
Or, in other words. When you give data to a sound card to output audio, is your data a time domain representation of the signal where each successive data value represents the magnitude of the wave at a time interval x[n], or does the data you give sound card represent discrete frequency values X[k] at time intervals.
I know this question is verbose, but I think the easiest way for me to gain understanding is to explain what I think is going on as I understand, and let somebody else tell me where I'm looking at this wrong. I hope someone can straighten me out on this.
Thanks.
a) A audio signal x(t) is sampled, which represents signal voltage levels at discrete time intervals x[n]. The time domain samples are stored in memory. Then the time domain samples are used to output a voltage signal by setting a voltage level to the value of the sample x[n] at time intervals of the sampling period.
b) A audio signal x(t) is sampled as before. The samples x[n] are then passed to an FFT then the frequency domain values X[k] are stored in memory. Reconstruction is accomplished by oscillators in the sound card which each oscillate at a discrete frequency (for time intervals of the sampling period) at the magnitude indicated by the value of the sample X[k].
Or, in other words. When you give data to a sound card to output audio, is your data a time domain representation of the signal where each successive data value represents the magnitude of the wave at a time interval x[n], or does the data you give sound card represent discrete frequency values X[k] at time intervals.
I know this question is verbose, but I think the easiest way for me to gain understanding is to explain what I think is going on as I understand, and let somebody else tell me where I'm looking at this wrong. I hope someone can straighten me out on this.
Thanks.