Những gì bạn đang thiếu là ý nghĩa của "decimation."
Nói một cách chính xác, "số thập phân" giảm xuống còn 1/10. Đó là, từ 10 giảm xuống 1.
"Decimation" như được sử dụng trong lấy mẫu làm mất đi ý nghĩa nghiêm ngặt. Thay vì 1/10, nó có nghĩa là "giảm số lượng."
Điều này có nghĩa là, bạn trung bình một số lượng mẫu và giảm số lượng mẫu bằng cùng một số.
Ví dụ: nếu bạn lấy mẫu ở 1000Hz và trung bình 4 mẫu, bạn chỉ giữ mức trung bình. Cuối cùng, bạn chỉ có 250 mẫu mỗi giây thay vì 1000. Bạn đã mất độ phân giải thời gian, nhưng đã đạt được một chút độ phân giải điện áp.
Với mỗi yếu tố là 4, bạn đạt được 1 bit. Trung bình và giảm 4, và chuyển từ độ phân giải 10 bit sang độ phân giải 11 bit.
Một yếu tố khác của 4 (tổng cộng 4 * 4 = 16) giúp bạn từ 10 bit đến 12 bit. Một yếu tố khác của 4 giúp bạn đạt được 13 bit độ phân giải.
Nhưng, lưu ý rằng bạn hiện đang vượt quá hệ số 64. Tỷ lệ lấy mẫu hiệu quả của bạn giảm theo cùng một yếu tố. Sử dụng ví dụ về tốc độ lấy mẫu 1000Hz, bạn giảm xuống còn khoảng 15 mẫu hiệu quả mỗi giây.
Đây là số thập phân và có bao nhiêu ADC cao có độ phân giải cao. Họ lấy mẫu ở tốc độ cao, trung bình (hoặc sử dụng bộ lọc thông thấp kỹ thuật số) và decimate.
Cuối cùng, bạn có một ADC đơn (một bộ so sánh đơn giản) vượt quá vài lần millon để tạo ra độ sâu bit hiệu quả là 16 bit.
Một điều bạn cần lưu ý để làm việc này là bạn cần độ nhiễu trong tín hiệu của mình xấp xỉ bằng giá trị nhỏ nhất mà ADC của bạn có thể đo được. Đối với ADC 10 bit sử dụng điện áp tham chiếu 5V, đó sẽ là nhiễu khoảng 5mV đến cực đại.
Tính trung bình của nhiễu là nơi mà lợi ích bit thực sự đến từ. Hãy tưởng tượng rằng bạn có một tín hiệu (DC) nằm chính xác giữa giá trị của 512 số đếm ADC và 513 số ADC. Không có nhiễu, giá trị đo sẽ luôn giống nhau - tính trung bình sẽ cho bạn cùng giá trị với các mẫu.
Thêm tiếng ồn ở khoảng giá trị nhỏ nhất có thể đo được, và nó trông rất khác. Mặc dù bản thân tín hiệu không thay đổi, các giá trị đo sẽ "lắc lư" xung quanh giá trị thực của tín hiệu. Trung bình bây giờ khác với các mẫu và bạn càng sử dụng nhiều mẫu thì bạn càng gần với giá trị thực của tín hiệu
Tôi đã sử dụng kỹ thuật này với Arduino (sử dụng bộ xử lý Atmel với ADC 10 bit) để có độ phân giải tốt hơn cho một số phép đo tôi đang thực hiện.
Tôi đã nhận được nó lên đến 13 bit, nhưng thấy tôi cần nhiều hơn. Tôi có thể đã đi đến một yếu tố khác là 4, nhưng điều đó sẽ mất quá nhiều thời gian cho mỗi mẫu và chỉ nhận được thêm một chút nữa.
Các thí nghiệm với oversampling cho thấy những gì tôi đang làm có thể hoạt động (tôi có thể nhận ra kết quả ồn ào) mà không phải mất thời gian và tiền bạc để có được một ADC tốt hơn. Với bằng chứng về khái niệm, tôi có thể tiếp tục và có được ADC tốt hơn - và việc chứng minh đó chỉ khiến tôi mất một vài dòng mã và một ít thời gian.
Tôi thấy tôi cần ít nhất 16 bit. Điều đó có nghĩa là trung bình 4096 mẫu.
Đó là khoảng nửa giây bằng cách sử dụng lấy mẫu nhanh nhất có thể với phần mềm Arduino.
Vì tôi cần 14400 phép đo, nên toàn bộ quá trình sẽ mất 2 giờ.
Tôi không kiên nhẫn như vậy, và những điều tôi đang đo sẽ không thay đổi lâu như vậy. Tôi đã phải chuyển sang sử dụng một ADC sử dụng tỷ lệ quá khổ trong nội bộ cao hơn nhiều và điều đó mang lại các mẫu có độ phân giải cao hơn với tốc độ thấp hơn.
Cũng như rất nhiều thứ, decimation là sự thỏa hiệp có thể giúp bạn thực hiện tốt hơn theo một hướng (độ sâu bit) trong khi chi phí cho hiệu suất của bạn theo hướng khác (tốc độ lấy mẫu.)