基于快速傅里叶变换的人体活动识别改进算法研究
扫描二维码
随时随地手机看文章
引言
傅里叶变换(Fourier Transform)在工程中应用很广,但是,对于非周期性的信号,人们把时域变成频域时频域分量有无 限多个,而计算机只能处理有限信号,所以,对于此类信号, 人们经常会用到离散傅里叶变换(DFT)。
1快速傅里叶变换
将连续时间的傅里叶变换在时域内离散化,就是离散傅 里叶变换。离散傅里叶变换无论是在数字信号处理,或是计 算机控制等方面都有重要的应用,它无疑是当代社会生产生 活中用到最重要的算法之一。但是,离散傅里叶变换在计算方 面比较麻烦,时间复杂度较大。
所以,后了人们提出了一种新型的算法,就是快速傅里叶 变换(FFT)。
FFT是离散傅立叶变换的快速算法,可以将一个信号变 换到频域。有些信号在时域上是很难看出什么特征的,但是 如果变换到频域之后,就很容易看出特征了。这就是很多信号 分析采用FFT变换的原因。另外,FFT可以将一个信号的频 谱提取出来,这在频谱分析方面也是经常用的。本文主要讨 论的是FFT算法在人体活动识别中的应用。
2 Real FFT
本文不着重介绍FFT算法的原理,而是从实用的角度进 行分析。通过FFT算法,可以将时域信号变换成频域信号。处理时域信号可以用Matlab工具分析,也可以用C/C++、Java 语言等。下面是时域频域转换的Matlab代码:
fs=1000; %设定采样频率
xlabel('频率(Hz)');
ylabel('幅值');
title('数据频谱分析by陈志豪');
grid; %设置网格
fy1=fft(y1); % x 轴曲线
f1=x1*fs/length(y1); %进行对应的频率转换
fy2=fft(y2); % y 轴曲线
f2=x2*fs/length(y2); %进行对应的频率转换
fy3=fft(y3); % z 轴曲线
f3=x3*fs/length(y3); %进行对应的频率转换
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编 程画出图形,使读者对时域到频域的转换有一个感性而真实 的认识。同时,通过分析可以得出人体活动的三种状态在频域 上的区别,从而分辨出传感器携带者当前所属的状态。
图1所示是三幅时域特性图和与之对应的频率特性图。通过图像会发现,在频域上面很难通过计算机分辨出三幅图 的异同,但是,当通过FFT算法将其转换成频域的时候,我 们就会很容易看出三幅图的各自不同特性。根据这些特性,就 可以通过编程的方法进行模式识别。
图1 三幅时域特性和与之对应的频率特性图
显然,人坐着的时候基波分量比较活跃,即低频活跃, 而高频谐波基本上没有:而人在行走的时候,除了有一定的基 波分量在0~10 Hz中比较活跃,在这段中,分布着不同的谐波; 人在跑步的时候,还是会存在一定的基波分量,但高频分量 相对于原来走路时候的分量更高了,即往右移了。从中可以得 出一个结论:人在活动的时候,基波分量是存在的,坐着的 时候显然是最高的,人在行走中随着步速的加快,三轴加速 度传感器的变化速度越明显,谐波分量在频谱图中往右移。
4相关性分析
对于一个人来说,坐着的话,软件往往很容易识别,但 什么时候才算是走路,什么时候才算是跑步,还是要由个人来 决定的。这就面临一个临界段的处理的问题,因此,只需要 得出临界段的数据,然后进行比较就可以了。下面给一个可行 性分析方案。
人在行走的时候,行和跑的概念在有时候是模糊的,这 是对于临界点出现的情况说的。我们必须通过训练获取临界 数据,即由行转为跑或者由跑转为行的临界点,因为个体的差 异性和临界点的模糊性,每个人都有数据自己的临界段,而不 是临界点。
这样,就可以通过用数组或通过哈希映射的方法保存幅 度相对大的数据,然后通过最小二乘法判断与基波和临界段 的相关性。其方法如下:
⑴当得出与基波相关度高的时候,可以得出人在坐着。
当与临界段相关性较高的时候,可计算数据的平均频 率分布,比较该平均频率值和前一次采样时间的平均频率值。如果增大,就是人有跑步的趋势;如果减小,就是人有行走 的趋势。
当相似度较低的时候,计算数据的平均频率,并与临 界段的平均频率进行比较。如果数据的平均频率比临界段的小,则人处于行走状态;反之,人处于跑步状态。
5结语
FFT算法和相关性分析是对人体活动模式探讨的一次创 新性组合,通过频域中幅度频谱的分析实现信号的分类,然 后通过最小二乘法相关性分析的方法,就可以实现对信号的 智能识别。
20211020_616ef5115ef1d__基于快速傅里叶变换的人体活动识别改进算法研究