Jump to content

Electrostatic Headphone Measurements


TMoney

Recommended Posts

I guess I wasn't really aware you could get CSD data from impulse response. Um ... I guess I'm interested 'cuz it does seem informative. Is there a way to use excel to calculate CSD?

Yup, that's all you need - the impulse response. I don't know how funky the data might be because of the effects of the headphone cups and dummy head, but it's worth a shot (You may need another measurement method since the purpose of the CSD is different from the FR). Using Excel would be a little bit of a stretch. Arnaud uses MatLab. I did it the hard way and wrote a little custom program on the PC.

Basically the CSD is just an FFT / RTA on the impulse response within a defined time-window. Traditionally, the end of the time window is held in place while the beginning of the time window is shifted over successive measurements.

I wouldn't mind giving you my program (its kind of alpha right now and I change parameters directly in the code) or running a few for you just to see if it works with your impulse response data. As long your impulse data contains time, real and imaginary (vector data), you should be good to go. I think Arnaud posted some of this graphs on the SR009 thread. You can see some of mine on the HF site - do a search on "headphone CSD"

Edited by purrin
Link to comment
Share on other sites

Hi Tyll,

As Purrin said, it's all in the impulse response. Frankly speaking, I hadn't thought of using Excel, which might be the most convenient way to share the post-processing routine with you. I will have a look at it later on. I believe the fft in excel is limited to 4096 taps but that should be sufficient for headphone measurement data on a dummy head).

Meanwhile, I have actually rewritten my routine on Scilab, which is very to similar to the pricey Matlab code, but free. It's pretty stable (except on OSX Lion), runs on several platforms: http://www.scilab.org/

Since I did not create any GUI for the script, you'd need to edit the first few lines (see screen shot below) to:

> Line 5: change the path where the files are located

> Line 21: provide the measurement file name for the "reference headphone" (currently a 3 column Excel file with time, real, imaginary part of the impulse response)

> Line 22: type the reference headphone name

> Line 23: enter -1 if you want the impulse response to be inversed (the data I got from Purrin needed it for the SR80 and HF2)

> Line 24: enter the oversampling rate (can be 1, I use 2 to make the CSD data look a bit smoother)

> Line 25: enter the number of "slices" for the waterfall graph (1 slice is = 1/Fsamp (sample rate of data acquisition). I need only 70 steps (48kHz measurement rate) to see the HD800 decay to -50dB, Grado's recent headphone need a bit more

> Repeat from line 38 to 42 for the "other headphone"

Scilab_screenshot.png

Here are example shots of the routine, comparing HD800 stock form to HF2 headphones (figures are automatically saved to the folder where the script and data resides):

The standard results you're already generating:

HD800_vs_HF2_IR.png

HD800_vs_HF2_FRmag.png

HD800_vs_HF2_ETC.png

The waterfall plots (can display it in 3D view but it's much more readable from top view):

HD800_vs_HF2_CSD_SurfPlot.png

HD800_vs_HF2_CSD_ContourPlot.png

I think I can do something similar with Excel but might not look as clean. Will give it a shot and let you know!

Edited by arnaud
Link to comment
Share on other sites

Tyll,

The Excel post-processing did not turn out too bad! I made a macro to automate the fft calculation of 50 time slices (zeroing the first time steps, by pack of 5 at every step). Much more could be done to give more flexibility (such as the resolution in the time axis), but for now here is how it's setup:

  • I am using Purrin's data, which is 48kHz sample rate
  • The macro does an fft on the first 512 data steps, which is about 10ms of data (512/48000)
  • The frequency resolution is about 100Hz (48000/512)
  • The ffts are repeated with truncated data by blocks of 5 steps, so basically you see the FFT at 0 0.1 0.2 0.3ms and so on
  • 50 ffts total are computed to you get the decay curve up to about 5ms
  • Time decay graphs are generated for the 2 headphones data
  • Time decay graphs are presented in 2D and 3D, I find the 2D version more readable though
  • For each graph type, there are 2 versions, one that cuts at 3ms, the other at 5ms


    In order to use the Excel file:

    • You need to enable the analysis toolpack (an add-on) as well as macros
    • In the RawData tab, you paste your data in the yellow zone
    • In the same tab, you click first on step 1 button, then click on step 2 button
    • You then have the CSD graphs updated in their own tab

    Here are some screen shots:

    Excel_MainTab.png

    Excel_CSD1_3D_5ms.png

    Excel_CSD1_3D_3ms.png

    Excel_CSD1_2D_5ms.png

    Excel_CSD1_2D_3ms.png

    Excel_CSD2_3D_5ms.png

    Excel_CSD2_3D_3ms.png

    Excel_CSD2_2D_5ms.png

    Excel_CSD2_2D_3ms.png

    PM me with your email if you want the Excel file (under 3.5MB),

    cheers,

    arnaud

Edited by arnaud
Link to comment
Share on other sites

Thanks Torpedo,

I actually updated the file, it now runs up to 5ms which helps with the HF2 sample data. As for Excel macro itself, it's really no big deal, you just press record and see what it did, then copy that over ;). In retrospect, although this is not as flexible as a proper tool like Scilab, it's clearly a better approach to share around as most anyone can use and possesses Excel.

arnaud

Link to comment
Share on other sites

Tyll, no worries... You probably also got skeptical when you saw the SPL scale ;o). That's corrected now, I had forgotten to divide the fft by delta_t... In regards to integrating this into your existing spreadsheet, it's probably not recommended because of the large size of the CSD results (probably +1.5MB for each headphone Excel file). Also, you should try it with a couple of your data first as there's a possibility a "standard" dummy head measurement does not accommodate well with this (ask Purrin about his brilliant idea, I cant reveal it for him ;o) ).

Still, if you wanted to process your existing data again with that additional result, I am pretty sure we could come up with a macro to automate the loading of data for these 100+ files... Let me know, I'll be glad to help,

arnaud

Link to comment
Share on other sites

Neat work arnaud. In case anyone is interested, Octave is another free program that is similar to matlab, and will actually run many .m files that were written for matlab directly as long as it doesn't use stuff from fancy toolboxes.

Thanks, I did try to run Octave, both on OSX Lion and Win7, but no luck. I even tried installing Ubuntu on my mac to run it natively but never got that to run either... Scilab is sort of a more rigorous version of Matlab from the little I have played with it and as such, you systematically have to rewrite routines. I ended spending quite a bit of time on Scilab but kind of like it now. Graphs are actually cleaner than Matlab.

Link to comment
Share on other sites

Tyll et all,

I just shipped the 009s out to Montana this morning. I hope the BHSE is on its way too. I'm excited to see how they measure. Hopefully we can get others to start volunteering to send in their Stax gear as well.

Arnaud,

Could you link to some kind of primer for understanding the waterfall type plots you've been posting about? The information sure looks pretty, but I don't really understand what I'm looking at. Thx.

Link to comment
Share on other sites

^ Basically you have time on the x axis, frequency on the y axis, and magnitude on the z. You can look at a particular time and frequency to see the magnitude of the reponse at that time and frequency. You could also slice the plot at a given time to see frequency response magnitude across the audio spectrum. On the 2d plots the z axis is gone and colors represent the magnitude of the response.

Link to comment
Share on other sites

cobra_kai, it's funny because I had the exact same thought process... When I failed to run Octave on either platforms, I looked into scypi since this actually might also become useful for my work. I spent a little bit of time looking at it (spyder on windows) and liked it enough (learning curve from Matlab is about 10x that of going to scilab though) to try to get similar tool for my mac at home. Turns out getting a nice interpreter like spider on the mac was way beyond my IT skills and I ended up forced to restore Lion from my backup ;). Then started the quest to dual boot Lion and Ubuntu, which went nowhere (MBP'11 not supported much, for example no wireless or trackpad so it was not really practical, plus I could never get it to boot anyway). Anyhow, I ended up installing Windows 7 and been actually very happy with that. The OS is almost as nice feeling as OSX and I can run python on it... In all, although I like to recommend macs for most anyone, I would say that in this particular case, it's been hell!!

TMoney: Stereophile's introduction to their standard speaker tests gives you some explanation about what it is and more importantly what it tells that a regular magnitude response function in 2D doesn't: http://www.stereophile.com/content/measuring-loudspeakers-part-two-page-5

As cobra_kai said concisely, the extension into the 3rd direction is time. Think of it as the frequency response magnitude of the headphone, but only analysing the trailing edge of the impulse response. The first line (at t=0) is actually the exact same curve as published by Tyll up to now, it is the frequency response magnitude of the headphone using the whole data from rise of the impulse to its full decay a few ms later. The FRF slices down the time line truncate the beginning of the data so you're looking essentially at the ringing signature of the headphone. What you typically see is that peaks in the standard FRF magnitude curve ring for some time such that a ridge is formed at those frequencies.

In the case of the HD800 example, it is a bit hard to see as the headphone measures near perfect with just a tiny bit of ringing at 6kHz. In the case of the HF2, acoustic resonances of the undamped rear chamber for example (somewhere between 2 and 4kHz) clearly show up as they take several ms to decay by 40dB or so. As mentioned in the Stereophile introduction, you're pretty much guaranteed to hear those resonances in the midrange / lower treble so the graph is very useful to really gauge the behavior of the headphone. 2D magnitude curves typically make you miss that point in case the resonances are not clearly standing out.

Now, the issue at hand with headphone measurements is that you may not be able to look at such CSD graph with standard data which includes reflections from artificial (or not) pinna. In the case of speakers, measurement is performed in an anechoic room or in a standard room but truncating the impulse response before you see the first wall reflections (such as 6-10ms). In the case of headphones, Purrin's data looks really good but the man got some talent!

However, personally, I am not convinced yet that a standard headphone test on dummy cannot be used. The reason is that you are looking at some reflections no matter the test setup, if only the acoustic reflection from the back of the chamber to the ear. In the case of speaker, Stereophile rightfully mentions the test should be performed in anechoic conditions, but it is simply to remove the room dynamics (else you'll see the room modes decay, not that of the speaker). As discussed in the HF thread, at least with Purrin's data, the reflections from the room where the test was done are almost in the noise floor (50dB down) and don't prevent to look at the CSD of the headphone. Tyll is doing his tests in anechoic conditions (at least above 1kHz) so this should return even cleaner graphs.

sorry for the long rumbling post ;)

  • Like 1
Link to comment
Share on other sites

This decay data is really interesting, I wonder if it can be linked back to qualitative statements (such as muddiness). Another interesting point of comparison might be solid state versus tube.

Do any of the graphs that normally float around the community include time? Everything I've seen to this point seems to only reference the signature at that particular instant (amplitude vs. frequency)... I'm assuming the standard 2D dataplots do not measure any sort of delta, other than taking these snapshots under hopefully identical circumstances for the sample.

Upon digging a bit more, I came across these (2006 post), but never saw them brought up again. I wonder which Japanese user/company did these:

http://www.head-fi.o...60#post_6978894

Link to comment
Share on other sites

A new attempt at making the graphs more readable, still in Excel, the waterfall view shows normalized SPL (down to -40dB) in 1/12 Octave Bands. The 2D "top view" shows the narrow band results (also truncated below -40dB which is pretty much the usable range for this current data):

ExcelNew_HD800_3D.jpg

ExcelNew_HF2_3D.jpg

ExcelNew_HD800_NarrowBand.jpg

ExcelNew_HF2_NarrowBand.jpg

So Tyll, shall we proceed with your data ? ;)

Link to comment
Share on other sites

For this type of plots I like better graded tone one color than multicolor, which I find less intuitive to read. Perhaps colors can be chosen so they follow a gradation from one extreme to the other, so reading the intensity transitions is easier for dumb-old-school users like me.

Other than that those graphs are great, arnaud. I'm willing to see the plots from the 009 and comparing them with the 007. I saw waterfalls of the 007 and it surprised me how resonant they seemed, which matches n3rdling comment. Maybe those measurements weren't properly made.

Link to comment
Share on other sites

My concern is that the reflections from the headphone cups and dummy would be too early and have an adverse effect (causing cancellation or excitation nodes on the measurements. (The ear/brain has an amazingly funny way of being able to filter crap like this.) The room reflections in the data I gave Arnaud were 7-9 ms away - one and half meter, so those could easily be gated away - chop off everything after 5-6ms. In any case, as we saw, even if we included the reflection, the effect was so miniscule that it had no effect on the CSD plot.

Ideally, the best way would be mount one cup or driver on a large baffle and take the measurement in an anecolic (or close to it) chamber.

Tyll, I'd be game if you want to send me some data as well. My graphs are prettier too. rolleyes.gif Anyways I would be curious on the effect of the dummy head vs. my primitive low-tech, but apparently effective means of measurement. The more data, the better, especially if using differing measurement methods.

hp1000.txt.jpg

hd800.txt.jpg

Edited by purrin
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.