HOLMImpulse: Measuring Frequency- & Impulse-Response - Page 28 - diyAudio
Go Back   Home > Forums > Design & Build > Software Tools

Software Tools SPICE, PCB CAD, speaker design and measurement software, calculators

Please consider donating to help us continue to serve you.

Ads on/off / Custom Title / More PMs / More album space / Advanced printing & mass image saving
Reply
 
Thread Tools Search this Thread
Old 30th June 2009, 09:51 PM   #271
Key is offline Key  United States
diyAudio Member
 
Join Date: Jan 2009
Hmm it isn't the settings for the sample rate. Maybe a bitdepth issue?

DS=Blue
ASIO=Red
Click the image to open in full size.
  Reply With Quote
Old 30th June 2009, 11:30 PM   #272
KSTR is offline KSTR  Germany
diyAudio Member
 
KSTR's Avatar
 
Join Date: Jul 2007
Location: Central Berlin, Germany
I have found the same issue with ASIO vs. MME/DS, albeit to a way lesser extent, see
http://www.diyaudio.com/forums/showt...53#post1857553

Sweep length and many other parameters all have influence on the results. I will try to make explicit HD measurements at fixed LF frequencies or with sweeps with other means to find what is the issue here -- OTOH in my setup it's not a big deal with that low THD levels, compared to any speaker (&mic&room)

In my cards two big ASICs take care of everthing, deriving an almost freely adjustable sampling rate from a 40Mhz oscillator.. so different traffic over PCI etc could easily modify the LF jitter spectrum which could then have an influence on HD the way Ask is calculating it. Not easy to identify...

- Klaus
  Reply With Quote
Old 2nd July 2009, 10:06 AM   #273
Elam is offline Elam  Germany
diyAudio Member
 
Join Date: Jan 2005
Location: -
Will there be a Linux/Mono version?

Elam
  Reply With Quote
Old 3rd July 2009, 10:05 AM   #274
diyAudio Member
 
Join Date: Mar 2003
Location: Denmark, Copenhagen
Default HOLMImpulse @ Linux

Quote:
Originally posted by Elam
Will there be a Linux/Mono version?
The problem is that I use both C++ and CLR in windows
This means that in linux I'll have to choose between wine or mono

The ideal whould be mono with the C++ part compiled in native linux
and the CLR-windows only affecting GUI performance

I have been thinking about this... Maybe in a year ;-)
  Reply With Quote
Old 3rd July 2009, 12:58 PM   #275
diyAudio Member
 
Join Date: Mar 2003
Location: Denmark, Copenhagen
Default New Release 1.2.0.2

http://www.holmacoustics.com/downloa.../ChangeLog.txt

Version 1.2.0.2 (2009-07-03)

Features/Changes:
* Reinitialize Audio library (Detects soundcards plugged after start)
* Show PortAudio device information button
* Frequency domain - Export as PSpice compatiable text-file
* Impulse domain - Impulse interpolation is now optional
* Improved inverse calculation

Bugfixes:
* Keep stream active while cannot restart stream
* Export Impulse domain text file has a header no matter what the "text" option is set at.
* Imaginary part of Nyquist frequency in 2^n FFT

Notes:
* SSE2-version is now enabled per default, so the specific SSE2 version is now dead.

Known bugs:
* Crashes at signal length = 21
* Make Dac-Adc calibration does not work

Upcoming features
http://www.holmacoustics.com/downloa...lse/Issues.txt

  Reply With Quote
Old 5th July 2009, 07:08 AM   #276
domtw is offline domtw  France
diyAudio Member
 
domtw's Avatar
 
Join Date: Mar 2008
Location: Taiwan
Hello!
As you have seen in the other HOLM subject, I am trying to use your software to time-align drivers.
Today, I checked if a repeated measurement will have the same result.
I measured a single woofer, locked the time 0, at its IR's peak and then did other measurements with the exact same setup and of course without moving anything.

It appeared that the measurement number 1 (that is "empty 1' at the very beginning and becomes "Unnamed-1") seems to act strangely here.
If I measure using this measurement (number 1) the IR's peak is not always at time 0. When I repeat the measurement several times, the IR's peak position is between -0.02ms and 0.02ms...

The strange thing is that if I use other measurement file (like empty 2 ot other) and measure the same setup again. Then the IR's peak is always at time 0.

I tried to use the "number 1" file in other slot that its default slot B.
So I put that file in slot A and repeated some measurement again with the same setup: similar result: offset of +/-0.02ms. In slot C : same offset...


And I have tried other files in various slot: no offset!

That is weird, isn't it ?

Could that be a bug associated with this measurement file number 1 ?

Could that be a sound card related problem ?
I don't think so because, that would mean I would have been very lucky to have no offset with the measurement files other than number 1...


But about the sound card: how can we make sure it doesn't create an offset? I mean a variable offset, other than its latency...

Is the latency of a sound card always the same ?
  Reply With Quote
Old 5th July 2009, 11:41 AM   #277
diyAudio Member
 
Join Date: Mar 2003
Location: Denmark, Copenhagen
Default Time zero lock

Quote:
Originally posted by domtw
But about the sound card: how can we make sure it doesn't create an offset? I mean a variable offset, other than its latency...
Is the latency of a sound card always the same ?
That is why you MUST use keep-stream active when time-aligning
When keeping the full duplex stream active I'll only get offset-errors if the stream has dropouts. Because you are right the absolute offset changes a lot from time to time.
(Even for low-latency-ASIO you will get a few samples difference)

It is a very good idea to reproduce the impulse when timealigning, but don't use the woofer as reference, since the accuracy is proprotional to the frequency- hence a tweeter at 20000 Hz is 100 times more time-accurate than a woofer at 200 Hz

I suggest:
1. Keep stream active
2. Measure Tweeter
3. Use -> lock time zero
4. Measure Tweeter again same position (Reproduce IR)
5. Move the mic/speaker 1cm measure again, then you will see 1 cm translation of the IR

When above works, then you will know that you are on the right track
  Reply With Quote
Old 5th July 2009, 12:07 PM   #278
domtw is offline domtw  France
diyAudio Member
 
domtw's Avatar
 
Join Date: Mar 2008
Location: Taiwan
I have made the experience again, after restarting the software.
This time, all measurements were similar (without offset)
I don't know what happened previously...

I get your point for the time accuracy of a twitter's IR but in practice, it is much easier to move the tweeter than the woofer...
And, at the end, we want to compare both IR so if one is the reference of the other or reciprocally, I would think that it doesn't make a difference...
Or am I forgetting something ?
  Reply With Quote
Old 5th July 2009, 06:39 PM   #279
diyAudio Member
 
Join Date: Mar 2003
Location: Denmark, Copenhagen
Default Numerical test of the logsweep

I have made some "debug" numerical analysis.

"Measurements" can be downloaded here:
http://www.holmacoustics.com/downloa...umLoopBack.hlm

Untill I implement the load DUT response you can not make these measurements yourself.

Parameters not changed:
Samplerate = 44.1 kHz
Frequency start = 10Hz

L = 18 & L = 19
First compare two different lengths L = 18, 19 (6 sec, 12 sec)
The noise level for the impulse response is around -180dB (10^-9)
This give a relative THD sum around -140 dB.

Observations:
- No difference with the noise level for L = 18,19
- No artifacts
- Uniform noise level for the entire impulse range
- Nearly uniform frequency noise level
- IR Noise level : -180 dB
- FR Noise level: -140 dB

Click the image to open in full size.

There are absolutely NO artifacts, which is seen on a zoom around the Dirac sample:
Click the image to open in full size.

THD when fading
Introducing THD by making clipping (amplify by 1,25 and truncate) L = 18

Observations:
- If to much fading then THD is not relieable
- Same THD level in the "safe" non fading zone
- Same trend in IR

Click the image to open in full size.

THD when using L = 18, 19
Introducing THD by making clipping (amplify by 1,25 and truncate)
This is a beauty, same THD when using L = 18 or L = 19
Click the image to open in full size.

Inverse when fading
Observations:
- Fading to much gives an "ugly" inverse signal, which might introduce artifacts when using narrow timewindows

Click the image to open in full size.


Conclusions
- No numerical artifacts
- IR noise level: -185 dB
- THD noise level: -140 dB
- Unform noise in the IR
- Unform noise in the FR
- Fading does not improve anything


Disable fading in future releases?
Why do I want to do this?
Fading disadvantages:
- Why complicate matters if you do not know what you get?
- The inverse is not uniquely determined by: Length, Samplerate, frequency start. Eg. burning to a CD or record we will not know "which" kind of fading that we used.

Fading advantages:
- To be numerically justified
(When measuring soundcard loopback we do not know what we must get - we are only guessing)
Does anybody have an idea when fading will improve the data?
I mean what kind of input distortion / transfer function should I introduce numerically?
  Reply With Quote
Old 6th July 2009, 12:26 AM   #280
KSTR is offline KSTR  Germany
diyAudio Member
 
KSTR's Avatar
 
Join Date: Jul 2007
Location: Central Berlin, Germany
I think I cannot give a satisfying answer for the fading issue... but I share a few thoughts and observations, adding to what I already wrote in an earlier post.

The "problem" lies in the way you define the inverse as the inverse of the sweep in the freq domain regardless of its shape (enevelope), which gives by definition a true dirac unless you run into numerical issues.

However, all sources I checked (DRC especially) generating bandlimited(!) log sweeps and their inverses handle it different, the convolution "back into the pulse" shows exactly that bandlimiting in the pulse also, hence not a "perfect" dirac. And all use raised-cosine or similar low-sideband windowing (DRC: Blackmann) for the fades. I use raised-cosine in my own code and get almost pefectly consistent results with DRC. Point is that these windows are applied to the inverse as well, additional (multiplying) to the overall log fade which makes the inverse just as "perfect" as the stimulus. Both are generated in the time domain. And the fades are included in the total sweep time and total freq range.

In your case the fades sort of pre-equalize the stimulus but your inverse cancels that, forcing a flat response. Therefore, during the fades, it is obvious that there are differences in the distortion as the signal level changes, transparent to the process the way you do it. Not regarding the distortion coming from the kink in the waveform with the window you use (which you might have changed in the meantime, I didn't check this).

While I understand there are good reasons for either way, I'd basically prefer the non-transparent approach, any intentional bandlimiting shall be seen (in your SW as the "measurement signal"). Except for the case of a bit of HF attenuation to protect the tweeter better during a fullrange measurement. That is what Uli Brueggemann does in his log-sweep recorder. He also has a stop freq, which is a nice feature when one is using higher sample rates, for example. Further there are "markers" in front of the sweep and behind it, to be able to compensate clock-mismatches to a certain extent when using non-synced recording.

OTOH this makes mic and adc/dac calibration different...

------:-------

All the other stuff is fine, I did a few real speaker measurements today and the handling of the SW is really excellent now.

- Klaus
  Reply With Quote

Reply


Hide this!Advertise here!
Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are Off
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Measuring Frequency Response MCPete Multi-Way 10 10th February 2009 12:36 AM
Measuring Frequency Response furly Planars & Exotics 1 17th March 2006 06:59 AM
Measuring the frequency response of a mic? mr_push_pull Multi-Way 5 30th August 2004 12:26 PM


New To Site? Need Help?

All times are GMT. The time now is 12:32 PM.


vBulletin Optimisation provided by vB Optimise (Pro) - vBulletin Mods & Addons Copyright © 2014 DragonByte Technologies Ltd.
Copyright 1999-2014 diyAudio

Content Relevant URLs by vBSEO 3.3.2