我正在使用Relatek音頻編解碼器ALC5621來處理某些自定義音頻處理應用。我使用i2c bit binging來控制編解碼器和soc(cc1110)之間的通信。在找出均衡器部分時,我遇到了一個問題 ,它的內容如下--->一個接受二進制輸入的16位寄存器,其格式爲「>」3.13格式的補碼(範圍從 - 4〜3.99)「寄存器大小爲16位(15,0),如何將數據送入此寄存器,例如:-4,-1等?3.13格式的補碼(範圍從-4〜3.99)是什麼意思?
1
A
回答
1
3.13格式用二進制定點算術表示法稱爲「Q」數字格式。
參考:Fixed-point arithmetic
3.13描述了一個數字,3個整數位和13個小數位存儲爲16位2的補碼整數(引用維基百科)。
通過將整數值除以2^13來完成將Q3.13中給出的值固定點值轉換爲「物理」浮點值。
16位整數可以表示爲短 C變量:短q;
「物理」(即電壓)的值可被表示爲雙 C變量:雙V;
short q; //Q3.13 integer format.
double v; //"physical" value (assuming voltage).
把q到v:
v = (double)q/(double)(1<<13);
轉換v到問:
q = (short)floor(v*(double)(1<<13) + 0.5); //Add 0.5 for rounding - round(x) = floor(x+0.5)
例子:
q = -32768; //Minimum short range
//v = -32768/8192 = -4.0
q = 32767; //Maximum short range
//v = 32767/8192 = 3.9998779
v = -4.0;
//q = floor(-4.0*8192.0 + 0.5) = -32768
v = -1.0;
//q = floor(-1.0*8192.0 + 0.5) = -8192
+0
真的有幫助。感謝@ Rotem,你真的很棒 –
相關問題
- 1. 「超出範圍」是什麼意思?
- 2. 超出範圍是什麼意思?
- 3. 什麼是 「範圍(」 F:F 「)」 在Excel宏是什麼意思?
- 4. HTTP規範中的「子範圍」是什麼意思?
- 5. 在Maven中,「範圍從測試更新」是什麼意思?
- 6. 在Xcode中調試什麼「超出範圍」是什麼意思?
- 7. 是什麼意思:是什麼意思?
- 8. 「固定格式」是什麼意思?
- 9. 0x0F是什麼意思?這個代碼是什麼意思?
- 10. 是什麼代碼是什麼意思?
- 11. 代碼是什麼意思?
- 12. android中的Activity範圍的偵聽器是什麼意思?
- 13. 這是什麼意思,工件範圍不是傳遞?
- 14. Joel Test的規範是什麼意思?
- 15. 究竟是什麼意思JavaScript中的詞法範圍概念?
- 16. 2 ..- 1的範圍是什麼意思? (Ruby koans about_arrays.rb)
- 17. Python:「範圍(酒吧)我的foo()」是什麼意思?
- 18. 在JavaScript中,0 === 4是什麼意思?
- 19. kafka broker狀態4是什麼意思
- 20. 這是什麼意思? int foo = foo + 4;
- 21. '=?'是什麼意思?在angularJS指令中隔離範圍聲明?
- 22. 「壞IL範圍」例外是什麼意思?
- 23. 「範圍參數對集合函數無效」是什麼意思?
- 24. 錯誤haskell:不在範圍內。這是什麼意思?
- 25. 是什麼:: SomeMethod()意思 - 範圍解析運算符
- 26. 「壽命範圍受到尊重」是什麼意思?
- 27. EXC BAD ACCESS是什麼意思?參考我的代碼是什麼意思?
- 28. newlocale(3)的掩碼位是什麼意思,具體是什麼意思?
- 29. SURF的min_dist和max_dist是什麼意思,FlannMatcher是什麼意思
- 30. 「?」是什麼意思?調用jsp的標記是什麼意思?
我不明白你的問題。你能用一個更容易理解的例子更精確嗎? – ckruczek
我需要將-4,+ 3.99,-2,+ 1.99這樣的值應用於編解碼器中的16位寄存器,該寄存器接受3.13格式的2的補碼值,我該如何申請?我現在清楚了嗎? –