4.4 Hệ thống phân tích và xử lý tín hiệu điện trở kháng của cơ thể
4.4.3 Tính tốn giá trị lượng mỡ trong cơ thể
Hệ thống thu nhận tín hiệu truyền về từ hai điện cực thơng qua bộ ADC được tích hợp trong vi điều khiển. Giá trị được ghi lên thanh ghi dữ liệu và được sử dụng trực tiếp
69
để tính tốn lượng mỡ, thơng qua cơng thức được tạo ra từ nhóm nghiên cứu của đại học Cornel – New York, 2014.
Một phần quan trọng của khả năng xác định chất béo cơ thể liên quan đến việc xác định thông tin trở kháng được thu thập từ mạch liên quan đến chất béo cơ thể của đối tượng như thế nào. Phương trình này được Samir Borle và Peter Li của đại học Cornell – Cornell University (Mỹ) tạo ra. Để tạo ra các phương trình về lượng mỡ trong cơ thể, dữ liệu về lượng mỡ, điện thế, tuổi và cân nặng của tình nguyện viên đã được sử dụng. Dữ liệu này được chuyển tới hàm MATLAB mvregress, hàm này xuất ra một vectơ hệ số có trọng số của các biến độc lập (tuổi, cân nặng và điện áp) để khớp chặt chẽ với biến phụ thuộc được thu thập (mỡ cơ thể). Tập dữ liệu cho các đối tượng thử nghiệm nam và nữ được chạy riêng biệt, nhằm tạo ra các phương trình riêng biệt cho từng giới tính và để đơn giản hơn, giá trị đầu vào ADC được sử dụng thay vì điện áp thơ. Ưu điểm của phương pháp này là tập lệnh MATLAB sử dụng hàm hồi quy đa biến được tích hợp sẵn để liên hệ một số biến độc lập với một biến phụ thuộc và tập lệnh có thể được chạy lại để có được phương trình hồi quy mới khi tập dữ liệu được mở rộng. Các phương trình hồi quy thu được là:
Males: body_fat = 0.0923 * weight + 0.1605 * age – 0.0263 * voltage Females: body_fat = 0.1871 * weight + 0.5800 * age – 0.0920 * voltage Weight trong trường hợp được tính theo giá trị là pound.
70
Các
bước Nội dung Ghi chú
1 Khởi tạo giá trị age, sex, weight,
body_fat, res
age: tuổi; sex: giới tính; weight: cân nặng; body_fat: lượng mỡ cơ thể; ain: tín hiệu điện trở kháng thu được từ ADC 2 If (sex = 1) { body_fat = 0.0923 * weight * 2.2 + 0.1605 * age – 0.0263 * res; } else if (sex = 0) { body_fat = 0.1871 * weight * 2.2 + 0.5800 * age – 0.0920 * res ; }
Tính giá trị body_fat (lượng mỡ cơ thể): nếu giới tính nam thì nhập giá trị 1, giới tính nữ thì nhập giá trị 0. Tùy theo từng giới tính mà có cơng thức tính lượng mỡ cơ thể khác nhau. 3 If (body_fat < 0) { body_fat = 0.0; } Qua bước 4
Nếu giá trị body_fat vừa được tính bé hơn 0, gán cho body_fat = 0
4 Tính ra số phần trăm rồi hiện thị kết
quả lên LCD và kết thực chương trình.
71
Giải thuật được viết cho việc tính tốn xác định lượng mỡ cơ thể: adc_value = read_adc(0); // đọc giá trị ADC từ chân PA0
res = adc_value*1.0; // đổi giá trị ADC sang số float
printf("adc = 0x%x, res = %.3f\r\n", adc_value, res); // in giá trị ADC thông qua giao tiếp UART trong mô phỏng
if(sex == 1) {
body_fat = 0.0923 * weight * 2.2 + 0.1605 * age - 0.0263 * res; }
else if(sex == 0) {
body_fat = 0.1871 * weight * 2.2 + 0.5800 * age - 0.0920 * res; }
if(body_fat < 0) {
body_fat = 0.0;