基于快速傅里葉變換的人體活動(dòng)識(shí)別改進(jìn)算法研究
掃描二維碼
隨時(shí)隨地手機(jī)看文章
引言
傅里葉變換(Fourier Transform)在工程中應(yīng)用很廣,但是,對(duì)于非周期性的信號(hào),人們把時(shí)域變成頻域時(shí)頻域分量有無(wú) 限多個(gè),而計(jì)算機(jī)只能處理有限信號(hào),所以,對(duì)于此類(lèi)信號(hào), 人們經(jīng)常會(huì)用到離散傅里葉變換(DFT)。
1快速傅里葉變換
將連續(xù)時(shí)間的傅里葉變換在時(shí)域內(nèi)離散化,就是離散傅 里葉變換。離散傅里葉變換無(wú)論是在數(shù)字信號(hào)處理,或是計(jì) 算機(jī)控制等方面都有重要的應(yīng)用,它無(wú)疑是當(dāng)代社會(huì)生產(chǎn)生 活中用到最重要的算法之一。但是,離散傅里葉變換在計(jì)算方 面比較麻煩,時(shí)間復(fù)雜度較大。
所以,后了人們提出了一種新型的算法,就是快速傅里葉 變換(FFT)。
FFT是離散傅立葉變換的快速算法,可以將一個(gè)信號(hào)變 換到頻域。有些信號(hào)在時(shí)域上是很難看出什么特征的,但是 如果變換到頻域之后,就很容易看出特征了。這就是很多信號(hào) 分析采用FFT變換的原因。另外,F(xiàn)FT可以將一個(gè)信號(hào)的頻 譜提取出來(lái),這在頻譜分析方面也是經(jīng)常用的。本文主要討 論的是FFT算法在人體活動(dòng)識(shí)別中的應(yīng)用。
2 Real FFT
本文不著重介紹FFT算法的原理,而是從實(shí)用的角度進(jìn) 行分析。通過(guò)FFT算法,可以將時(shí)域信號(hào)變換成頻域信號(hào)。處理時(shí)域信號(hào)可以用Matlab工具分析,也可以用C/C++、Java 語(yǔ)言等。下面是時(shí)域頻域轉(zhuǎn)換的Matlab代碼:
fs=1000; %設(shè)定采樣頻率
xlabel('頻率(Hz)');
ylabel('幅值');
title('數(shù)據(jù)頻譜分析by陳志豪');
grid; %設(shè)置網(wǎng)格
fy1=fft(y1); % x 軸曲線
f1=x1*fs/length(y1); %進(jìn)行對(duì)應(yīng)的頻率轉(zhuǎn)換
fy2=fft(y2); % y 軸曲線
f2=x2*fs/length(y2); %進(jìn)行對(duì)應(yīng)的頻率轉(zhuǎn)換
fy3=fft(y3); % z 軸曲線
f3=x3*fs/length(y3); %進(jìn)行對(duì)應(yīng)的頻率轉(zhuǎn)換
hold on;
p=plot(f1,abs(fy1),'g');
p=plot(f2,abs(fy2),'b');
p=plot(f3,abs(fy3),T);
legend('x 軸','y 軸','z 軸');
3通過(guò)Matlab分析獲取人體活動(dòng)姿勢(shì)
在此,本文通過(guò)Matlab分析獲取到的三軸加速度傳感器 的值來(lái)判斷人們的姿勢(shì)(坐著,走著,跑著)。通過(guò)Matlab編 程畫(huà)出圖形,使讀者對(duì)時(shí)域到頻域的轉(zhuǎn)換有一個(gè)感性而真實(shí) 的認(rèn)識(shí)。同時(shí),通過(guò)分析可以得出人體活動(dòng)的三種狀態(tài)在頻域 上的區(qū)別,從而分辨出傳感器攜帶者當(dāng)前所屬的狀態(tài)。
圖1所示是三幅時(shí)域特性圖和與之對(duì)應(yīng)的頻率特性圖。通過(guò)圖像會(huì)發(fā)現(xiàn),在頻域上面很難通過(guò)計(jì)算機(jī)分辨出三幅圖 的異同,但是,當(dāng)通過(guò)FFT算法將其轉(zhuǎn)換成頻域的時(shí)候,我 們就會(huì)很容易看出三幅圖的各自不同特性。根據(jù)這些特性,就 可以通過(guò)編程的方法進(jìn)行模式識(shí)別。
圖1 三幅時(shí)域特性和與之對(duì)應(yīng)的頻率特性圖
顯然,人坐著的時(shí)候基波分量比較活躍,即低頻活躍, 而高頻諧波基本上沒(méi)有:而人在行走的時(shí)候,除了有一定的基 波分量在0~10 Hz中比較活躍,在這段中,分布著不同的諧波; 人在跑步的時(shí)候,還是會(huì)存在一定的基波分量,但高頻分量 相對(duì)于原來(lái)走路時(shí)候的分量更高了,即往右移了。從中可以得 出一個(gè)結(jié)論:人在活動(dòng)的時(shí)候,基波分量是存在的,坐著的 時(shí)候顯然是最高的,人在行走中隨著步速的加快,三軸加速 度傳感器的變化速度越明顯,諧波分量在頻譜圖中往右移。
4相關(guān)性分析
對(duì)于一個(gè)人來(lái)說(shuō),坐著的話,軟件往往很容易識(shí)別,但 什么時(shí)候才算是走路,什么時(shí)候才算是跑步,還是要由個(gè)人來(lái) 決定的。這就面臨一個(gè)臨界段的處理的問(wèn)題,因此,只需要 得出臨界段的數(shù)據(jù),然后進(jìn)行比較就可以了。下面給一個(gè)可行 性分析方案。
人在行走的時(shí)候,行和跑的概念在有時(shí)候是模糊的,這 是對(duì)于臨界點(diǎn)出現(xiàn)的情況說(shuō)的。我們必須通過(guò)訓(xùn)練獲取臨界 數(shù)據(jù),即由行轉(zhuǎn)為跑或者由跑轉(zhuǎn)為行的臨界點(diǎn),因?yàn)閭€(gè)體的差 異性和臨界點(diǎn)的模糊性,每個(gè)人都有數(shù)據(jù)自己的臨界段,而不 是臨界點(diǎn)。
這樣,就可以通過(guò)用數(shù)組或通過(guò)哈希映射的方法保存幅 度相對(duì)大的數(shù)據(jù),然后通過(guò)最小二乘法判斷與基波和臨界段 的相關(guān)性。其方法如下:
⑴當(dāng)?shù)贸雠c基波相關(guān)度高的時(shí)候,可以得出人在坐著。
當(dāng)與臨界段相關(guān)性較高的時(shí)候,可計(jì)算數(shù)據(jù)的平均頻 率分布,比較該平均頻率值和前一次采樣時(shí)間的平均頻率值。如果增大,就是人有跑步的趨勢(shì);如果減小,就是人有行走 的趨勢(shì)。
當(dāng)相似度較低的時(shí)候,計(jì)算數(shù)據(jù)的平均頻率,并與臨 界段的平均頻率進(jìn)行比較。如果數(shù)據(jù)的平均頻率比臨界段的小,則人處于行走狀態(tài);反之,人處于跑步狀態(tài)。
5結(jié)語(yǔ)
FFT算法和相關(guān)性分析是對(duì)人體活動(dòng)模式探討的一次創(chuàng) 新性組合,通過(guò)頻域中幅度頻譜的分析實(shí)現(xiàn)信號(hào)的分類(lèi),然 后通過(guò)最小二乘法相關(guān)性分析的方法,就可以實(shí)現(xiàn)對(duì)信號(hào)的 智能識(shí)別。
20211020_616ef5115ef1d__基于快速傅里葉變換的人體活動(dòng)識(shí)別改進(jìn)算法研究