Dan Ellis : Resources :

iRiver iFP-799T Recording Noise Analysis

I recently bought an iRiver iFP-799T mini MP3 player/recorder (this model has 1GB of flash memory). I have been doing some experiments with field recordings, and this device is lighter, has better battery life and better software support than anything I've tried before.

For what it's worth, my device is the US version of the iFP-799T, serial number 8045 0204 0600 016, purchased in July 2004.

I'm using the built-in microphone, so I don't expect fabulous quality, but I was disturbed by some high-frequency noise I noticed in some of my recordings. More curiously, it seemed like the noise appeared only after I upgraded the firmware (a nice feature of these devices, and a nice aspect of iRiver that they do keep trying to improving the device even after you've bought it). So I decided to try an experiment to see if this could really be true. Fortunately, they also make it possible to downgrade the firmware, so I was able to try the three major firmware releases to compare recordings with each.

I don't specialize in audio quality, and I didn't use any special test equipment. All I did was make some short recordings of a largely quiet background under three different firmware settings. I used the same settings for each - 32 kHz sampling rate and 64 kbps MP3 compression (mono). Although you'd expect some compression artefacts at this rate, this is what I'm generally using, so that's what I was interested in seeing.

I recorded about 5 seconds using each firmware version, then decoded the MP3s, read them into Matlab, and calcualted the spectrograms and the average spectrum (i.e. the average of the spectrogram columns). The results below appear to show that there is indeed a significant difference in the noise properties with different revisions of the firmware.

First, let's look at the spectrograms, which show the energy in time and frequency:

The blue background is the 'silence' (about 60 dB below the strongest sound, which was already pretty quiet). The unstructured energy below about 2 kHz is probably background noise in the room - I'm in Manhattan, so there's always traffic noise in the background. What's interesting to me are the pale blue stripes running all the way across - they are narrowband, high-frequency noise which I don't think was in the room: I think this is the noise coming from inside the device.

What's really interesting is that it's different for the three firmware versions. They all have a noticeable ridge just above 10 kHz, but it looks pretty static which might not be too disturbing at that frequency (at least for my old ears). In v1.14, there are also a couple of less stable ridges around 13 kHz. In v1.21, only the 10.5 kHz ridge is visible. In v1.25, the higher energy has reappeared and seems more prominent, more widely spread in frequency, and more variable with time.

Now, let's look at the average spectra for those three samples to reveal these differences more clearly.

These are the average spectra for each sample over the full 5 s, so any static energy is emphasised, and random fluctuations are smoothed out. Now we see the different noise elements very clearly. By about 2.5 kHz, we are pretty much down to the background noise floor i.e. I think that's the MP3 quantization noise limit (at about -35 dB on this scaling) rather than the mic or any actual sound. (This noise floor itself falls off above 13.5 kHz because the MP3 threshold-in-quiet ensures that there is almost no energy conveyed above this limit for these examples). We can see a very clear set of harmonics of a 500 Hz whistle, which actually I hadn't noticed in the recordings. Plus. there is a strong component very close to 10.5 kHz, although it appears a little above the the 21st harmonic of the 500 Hz tone in v1.14 and v1.21; in the v1.25 recordings it looks spot on. It does appear to be maybe 3 dB higher in the v1.21 case.

The cause of my concerns, however, is the energy between 10 and 13 kHz. The variable noise ridges visible in the spectrogram show up as relative broad splotches of energy around 11.5 - 13 kHz, and clearly much worse than the relatively clean spectrum in v1.21, and also worse than the less-than-pure spectrum in v1.14.

The caveat is that I've only made a couple of recordings with each firmware version. It could be that we'd see these kinds of variations in successive recordings regardless of the firmware version -- although my repeated tests were consistent -- and it could be that some of these noises are in my room, not in the iFP-799. But the fact that my subjective impression of more high-frequency noise under v1.25 appears to match the quantitative measurements is the confirmation I was looking for.

Subjectively the differences are not enormous, but I think noticeable and actually I prefer the v1.14 - although it doesn't have the least noise, the noise seems 'smoother' than in v1.21, which makes it less disturbing. So I've gone back to v1.14 for now - it works fine, I was just curious to see what they changed in the new firmware.

If you want to listen for yourself, here are the samples:

Last updated: $Date: 2004/10/31 21:09:13 $

Dan Ellis <dpwe@ee.columbia.edu>