「UTS Audio.dll」修訂間的差異
跳至導覽
跳至搜尋
Vincentcheng2116(討論 | 貢獻) |
Vincentcheng2116(討論 | 貢獻) |
||
(未顯示同一使用者於中間所作的 15 次修訂) | |||
行 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_dlg.exe | |
− | |||
+ | '''Scrip example:''' | ||
[[檔案:UTS audio load.png|縮圖]] | [[檔案:UTS audio load.png|縮圖]] | ||
{| class="mw-collapsible mw-collapsed wikitable" | {| class="mw-collapsible mw-collapsed wikitable" | ||
行 1,286: | 行 1,286: | ||
* THD ( Total harmonic distortion ) [https://zh.wikipedia.org/zh-tw/%E6%80%BB%E8%B0%90%E6%B3%A2%E5%A4%B1%E7%9C%9F 总谐波失真- 维基百科,自由的百科全书] | * THD ( Total harmonic distortion ) [https://zh.wikipedia.org/zh-tw/%E6%80%BB%E8%B0%90%E6%B3%A2%E5%A4%B1%E7%9C%9F 总谐波失真- 维基百科,自由的百科全书] | ||
* 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 | ||
+ | [[檔案:Realtime thd.png|縮圖|無|Realtime thd analysis]]<br> | ||
+ | |||
+ | [[檔案:Load file thd0.png|縮圖|無|load 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:
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> |
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> |
調整訣竅:
- 發出的音量 (觀察 RMS value )要適當. 在合適的音壓之下. 才會有好的THD 表現
- 在沒有回音 的無響箱或無響室, 調整音量, 觀察THD 變化. 得到穩定且低的 THD 值. 就是 整個系統 ( 輸入源. 輸出檔) 的良好設定.
- 音量過大聲會失真(有二次諧波變大), 過小背景雜音比例大, THD 也會不好) 以 Lenovo 筆電 用耳麥 為例 音壓 (RMS value 應該落在 2000mV左右 THD 表現比較好
- 經過不斷的試驗才能找到 合理的音量 得到好的THD
聲源的 優化:
- 業界通常用 Hanning 作為音源的pre-process 提供給FFT分析軟件分析. 得到的spectrum 比較一致.
專有名詞
- THD ( Total harmonic distortion ) 总谐波失真- 维基百科,自由的百科全书
- Peak Power / Peak Frequency 在 Frequency domain 裡面最高位置的 頻率( x 軸) & level (Y 軸)
Frequency 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