2017-04-04 44 views
-2

我目前正在研究一個基於音頻的Arduino項目。接收到的輸入(通過ADC)是double類型的,我必須對數據執行一些數學運算。然後我需要輸出音頻。但是,問題是PWM輸出寄存器(基於AVR)接受整數。如何在不丟失信息的情況下將float轉換爲int?

因此,有沒有什麼辦法可以將這個float轉換爲int而不會丟失數據?

+1

ATmega ADC輸出一個10位整數。你輸了什麼數據?請舉一個轉換的例子。 – umka

回答

0

泛型float到int的轉換幾乎總是會丟失信息,除非輸入是量化的,並且輸入的最大動態範圍和所有後續算術運算的結果都被限制爲2^n,對於某些小於你的整數。

請注意,量化噪聲的噪聲整形(濾波抖動)可能有助於減少部分信息丟失,具體取決於信號輸入。

相關問題