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