TI中文支持网
TI专业的中文技术问题搜集分享网站

IWR6843: 在matlab对采集信号处理,提取目标相位信息后,采用如下代码,不能过滤出心跳信号,请指出如何改正错误

Part Number:IWR6843Other Parts Discussed in Thread:IWR1443,

滤波器如下

asda=unwrap(angle(xiangweixinxi)); 
Fs=25; %每帧40ms 帧率25  根据我之前提过的问题,得知采样频率=帧率

n=length(asda);
wp=[0.8*2*pi/Fs,2*2*pi/Fs]; %设置通带数字角频率[0.8hz-2hz]

ws=[0.5*2*pi/Fs,3*2*pi/Fs]; %阻带0.5  3
Rp=1; %通带最大衰减
Rs=20; %阻带最小衰减

[N,Wn]=buttord(wp,ws,Rp,Rs,'s'); %求巴特沃斯滤波器阶数N和截止频率Wn
fprintf('巴特沃斯滤波器 N= %4d\n',N); %显示滤波器阶数
[bb,ab]=butter(N,Wn,'s'); %求巴特沃斯滤波器系数,即求传输函数的分子和分母的系数向量
rrr=filter(bb,ab,asda);
%rrr=filter(bb,ab,unwrap(real(r))); %filter既能进行IIR滤波又能进行FIR滤波
figure;subplot(121);plot(1:n,asda);subplot(122);plot(1:n,rrr)

频率估计算法如下

x=rrr;
fs=25;N=length(x); %采样频率和数据点数
n=0:N-1;t=n/fs; %时间序列

y=fft(x,N); %对信号进行快速Fourier变换
mag=abs(y); %求得Fourier变换后的振幅
f=n*fs/N; %频率序列
subplot(2,2,1),plot(f,mag); %绘出随频率变化的振幅
xlabel('频率/Hz');
ylabel('振幅');title('N=128');grid on;
subplot(2,2,2),plot(f(1:N/2),mag(1:N/2)); %绘出Nyquist频率之前随频率变化的振幅
xlabel('频率/Hz');
ylabel('振幅');title('N=128');grid on;
%对信号采样数据为1024点的处理

最后得到的图像并不是0.8-2的信号,好像在更高的频率处的幅度比较高,不知是哪里有问题。

Chris Meng:

你好,

TI有提供基于IWR6843/IWR1443的呼吸心跳的demo,你可以参考。

https://www.ti2k.com/wp-content/uploads/ti2k/DeyiSupport_传感器_node

,

Xiaonan Zhang:

那个我看过但是不明白它的m文件代码是什么意思,请问用这个雷达得到的数据是必须通过那个demo才能滤波吗?我的课题需要单独进行滤波,直接把信号文件输入那个demo里来得出结果是不符合我的需要的,从网上找的滤波算法和频率估计算法都没考虑到该怎么处理采集到的距离维相位。

如果您不知道我的代码有什么错误,那请您为我指出demo中的m文件中的哪一部分是滤波,是巴特沃斯滤波器还是其它种类的滤波器?还有该怎么单独拿出来更改参数(如帧率、通带等)来给我自己得到的相位信息滤波?

,

Chris Meng:

你好,

vital lab包里的m代码使用来解析demo输出的串口信息的。串口信息的具体内容,请参考user guide和代码。

,

Xiaonan Zhang:

请问有没有不用demo直接滤波的办法,这个雷达的采集结果是不能用正常方法滤波吗,有没有转换成能正常滤波的信号的办法呢?我本以为滤波不是一件很复杂的事,可是尝试了好多参数都不行。是我设定的采样频率或者其他参数有问题吗,还是说滤波的代码没有问题而是我采集的信号有问题?.

,

Chris Meng:

你好,

你自己编写的matlab代码,我这边是无法支持的,请理解。请自己检查。

赞(0)
未经允许不得转载:TI中文支持网 » IWR6843: 在matlab对采集信号处理,提取目标相位信息后,采用如下代码,不能过滤出心跳信号,请指出如何改正错误
分享到: 更多 (0)

© 2024 TI中文支持网   网站地图 鲁ICP备2022002796号-1