怎麼用微控制器轉換心率感測器的訊號?

時間 2021-05-29 23:48:34

1樓:Chang An

我也不知那個感測器的訊號資料什麼樣的,這裡給你個參考,乙個作業。(開始還以為是心電資料,但差距也太大了吧,所以還吐槽了一下老師的資料採集太挫了,做到最後才發現好像是脈搏的,但也不敢確認)

先看看資料是真麼樣的:

按照取樣率復原的實時波形

這個訊號說是心電訊號,細節都沒有,就倆峰,還平滑的像是濾過一遍一樣。

總體思路:

1.繪出資料波形與頻譜。

2.根據幅值與頻譜特徵,選擇合適的濾波器。

3.濾波(並根據濾波效果調整濾波器引數)

4.心率計數(閾值,這個比較主觀)

其實可以簡單點,直接用乙個合適的的閾值來做,但這樣效果實在沒法保證,比如兩個背景光強度不同的地方,背景光的干擾也會相應的變換,你沒法保證乙個環境的閾值在另乙個環境下同樣有效,除非你用大量的資料找到最佳閾值。

下面是乙個資料處理的操作,姑且看看。Fs=

1000

;%Hz

可以看出其低頻干擾造成的基線漂移,還有工頻干擾

% 陷波濾波器fg=

50;b=

2;fgb=[fg

-b,fg

+b];wg=2

*fgb/Fs

;hn=fir1

(1000,wg

,'stop'

);freqz(hn

);xd

=filter(hn

,1,eggRowData

);figure

;subplot

(211

);tplot(xd

,Fs,'消除工頻干擾'

);% 繪圖函式沒有特別意義

subplot

(212

);pfft(xd

,Fs,'Spectrum'

);% 繪圖函式沒有特別意義

濾波器特性

濾波後波形與幅頻特性

% 高通濾波器

fg = 2;

wg = 2*fg/Fs;

hn = fir1(1000, wg, 'high');

freqz(hn);

xd = filter(hn, 1, xd);

figure;

subplot(211);

tplot(xd, Fs, '消除基線漂移');% 繪圖函式沒有特別意義

subplot(212);

pfft(xd, Fs, 'Spectrum'繪圖函式沒有特別意義

高通濾波特性

濾波後波形與幅頻特性

% 低通濾波器

fg = 20;

wg = 2*fg/Fs;

hn = fir1(1000, wg, 'low');

freqz(hn);

xd = filter(hn, 1, xd);

figure;

subplot(211);

tplot(xd, Fs, '消除肌電干擾');% 繪圖函式沒有特別意義

subplot(212);

pfft(xd, Fs, 'Spectrum'繪圖函式沒有特別意義

低通濾波特性

濾波結果

% 峰值檢測

[pks,locs,w,p] = findpeaks(xd, 1000);

figure;

stem(locs, pks.*w)

title('波峰檢測');

threshold = 0.04;

line([0 60], [threshold threshold], 'LineWidth', 2, 'Color', 'red');

sum(pks.*w > threshold) % 因為大峰小峰的差距比較小,所以用面積比較拉大差距

實際計數的心率即紅線閾值以上的波峰

心率之所以使用峰值檢測是因為這樣不易遺漏,但是也有他的問題。

2樓:御阪初琴

看你的心率感測器是哪種了。

模擬式的就是用ADC採數值,採完比較數值突變量,獲得高低電平。微控制器定時器產生乙個10ms到100ms的迴圈定時,在每個定時週期內讀取高低電平變化,用時間和個數比較得到心率值。

數字式感測器的也可以用這種方法,不過如果用的是諸如STM32之類的,可以直接用定時器的採集模式得到頻率值,用頻率值轉換成心率值,這個方法更準確。

思路就是這個思路,具體實現就看你自己了。

微控制器與物聯網的聯絡,未來微控制器將有怎麼樣的發展趨勢?

IOT說得籠統一點,就是資訊化整合。你說的微控制器是不夠準確的,應該稱作結點,因為除了主控晶元外,必須要有很多其他的外圍器件。IOT最最主要的特點在於 big 結點數和資訊量等都會無比龐大。趨勢 1低功耗是永恆的追求。2微型化大家都知道。3結點將往兩方面發展 複雜的和精簡的。越是智慧型化就越複雜。4...

怎麼學微控制器比較快

我來答一下這個問題,大學玩過51,飛思卡爾K60 Cortex M4 esp8266,畢業設計用的STM32。參加工作後,用過東芝,NXP,賽普拉斯,松翰,最近在用TI。基本上是公司引進了什麼晶元用什麼,專案需要什麼用什麼,哪個成本低用哪個。我來說一下我在工作後是怎麼快速上手一款微控制器吧。首先,微...

微控制器多位元組除法怎麼實現?

三位元組除法,若要擴充套件長度,修改迴圈位移減法次數即可DV31 CLR C MOV A,R3 SUBB A,R7 JC DV30 SETB OV RETDV30 MOV R2,10H 求R3R4R5 R7 R4R5DM23 CLR C MOV A,R5 RLC A MOV R5,A MOV A,R...