「UTS Audio.dll」修訂間的差異

出自ITTS
跳至導覽 跳至搜尋
 
(未顯示同一使用者於中間所作的 14 次修訂)
行 13: 行 13:
  
 
once install files will stay under  '''c:\Program Files (x86)\Logitech\UTS\UTS_Audio\'''
 
once install files will stay under  '''c:\Program Files (x86)\Logitech\UTS\UTS_Audio\'''
==== UTS_Audio.dll ====
+
* UTS_Audio.dll
==== UTS_Audio_dlg.exe ====
+
* UTS_Audio_dlg.exe  
DOC:
 
  
 +
'''Scrip example:'''
 
[[檔案:UTS audio load.png|縮圖]]
 
[[檔案:UTS audio load.png|縮圖]]
 
{| class="mw-collapsible mw-collapsed wikitable"
 
{| class="mw-collapsible mw-collapsed wikitable"
行 1,287: 行 1,287:
 
* Peak Power / Peak Frequency 在 Frequency domain 裡面最高位置的 頻率( x 軸) & level (Y 軸)
 
* Peak Power / Peak Frequency 在 Frequency domain 裡面最高位置的 頻率( x 軸) & level (Y 軸)
  
 +
'''Frequency Response  (頻率響應的測試)'''
 +
[[檔案:UTS audio freq response.png|縮圖|UTS audio freq response]]
 +
* 給一段 頻率範圍 (例如: 1000Hz ~ 6000Hz )
 +
* 設置想要達到的dB值 (例如 -40 dB)
 +
* 設置喇叭(音源) 與 輸入(mic) 的相對位置.
 +
* 將輸出reset 到輸出最大音量 (每次都要做(有bug必須要做))
 +
* 執行 Frequency Response. ap 會開始調適適合的音量 來符合你的期望dB值  (調整不到則會 fail 跳出 )
 +
* pass 的話 會輸出 每個頻率所需要的音量大小
 +
用於分析 麥克風與 喇叭的頻率響應 敏度
 +
範例圖如右
  
 
difference between real time analysis THD  or load  wave file to  analysis
 
difference between real time analysis THD  or load  wave file to  analysis
[[檔案:Realtime thd.png|縮圖|無|Realtime thd analysis]]
+
[[檔案:Realtime thd.png|縮圖|無|Realtime thd analysis]]<br>
[[檔案:Load file thd0.png|縮圖|無|load wave file]]
+
 
 +
[[檔案:Load file thd0.png|縮圖|無|load file]]
 
[[檔案:Load file thd1.png|縮圖|無|analysis wave file ]]
 
[[檔案:Load file thd1.png|縮圖|無|analysis wave file ]]

於 2020年8月6日 (四) 12:46 的最新修訂

UTS_Audio[編輯]

=== install file: UTS_Audio01000010.exe ===

  • load audio dll
  • assign device (output and capture)
  • generate freq
  • analysis
  • log result

可分析

  • 即時的 音源
  • 也可以分析 .wav 的檔案 sample code 裡面都有
  • 可由device name or GUID 來選擇要輸入/輸出的 裝置 GUID 空白時就以 default device 來控制

once install files will stay under c:\Program Files (x86)\Logitech\UTS\UTS_Audio\

  • UTS_Audio.dll
  • UTS_Audio_dlg.exe

Scrip example:

UTS audio load.png
DLL Load /debug example (copy scrip contents phase to scrip editor)
    <Item> 
      <Text> </Text> 
      <Description> load UTS_Audio.dll</Description> 
      <ItemType> 2</ItemType> 
      <Skip> 1</Skip> 
      <ItemSection1> DLL</ItemSection1> 
      <ItemSection2> load</ItemSection2> 
      <ItemCommand> ['&TESTPLANPATH'+"UTS_Audio.dll"]</ItemCommand> 
      <FailAction> </FailAction> 
      <FieldName> </FieldName> 
      <FieldNumber> </FieldNumber> 
      <ErrorCode> </ErrorCode> 
      <RetryTimes> 0</RetryTimes> 
      <RetryDelay> 0</RetryDelay> 
      <Process> </Process> 
      <FieldType> </FieldType> 
      <Parameter> 
        <i1>
          <Content></Content>
          <Description>Min</Description>
        </i1>
        <i2>
          <Content></Content>
          <Description>Max</Description>
        </i2>
      </Parameter> 
    </Item> 
    <Item> 
      <Text> </Text> 
      <Description> load UTS_Audio.dll</Description> 
      <ItemType> 2</ItemType> 
      <Skip> 2</Skip> 
      <ItemSection1> DLL</ItemSection1> 
      <ItemSection2> load</ItemSection2> 
      <ItemCommand> .\UTS_Audio\UTS_Audio.dll</ItemCommand> 
      <FailAction> </FailAction> 
      <FieldName> </FieldName> 
      <FieldNumber> </FieldNumber> 
      <ErrorCode> </ErrorCode> 
      <RetryTimes> 0</RetryTimes> 
      <RetryDelay> 0</RetryDelay> 
      <Process> </Process> 
      <FieldType> </FieldType> 
      <Parameter> 
        <i1>
          <Content></Content>
          <Description>Min</Description>
        </i1>
        <i2>
          <Content></Content>
          <Description>Max</Description>
        </i2>
      </Parameter> 
    </Item> 
    <Item> 
      <Text> </Text> 
      <Description> ShowDebugForm</Description> 
      <ItemType> 2</ItemType> 
      <Skip> 2</Skip> 
      <ItemSection1> DLL</ItemSection1> 
      <ItemSection2> execute</ItemSection2> 
      <ItemCommand> UTS_Audio.dll</ItemCommand> 
      <FailAction> </FailAction> 
      <FieldName> </FieldName> 
      <FieldNumber> </FieldNumber> 
      <ErrorCode> </ErrorCode> 
      <RetryTimes> 0</RetryTimes> 
      <RetryDelay> 0</RetryDelay> 
      <Process> </Process> 
      <FieldType> </FieldType> 
      <Parameter> 
        <i1>
          <Content></Content>
          <Description>Min</Description>
        </i1>
        <i2>
          <Content></Content>
          <Description>Max</Description>
        </i2>
        <i3>
          <Content>Debug</Content>
          <Description>CMD</Description>
        </i3>
        <i4>
          <Content>ShowDebugForm</Content>
          <Description>SubCmd</Description>
        </i4>
      </Parameter> 
    </Item> 
UTS audio device assign.png
refresh device assign Play and Capture device (copy scrip contents phase to scrip editor)
    <Item> 
      <Text> </Text> 
      <Description> (Debug)RefreshDeviceList</Description> 
      <ItemType> 2</ItemType> 
      <Skip> 1</Skip> 
      <ItemSection1> DLL</ItemSection1> 
      <ItemSection2> execute</ItemSection2> 
      <ItemCommand> UTS_Audio.dll</ItemCommand> 
      <FailAction> </FailAction> 
      <FieldName> </FieldName> 
      <FieldNumber> </FieldNumber> 
      <ErrorCode> </ErrorCode> 
      <RetryTimes> 0</RetryTimes> 
      <RetryDelay> 0</RetryDelay> 
      <Process> </Process> 
      <FieldType> </FieldType> 
      <Parameter> 
        <i1>
          <Content></Content>
          <Description>Min</Description>
        </i1>
        <i2>
          <Content></Content>
          <Description>Max</Description>
        </i2>
        <i3>
          <Content>Debug</Content>
          <Description>CMD</Description>
        </i3>
        <i4>
          <Content>RefreshDeviceList</Content>
          <Description>SubCommand</Description>
        </i4>
      </Parameter> 
    </Item> 
    <Item> 
      <Text> </Text> 
      <Description> (Play)CreateDeviceByName</Description> 
      <ItemType> 2</ItemType> 
      <Skip> 1</Skip> 
      <ItemSection1> DLL</ItemSection1> 
      <ItemSection2> execute</ItemSection2> 
      <ItemCommand> UTS_Audio.dll</ItemCommand> 
      <FailAction> </FailAction> 
      <FieldName> </FieldName> 
      <FieldNumber> </FieldNumber> 
      <ErrorCode> </ErrorCode> 
      <RetryTimes> 0</RetryTimes> 
      <RetryDelay> 0</RetryDelay> 
      <Process> </Process> 
      <FieldType> </FieldType> 
      <Parameter> 
        <i1>
          <Content></Content>
          <Description>Min</Description>
        </i1>
        <i2>
          <Content></Content>
          <Description>Max</Description>
        </i2>
        <i3>
          <Content>Play</Content>
          <Description>CMD</Description>
        </i3>
        <i4>
          <Content>CreateDeviceByName</Content>
          <Description>SubCmd</Description>
        </i4>
        <i5>
          <Content>1</Content>
          <Description>DeviceIndex</Description>
        </i5>
        <i6>
          <Content>Speakers (Conexant SmartAudio HD)</Content>
          <Description>Name</Description>
        </i6>
        <i7>
          <Content>192000</Content>
          <Description>SamplesPerSec</Description>
        </i7>
        <i8>
          <Content>16</Content>
          <Description>BitsPerSample</Description>
        </i8>
        <i9>
          <Content>2</Content>
          <Description>Channels</Description>
        </i9>
      </Parameter> 
    </Item> 
    <Item> 
      <Text> </Text> 
      <Description> (Capture)CreateDeviceByName</Description> 
      <ItemType> 2</ItemType> 
      <Skip> 1</Skip> 
      <ItemSection1> DLL</ItemSection1> 
      <ItemSection2> execute</ItemSection2> 
      <ItemCommand> UTS_Audio.dll</ItemCommand> 
      <FailAction> </FailAction> 
      <FieldName> </FieldName> 
      <FieldNumber> </FieldNumber> 
      <ErrorCode> </ErrorCode> 
      <RetryTimes> 0</RetryTimes> 
      <RetryDelay> 0</RetryDelay> 
      <Process> </Process> 
      <FieldType> </FieldType> 
      <Parameter> 
        <i1>
          <Content></Content>
          <Description>Min</Description>
        </i1>
        <i2>
          <Content></Content>
          <Description>Max</Description>
        </i2>
        <i3>
          <Content>Capture</Content>
          <Description>CMD</Description>
        </i3>
        <i4>
          <Content>CreateDeviceByName</Content>
          <Description>SubCmd</Description>
        </i4>
        <i5>
          <Content>1</Content>
          <Description>DeviceIndex</Description>
        </i5>
        <i6>
          <Content>Microphone Array (Conexant SmartAudio HD)</Content>
          <Description>Name</Description>
        </i6>
        <i7>
          <Content>192000</Content>
          <Description>SamplesPerSec</Description>
        </i7>
        <i8>
          <Content>16</Content>
          <Description>BitsPerSample</Description>
        </i8>
        <i9>
          <Content>2</Content>
          <Description>Channels</Description>
        </i9>
      </Parameter> 
    </Item> 
wav file analysis (copy scrip contents phase to scrip editor)
    <Item> 
      <Text> 1KHz</Text> 
      <Description> Test Group</Description> 
      <ItemType> 1</ItemType> 
      <Skip> 1</Skip> 
      <SubItem> 
         <Item> 
           <Text> Perfect 1KHz</Text> 
           <Description> </Description> 
           <ItemType> 1</ItemType> 
           <Skip> 1</Skip> 
           <SubItem> 
              <Item> 
                <Text> </Text> 
                <Description> (Capture)LoadWaveFile_Perfect440Hz</Description> 
                <ItemType> 2</ItemType> 
                <Skip> 1</Skip> 
                <ItemSection1> DLL</ItemSection1> 
                <ItemSection2> execute</ItemSection2> 
                <ItemCommand> UTS_Audio.dll</ItemCommand> 
                <FailAction> </FailAction> 
                <FieldName> </FieldName> 
                <FieldNumber> </FieldNumber> 
                <ErrorCode> </ErrorCode> 
                <RetryTimes> 0</RetryTimes> 
                <RetryDelay> 0</RetryDelay> 
                <Process> </Process> 
                <FieldType> </FieldType> 
                <Parameter> 
                  <i1>
                    <Content></Content>
                    <Description>Min</Description>
                  </i1>
                  <i2>
                    <Content></Content>
                    <Description>Max</Description>
                  </i2>
                  <i3>
                    <Content>Capture</Content>
                    <Description>CMD</Description>
                  </i3>
                  <i4>
                    <Content>LoadWaveFile</Content>
                    <Description>SubCmd</Description>
                  </i4>
                  <i5>
                    <Content>1</Content>
                    <Description>DeviceIndex</Description>
                  </i5>
                  <i6>
                    <Content>['&TESTPLANPATH'+"1kHz_44100Hz_16bit_05sec.wav"]</Content>
                    <Description>FileName</Description>
                  </i6>
                </Parameter> 
              </Item> 
              <Item> 
                <Text> </Text> 
                <Description> (Capture)Get_THD</Description> 
                <ItemType> 2</ItemType> 
                <Skip> 1</Skip> 
                <ItemSection1> DLL</ItemSection1> 
                <ItemSection2> execute</ItemSection2> 
                <ItemCommand> UTS_Audio.dll</ItemCommand> 
                <FailAction> </FailAction> 
                <FieldName> 1K_Perfect_THD;1K_Perfect_Freq</FieldName> 
                <FieldNumber> 26;27</FieldNumber> 
                <ErrorCode> </ErrorCode> 
                <RetryTimes> 0</RetryTimes> 
                <RetryDelay> 0</RetryDelay> 
                <Process> </Process> 
                <FieldType> </FieldType> 
                <Parameter> 
                  <i1>
                    <Content></Content>
                    <Description>Min</Description>
                  </i1>
                  <i2>
                    <Content></Content>
                    <Description>Max</Description>
                  </i2>
                  <i3>
                    <Content>Capture</Content>
                    <Description>CMD</Description>
                  </i3>
                  <i4>
                    <Content>Get_THD</Content>
                    <Description>SubCmd</Description>
                  </i4>
                  <i5>
                    <Content>1</Content>
                    <Description>DeviceIndex</Description>
                  </i5>
                  <i6>
                    <Content>0</Content>
                    <Description>nSKip</Description>
                  </i6>
                  <i7>
                    <Content>1000</Content>
                    <Description>TargetFreqency</Description>
                  </i7>
                  <i8>
                    <Content>3</Content>
                    <Description>WindowType</Description>
                  </i8>
                  <i9>
                    <Content>5</Content>
                    <Description>nHarmonics</Description>
                  </i9>
                </Parameter> 
              </Item> 
              <Item> 
                <Text> </Text> 
                <Description> (Capture)Get_DC_RMS_Stddev</Description> 
                <ItemType> 2</ItemType> 
                <Skip> 1</Skip> 
                <ItemSection1> DLL</ItemSection1> 
                <ItemSection2> execute</ItemSection2> 
                <ItemCommand> UTS_Audio.dll</ItemCommand> 
                <FailAction> </FailAction> 
                <FieldName> 1K_Perfect_DC;1K_Perfect_RMS;1K_Perfect_STDDev</FieldName> 
                <FieldNumber> 28;29;30</FieldNumber> 
                <ErrorCode> </ErrorCode> 
                <RetryTimes> 0</RetryTimes> 
                <RetryDelay> 0</RetryDelay> 
                <Process> </Process> 
                <FieldType> </FieldType> 
                <Parameter> 
                  <i1>
                    <Content></Content>
                    <Description>Min</Description>
                  </i1>
                  <i2>
                    <Content></Content>
                    <Description>Max</Description>
                  </i2>
                  <i3>
                    <Content>Capture</Content>
                    <Description>CMD</Description>
                  </i3>
                  <i4>
                    <Content>Get_DC_RMS_Stddev</Content>
                    <Description>SubCmd</Description>
                  </i4>
                  <i5>
                    <Content>1</Content>
                    <Description>DeviceIndex</Description>
                  </i5>
                  <i6>
                    <Content>0</Content>
                    <Description>nSkip</Description>
                  </i6>
                </Parameter> 
              </Item> 
              <Item> 
                <Text> </Text> 
                <Description> (Capture)Get_Estimate_ACDC</Description> 
                <ItemType> 2</ItemType> 
                <Skip> 1</Skip> 
                <ItemSection1> DLL</ItemSection1> 
                <ItemSection2> execute</ItemSection2> 
                <ItemCommand> UTS_Audio.dll</ItemCommand> 
                <FailAction> </FailAction> 
                <FieldName> 1K_Perfect_EST_AC_LVL;1K_Perfect_EST_DC;1K_Perfect_EST_STD;1K_Perfect_dbFS;</FieldName> 
                <FieldNumber> 31;32;33;34;</FieldNumber> 
                <ErrorCode> </ErrorCode> 
                <RetryTimes> 0</RetryTimes> 
                <RetryDelay> 0</RetryDelay> 
                <Process> </Process> 
                <FieldType> </FieldType> 
                <Parameter> 
                  <i1>
                    <Content></Content>
                    <Description>Min</Description>
                  </i1>
                  <i2>
                    <Content></Content>
                    <Description>Max</Description>
                  </i2>
                  <i3>
                    <Content>Capture</Content>
                    <Description>CMD</Description>
                  </i3>
                  <i4>
                    <Content>Get_Estimate_ACDC</Content>
                    <Description>SubCmd</Description>
                  </i4>
                  <i5>
                    <Content>1</Content>
                    <Description>DeviceIndex</Description>
                  </i5>
                  <i6>
                    <Content>0</Content>
                    <Description>nSkip</Description>
                  </i6>
                </Parameter> 
              </Item> 
           </SubItem> 
         </Item> 
         <Item> 
           <Text> Noise 1KHz</Text> 
           <Description> </Description> 
           <ItemType> 1</ItemType> 
           <Skip> 1</Skip> 
           <SubItem> 
              <Item> 
                <Text> </Text> 
                <Description> (Capture)LoadWaveFile_Perfect440Hz</Description> 
                <ItemType> 2</ItemType> 
                <Skip> 1</Skip> 
                <ItemSection1> DLL</ItemSection1> 
                <ItemSection2> execute</ItemSection2> 
                <ItemCommand> UTS_Audio.dll</ItemCommand> 
                <FailAction> </FailAction> 
                <FieldName> </FieldName> 
                <FieldNumber> </FieldNumber> 
                <ErrorCode> </ErrorCode> 
                <RetryTimes> 0</RetryTimes> 
                <RetryDelay> 0</RetryDelay> 
                <Process> </Process> 
                <FieldType> </FieldType> 
                <Parameter> 
                  <i1>
                    <Content></Content>
                    <Description>Min</Description>
                  </i1>
                  <i2>
                    <Content></Content>
                    <Description>Max</Description>
                  </i2>
                  <i3>
                    <Content>Capture</Content>
                    <Description>CMD</Description>
                  </i3>
                  <i4>
                    <Content>LoadWaveFile</Content>
                    <Description>SubCmd</Description>
                  </i4>
                  <i5>
                    <Content>1</Content>
                    <Description>DeviceIndex</Description>
                  </i5>
                  <i6>
                    <Content>['&TESTPLANPATH'+"1KHz_Record.wav"]</Content>
                    <Description>FileName</Description>
                  </i6>
                </Parameter> 
              </Item> 
              <Item> 
                <Text> </Text> 
                <Description> (Capture)Get_THD</Description> 
                <ItemType> 2</ItemType> 
                <Skip> 1</Skip> 
                <ItemSection1> DLL</ItemSection1> 
                <ItemSection2> execute</ItemSection2> 
                <ItemCommand> UTS_Audio.dll</ItemCommand> 
                <FailAction> </FailAction> 
                <FieldName> 1K_Noise_THD;1K_Noise_Freq</FieldName> 
                <FieldNumber> 35;36</FieldNumber> 
                <ErrorCode> </ErrorCode> 
                <RetryTimes> 0</RetryTimes> 
                <RetryDelay> 0</RetryDelay> 
                <Process> </Process> 
                <FieldType> </FieldType> 
                <Parameter> 
                  <i1>
                    <Content></Content>
                    <Description>Min</Description>
                  </i1>
                  <i2>
                    <Content></Content>
                    <Description>Max</Description>
                  </i2>
                  <i3>
                    <Content>Capture</Content>
                    <Description>CMD</Description>
                  </i3>
                  <i4>
                    <Content>Get_THD</Content>
                    <Description>SubCmd</Description>
                  </i4>
                  <i5>
                    <Content>1</Content>
                    <Description>DeviceIndex</Description>
                  </i5>
                  <i6>
                    <Content>0</Content>
                    <Description>nSKip</Description>
                  </i6>
                  <i7>
                    <Content>1000</Content>
                    <Description>TargetFreqency</Description>
                  </i7>
                  <i8>
                    <Content>3</Content>
                    <Description>WindowType</Description>
                  </i8>
                  <i9>
                    <Content>5</Content>
                    <Description>nHarmonics</Description>
                  </i9>
                </Parameter> 
              </Item> 
              <Item> 
                <Text> </Text> 
                <Description> (Capture)Get_DC_RMS_Stddev</Description> 
                <ItemType> 2</ItemType> 
                <Skip> 1</Skip> 
                <ItemSection1> DLL</ItemSection1> 
                <ItemSection2> execute</ItemSection2> 
                <ItemCommand> UTS_Audio.dll</ItemCommand> 
                <FailAction> </FailAction> 
                <FieldName> 1K_Noise_DC;1K_Noise_RMS;1K_Noise_STDDev</FieldName> 
                <FieldNumber> 37;38;39</FieldNumber> 
                <ErrorCode> </ErrorCode> 
                <RetryTimes> 0</RetryTimes> 
                <RetryDelay> 0</RetryDelay> 
                <Process> </Process> 
                <FieldType> </FieldType> 
                <Parameter> 
                  <i1>
                    <Content></Content>
                    <Description>Min</Description>
                  </i1>
                  <i2>
                    <Content></Content>
                    <Description>Max</Description>
                  </i2>
                  <i3>
                    <Content>Capture</Content>
                    <Description>CMD</Description>
                  </i3>
                  <i4>
                    <Content>Get_DC_RMS_Stddev</Content>
                    <Description>SubCmd</Description>
                  </i4>
                  <i5>
                    <Content>1</Content>
                    <Description>DeviceIndex</Description>
                  </i5>
                  <i6>
                    <Content>0</Content>
                    <Description>nSkip</Description>
                  </i6>
                </Parameter> 
              </Item> 
              <Item> 
                <Text> </Text> 
                <Description> (Capture)Get_Estimate_ACDC</Description> 
                <ItemType> 2</ItemType> 
                <Skip> 1</Skip> 
                <ItemSection1> DLL</ItemSection1> 
                <ItemSection2> execute</ItemSection2> 
                <ItemCommand> UTS_Audio.dll</ItemCommand> 
                <FailAction> </FailAction> 
                <FieldName> 1K_Noise_EST_AC_LVL;1K_Noise_EST_DC;1K_Noise_EST_STD;1K_Noise_dbFS;</FieldName> 
                <FieldNumber> 40;41;42;43;</FieldNumber> 
                <ErrorCode> </ErrorCode> 
                <RetryTimes> 0</RetryTimes> 
                <RetryDelay> 0</RetryDelay> 
                <Process> </Process> 
                <FieldType> </FieldType> 
                <Parameter> 
                  <i1>
                    <Content></Content>
                    <Description>Min</Description>
                  </i1>
                  <i2>
                    <Content></Content>
                    <Description>Max</Description>
                  </i2>
                  <i3>
                    <Content>Capture</Content>
                    <Description>CMD</Description>
                  </i3>
                  <i4>
                    <Content>Get_Estimate_ACDC</Content>
                    <Description>SubCmd</Description>
                  </i4>
                  <i5>
                    <Content>1</Content>
                    <Description>DeviceIndex</Description>
                  </i5>
                  <i6>
                    <Content>0</Content>
                    <Description>nSkip</Description>
                  </i6>
                </Parameter> 
              </Item> 
           </SubItem> 
         </Item> 
      </SubItem> 
    </Item> 

or

real time in out analysis(copy scrip contents phase to scrip editor)
    <Item> 
      <Text> Capture</Text> 
      <Description> Test Group</Description> 
      <ItemType> 1</ItemType> 
      <Skip> 1</Skip> 
      <SubItem> 
         <Item> 
           <Text> </Text> 
           <Description> (Play)CreateDeviceByName</Description> 
           <ItemType> 2</ItemType> 
           <Skip> 2</Skip> 
           <ItemSection1> DLL</ItemSection1> 
           <ItemSection2> execute</ItemSection2> 
           <ItemCommand> UTS_Audio.dll</ItemCommand> 
           <FailAction> </FailAction> 
           <FieldName> </FieldName> 
           <FieldNumber> </FieldNumber> 
           <ErrorCode> </ErrorCode> 
           <RetryTimes> 0</RetryTimes> 
           <RetryDelay> 0</RetryDelay> 
           <Process> </Process> 
           <FieldType> </FieldType> 
           <Parameter> 
             <i1>
               <Content></Content>
               <Description>Min</Description>
             </i1>
             <i2>
               <Content></Content>
               <Description>Max</Description>
             </i2>
             <i3>
               <Content>Play</Content>
               <Description>CMD</Description>
             </i3>
             <i4>
               <Content>CreateDeviceByName</Content>
               <Description>SubCmd</Description>
             </i4>
             <i5>
               <Content>1</Content>
               <Description>DeviceIndex</Description>
             </i5>
             <i6>
               <Content>Intel(r) Integrated Audio</Content>
               <Description>Name</Description>
             </i6>
             <i7>
               <Content>192000</Content>
               <Description>SamplesPerSec</Description>
             </i7>
             <i8>
               <Content>16</Content>
               <Description>BitsPerSample</Description>
             </i8>
             <i9>
               <Content>2</Content>
               <Description>Channels</Description>
             </i9>
           </Parameter> 
         </Item> 
         <Item> 
           <Text> </Text> 
           <Description> (Play)Set_Channel</Description> 
           <ItemType> 2</ItemType> 
           <Skip> 1</Skip> 
           <ItemSection1> DLL</ItemSection1> 
           <ItemSection2> execute</ItemSection2> 
           <ItemCommand> UTS_Audio.dll</ItemCommand> 
           <FailAction> </FailAction> 
           <FieldName> </FieldName> 
           <FieldNumber> </FieldNumber> 
           <ErrorCode> </ErrorCode> 
           <RetryTimes> 0</RetryTimes> 
           <RetryDelay> 0</RetryDelay> 
           <Process> </Process> 
           <FieldType> </FieldType> 
           <Parameter> 
             <i1>
               <Content></Content>
               <Description>Min</Description>
             </i1>
             <i2>
               <Content></Content>
               <Description>Max</Description>
             </i2>
             <i3>
               <Content>Play</Content>
               <Description>CMD</Description>
             </i3>
             <i4>
               <Content>Set_Channel</Content>
               <Description>SubCmd</Description>
             </i4>
             <i5>
               <Content>1</Content>
               <Description>DeviceIndex</Description>
             </i5>
             <i6>
               <Content>1</Content>
               <Description>Channel(default=1)</Description>
             </i6>
           </Parameter> 
         </Item> 
         <Item> 
           <Text> </Text> 
           <Description> (Play)Set_Frequency</Description> 
           <ItemType> 2</ItemType> 
           <Skip> 1</Skip> 
           <ItemSection1> DLL</ItemSection1> 
           <ItemSection2> execute</ItemSection2> 
           <ItemCommand> UTS_Audio.dll</ItemCommand> 
           <FailAction> </FailAction> 
           <FieldName> </FieldName> 
           <FieldNumber> </FieldNumber> 
           <ErrorCode> </ErrorCode> 
           <RetryTimes> 0</RetryTimes> 
           <RetryDelay> 0</RetryDelay> 
           <Process> </Process> 
           <FieldType> </FieldType> 
           <Parameter> 
             <i1>
               <Content></Content>
               <Description>Min</Description>
             </i1>
             <i2>
               <Content></Content>
               <Description>Max</Description>
             </i2>
             <i3>
               <Content>Play</Content>
               <Description>CMD</Description>
             </i3>
             <i4>
               <Content>Set_Frequency</Content>
               <Description>SubCmd</Description>
             </i4>
             <i5>
               <Content>1</Content>
               <Description>DeviceIndex</Description>
             </i5>
             <i6>
               <Content>1000</Content>
               <Description>Frequency</Description>
             </i6>
           </Parameter> 
         </Item> 
         <Item> 
           <Text> </Text> 
           <Description> (Play)Play</Description> 
           <ItemType> 2</ItemType> 
           <Skip> 1</Skip> 
           <ItemSection1> DLL</ItemSection1> 
           <ItemSection2> execute</ItemSection2> 
           <ItemCommand> UTS_Audio.dll</ItemCommand> 
           <FailAction> </FailAction> 
           <FieldName> </FieldName> 
           <FieldNumber> </FieldNumber> 
           <ErrorCode> </ErrorCode> 
           <RetryTimes> 0</RetryTimes> 
           <RetryDelay> 0</RetryDelay> 
           <Process> </Process> 
           <FieldType> </FieldType> 
           <Parameter> 
             <i1>
               <Content></Content>
               <Description>Min</Description>
             </i1>
             <i2>
               <Content></Content>
               <Description>Max</Description>
             </i2>
             <i3>
               <Content>Play</Content>
               <Description>CMD</Description>
             </i3>
             <i4>
               <Content>Play</Content>
               <Description>SubCmd</Description>
             </i4>
             <i5>
               <Content>1</Content>
               <Description>DeviceIndex</Description>
             </i5>
           </Parameter> 
         </Item> 
         <Item> 
           <Text> </Text> 
           <Description> (Capture)CaptureData</Description> 
           <ItemType> 2</ItemType> 
           <Skip> 1</Skip> 
           <ItemSection1> DLL</ItemSection1> 
           <ItemSection2> execute</ItemSection2> 
           <ItemCommand> UTS_Audio.dll</ItemCommand> 
           <FailAction> </FailAction> 
           <FieldName> </FieldName> 
           <FieldNumber> </FieldNumber> 
           <ErrorCode> </ErrorCode> 
           <RetryTimes> 0</RetryTimes> 
           <RetryDelay> 0</RetryDelay> 
           <Process> </Process> 
           <FieldType> </FieldType> 
           <Parameter> 
             <i1>
               <Content></Content>
               <Description>Min</Description>
             </i1>
             <i2>
               <Content></Content>
               <Description>Max</Description>
             </i2>
             <i3>
               <Content>Capture</Content>
               <Description>CMD</Description>
             </i3>
             <i4>
               <Content>CaptureData</Content>
               <Description>SubCmd</Description>
             </i4>
             <i5>
               <Content>1</Content>
               <Description>DeviceIndex</Description>
             </i5>
             <i6>
               <Content>2</Content>
               <Description>nSkip</Description>
             </i6>
           </Parameter> 
         </Item> 
         <Item> 
           <Text> </Text> 
           <Description> (Capture)Get_THD</Description> 
           <ItemType> 2</ItemType> 
           <Skip> 1</Skip> 
           <ItemSection1> DLL</ItemSection1> 
           <ItemSection2> execute</ItemSection2> 
           <ItemCommand> UTS_Audio.dll</ItemCommand> 
           <FailAction> </FailAction> 
           <FieldName> THD;Peak_Frequency;Peak_Pwr</FieldName> 
           <FieldNumber> 44;45;46</FieldNumber> 
           <ErrorCode> </ErrorCode> 
           <RetryTimes> 0</RetryTimes> 
           <RetryDelay> 0</RetryDelay> 
           <Process> </Process> 
           <FieldType> </FieldType> 
           <Parameter> 
             <i1>
               <Content></Content>
               <Description>Min</Description>
             </i1>
             <i2>
               <Content></Content>
               <Description>Max</Description>
             </i2>
             <i3>
               <Content>Capture</Content>
               <Description>CMD</Description>
             </i3>
             <i4>
               <Content>Get_THD</Content>
               <Description>SubCmd</Description>
             </i4>
             <i5>
               <Content>1</Content>
               <Description>DeviceIndex</Description>
             </i5>
             <i6>
               <Content>2</Content>
               <Description>nSkip</Description>
             </i6>
             <i7>
               <Content>1000</Content>
               <Description>TargetFreqency</Description>
             </i7>
             <i8>
               <Content>3</Content>
               <Description>WindowType</Description>
             </i8>
             <i9>
               <Content>2</Content>
               <Description>nHarmonics</Description>
             </i9>
           </Parameter> 
         </Item> 
         <Item> 
           <Text> </Text> 
           <Description> (Capture)Get_DC_RMS_Stddev</Description> 
           <ItemType> 2</ItemType> 
           <Skip> 1</Skip> 
           <ItemSection1> DLL</ItemSection1> 
           <ItemSection2> execute</ItemSection2> 
           <ItemCommand> UTS_Audio.dll</ItemCommand> 
           <FailAction> </FailAction> 
           <FieldName> DC;RMS;STDDev</FieldName> 
           <FieldNumber> 47;48;49</FieldNumber> 
           <ErrorCode> </ErrorCode> 
           <RetryTimes> 0</RetryTimes> 
           <RetryDelay> 0</RetryDelay> 
           <Process> </Process> 
           <FieldType> </FieldType> 
           <Parameter> 
             <i1>
               <Content></Content>
               <Description>Min</Description>
             </i1>
             <i2>
               <Content></Content>
               <Description>Max</Description>
             </i2>
             <i3>
               <Content>Capture</Content>
               <Description>CMD</Description>
             </i3>
             <i4>
               <Content>Get_DC_RMS_Stddev</Content>
               <Description>SubCmd</Description>
             </i4>
             <i5>
               <Content>1</Content>
               <Description>DeviceIndex</Description>
             </i5>
             <i6>
               <Content>0</Content>
               <Description>nSkip</Description>
             </i6>
           </Parameter> 
         </Item> 
         <Item> 
           <Text> </Text> 
           <Description> (Capture)Get_Estimate_ACDC</Description> 
           <ItemType> 2</ItemType> 
           <Skip> 1</Skip> 
           <ItemSection1> DLL</ItemSection1> 
           <ItemSection2> execute</ItemSection2> 
           <ItemCommand> UTS_Audio.dll</ItemCommand> 
           <FailAction> </FailAction> 
           <FieldName> EST_AC_LVL;EST_DC;EST_STD;dbFS</FieldName> 
           <FieldNumber> 50;51;52;53</FieldNumber> 
           <ErrorCode> </ErrorCode> 
           <RetryTimes> 0</RetryTimes> 
           <RetryDelay> 0</RetryDelay> 
           <Process> </Process> 
           <FieldType> </FieldType> 
           <Parameter> 
             <i1>
               <Content></Content>
               <Description>Min</Description>
             </i1>
             <i2>
               <Content></Content>
               <Description>Max</Description>
             </i2>
             <i3>
               <Content>Capture</Content>
               <Description>CMD</Description>
             </i3>
             <i4>
               <Content>Get_Estimate_ACDC</Content>
               <Description>SubCmd</Description>
             </i4>
             <i5>
               <Content>1</Content>
               <Description>DeviceIndex</Description>
             </i5>
             <i6>
               <Content>0</Content>
               <Description>nSkip</Description>
             </i6>
           </Parameter> 
         </Item> 
         <Item> 
           <Text> </Text> 
           <Description> (Capture)Get_Estimate_ACDC</Description> 
           <ItemType> 2</ItemType> 
           <Skip> 1</Skip> 
           <ItemSection1> DLL</ItemSection1> 
           <ItemSection2> execute</ItemSection2> 
           <ItemCommand> UTS_Audio.dll</ItemCommand> 
           <FailAction> </FailAction> 
           <FieldName> EST_AC_LVL;EST_DC;EST_STD;dbFS</FieldName> 
           <FieldNumber> 50;51;52;53</FieldNumber> 
           <ErrorCode> </ErrorCode> 
           <RetryTimes> 0</RetryTimes> 
           <RetryDelay> 0</RetryDelay> 
           <Process> </Process> 
           <FieldType> </FieldType> 
           <Parameter> 
             <i1>
               <Content></Content>
               <Description>Min</Description>
             </i1>
             <i2>
               <Content></Content>
               <Description>Max</Description>
             </i2>
             <i3>
               <Content>Capture</Content>
               <Description>CMD</Description>
             </i3>
             <i4>
               <Content>Get_Estimate_ACDC</Content>
               <Description>SubCmd</Description>
             </i4>
             <i5>
               <Content>1</Content>
               <Description>DeviceIndex</Description>
             </i5>
             <i6>
               <Content>0</Content>
               <Description>nSkip</Description>
             </i6>
           </Parameter> 
         </Item> 
         <Item> 
           <Text> </Text> 
           <Description> (Capture)SaveAsWaveFile</Description> 
           <ItemType> 2</ItemType> 
           <Skip> 2</Skip> 
           <ItemSection1> DLL</ItemSection1> 
           <ItemSection2> execute</ItemSection2> 
           <ItemCommand> UTS_Audio.dll</ItemCommand> 
           <FailAction> </FailAction> 
           <FieldName> </FieldName> 
           <FieldNumber> </FieldNumber> 
           <ErrorCode> </ErrorCode> 
           <RetryTimes> 0</RetryTimes> 
           <RetryDelay> 0</RetryDelay> 
           <Process> </Process> 
           <FieldType> </FieldType> 
           <Parameter> 
             <i1>
               <Content></Content>
               <Description>Min</Description>
             </i1>
             <i2>
               <Content></Content>
               <Description>Max</Description>
             </i2>
             <i3>
               <Content>Capture</Content>
               <Description>CMD</Description>
             </i3>
             <i4>
               <Content>SaveAsWaveFile</Content>
               <Description>SubCmd</Description>
             </i4>
             <i5>
               <Content>1</Content>
               <Description>DeviceIndex</Description>
             </i5>
             <i6>
               <Content>c:\csv_log\b1.wav</Content>
               <Description>FileName</Description>
             </i6>
           </Parameter> 
         </Item> 
         <Item> 
           <Text> </Text> 
           <Description> (Capture)SaveAsWaveFile pass</Description> 
           <ItemType> 2</ItemType> 
           <Skip> 2</Skip> 
           <ItemSection1> DLL</ItemSection1> 
           <ItemSection2> execute</ItemSection2> 
           <ItemCommand> UTS_Audio.dll</ItemCommand> 
           <FailAction> </FailAction> 
           <FieldName> </FieldName> 
           <FieldNumber> </FieldNumber> 
           <ErrorCode> </ErrorCode> 
           <RetryTimes> 0</RetryTimes> 
           <RetryDelay> 0</RetryDelay> 
           <Process> </Process> 
           <FieldType> </FieldType> 
           <Parameter> 
             <i1>
               <Content></Content>
               <Description>Min</Description>
             </i1>
             <i2>
               <Content></Content>
               <Description>Max</Description>
             </i2>
             <i3>
               <Content>Capture</Content>
               <Description>CMD</Description>
             </i3>
             <i4>
               <Content>SaveAsWaveFile</Content>
               <Description>SubCmd</Description>
             </i4>
             <i5>
               <Content>1</Content>
               <Description>DeviceIndex</Description>
             </i5>
             <i6>
               <Content>["c:\csv_log\p"+'&Var:i'+".wav"]</Content>
               <Description>FileName</Description>
             </i6>
           </Parameter> 
         </Item> 
         <Item> 
           <Text> </Text> 
           <Description> (Capture)LoadWaveFile</Description> 
           <ItemType> 2</ItemType> 
           <Skip> 1</Skip> 
           <ItemSection1> DLL</ItemSection1> 
           <ItemSection2> execute</ItemSection2> 
           <ItemCommand> UTS_Audio.dll</ItemCommand> 
           <FailAction> </FailAction> 
           <FieldName> </FieldName> 
           <FieldNumber> </FieldNumber> 
           <ErrorCode> </ErrorCode> 
           <RetryTimes> 0</RetryTimes> 
           <RetryDelay> 0</RetryDelay> 
           <Process> </Process> 
           <FieldType> </FieldType> 
           <Parameter> 
             <i1>
               <Content></Content>
               <Description>Min</Description>
             </i1>
             <i2>
               <Content></Content>
               <Description>Max</Description>
             </i2>
             <i3>
               <Content>Capture</Content>
               <Description>CMD</Description>
             </i3>
             <i4>
               <Content>LoadWaveFile</Content>
               <Description>SubCmd</Description>
             </i4>
             <i5>
               <Content>1</Content>
               <Description>DeviceIndex</Description>
             </i5>
             <i6>
               <Content>D:\01Poject\UTS_Audio\440Hz_44100Hz_16bit_05sec.wav</Content>
               <Description>FileName</Description>
             </i6>
           </Parameter> 
         </Item> 
         <Item> 
           <Text> </Text> 
           <Description> (Play)STOP</Description> 
           <ItemType> 2</ItemType> 
           <Skip> 1</Skip> 
           <ItemSection1> DLL</ItemSection1> 
           <ItemSection2> execute</ItemSection2> 
           <ItemCommand> UTS_Audio.dll</ItemCommand> 
           <FailAction> </FailAction> 
           <FieldName> </FieldName> 
           <FieldNumber> </FieldNumber> 
           <ErrorCode> </ErrorCode> 
           <RetryTimes> 0</RetryTimes> 
           <RetryDelay> 0</RetryDelay> 
           <Process> </Process> 
           <FieldType> </FieldType> 
           <Parameter> 
             <i1>
               <Content></Content>
               <Description>Min</Description>
             </i1>
             <i2>
               <Content></Content>
               <Description>Max</Description>
             </i2>
             <i3>
               <Content>Play</Content>
               <Description>CMD</Description>
             </i3>
             <i4>
               <Content>Stop</Content>
               <Description>SubCmd</Description>
             </i4>
             <i5>
               <Content>1</Content>
               <Description>DeviceIndex</Description>
             </i5>
           </Parameter> 
         </Item> 
      </SubItem> 
    </Item> 

檔案:UTS audio lenovo720.zip

調整訣竅:

  • 發出的音量 (觀察 RMS value )要適當. 在合適的音壓之下. 才會有好的THD 表現
    • 在沒有回音 的無響箱或無響室, 調整音量, 觀察THD 變化. 得到穩定且低的 THD 值. 就是 整個系統 ( 輸入源. 輸出檔) 的良好設定.
    • 音量過大聲會失真(有二次諧波變大), 過小背景雜音比例大, THD 也會不好) 以 Lenovo 筆電 用耳麥 為例 音壓 (RMS value 應該落在 2000mV左右 THD 表現比較好
    • 經過不斷的試驗才能找到 合理的音量 得到好的THD

聲源的 優化:

  • 業界通常用 Hanning 作為音源的pre-process 提供給FFT分析軟件分析. 得到的spectrum 比較一致.
  • Hanning.png

















專有名詞

Frequency Response (頻率響應的測試)

UTS audio freq response
  • 給一段 頻率範圍 (例如: 1000Hz ~ 6000Hz )
  • 設置想要達到的dB值 (例如 -40 dB)
  • 設置喇叭(音源) 與 輸入(mic) 的相對位置.
  • 將輸出reset 到輸出最大音量 (每次都要做(有bug必須要做))
  • 執行 Frequency Response. ap 會開始調適適合的音量 來符合你的期望dB值 (調整不到則會 fail 跳出 )
  • pass 的話 會輸出 每個頻率所需要的音量大小

用於分析 麥克風與 喇叭的頻率響應 敏度 範例圖如右

difference between real time analysis THD or load wave file to analysis

Realtime thd analysis


load file
analysis wave file