基于Android系统的FMCW雷达的移植与开发

这是大三下学期的一个嵌入式课设。记录以作反思。

一、开发环境

        1、电脑端:Android Studio

        2、手机端:VIVO Z3

        3、开发语言:Java

        4、目标:在智能手机上实现 FMCW Radar 雷达测距

二、连续调频波雷达(FMCW)

        连续调频波雷达,也称FMCW(英文名字的缩写)。至于FMCW雷达的基本原理,其他不少博主都有介绍,这里我简单说一下我的理解:

1、FMCW 雷达周期性地发射 chirp 信号;

2、chirp 信号,就是频率随时间线性增长,如下图所示

3、FMCW雷达系统框架如下图所示。IF:中频信号,是Tx和Rx的频率之差。

4、测距:声波从发射到接收需要一定的时间,在这段时间内,所经过的距离是与被测目标距离的两倍。

 

 

 三、实现方法

        在电脑端通过Android Studio编程开发出一个能发送Chrip信号和接收被反射回来的Chrip信号的APP。源码链接:

链接:https://pan.baidu.com/s/1Q8FXurQ-aqRgQxsTaTO3bw?pwd=eda6 
提取码:eda6 
        看懂源码后,把APP移植到手机。如何移植到手机,其他博主也有很多讲解,不会的搜一搜就好。

        移植到手机后,记得打开APP的麦克风权限,不然接收不到反射回来的信号。发送信号和接收信号都被存在手机存储中固定的位置,源码中有说明,找到文件后,在电脑端用matlab分析。

Fs=48000;
fid0 = fopen('C:\Users\86151\Desktop\录音文件\5F.pcm','r');%发送信号
fid1 = fopen('C:\Users\86151\Desktop\录音文件\5J.pcm','r');%接收信号
x0 = fread(fid0,50000,'int16');%10000
x1 = fread(fid1,50000,'int16');
%sound(x,Fs);
%figure(1)
%plot(x)
x2=(x0.*x1);
fp=1.1*4000;
hlpf = fir1(256, 2 * fp / Fs);  
x2_lpf = filter(hlpf,1,x2); % 差频
%x2_lpf_freq= abs(fftshift(fft(real(x2_lpf))));
subplot(2,2,1);
N = length(x0);
time = (0:N-1)/Fs;% 计算时间坐标
plot(time,x0);
xlabel('时间');
subplot(2,2,2);
spectrogram(x0,1024,512,1024,Fs); 
subplot(2,2,3);
spectrogram(x1,1024,512,1024,Fs); 
subplot(2,2,4);
spectrogram(x2_lpf,1024,512,1024,Fs); 
figure(1)
window = 1024;
noverlap = window/2;
%f_len = window/2 + 1;
%f = linspace(0, 150e3, f_len);
[s, f, t, p] = spectrogram(x2_lpf, window, noverlap , 1024, Fs);
figure(2);
d=340*f/50000;  %2*斜率=50000
imagesc(t, d, abs(s));xlabel('时间'); ylabel('距离');

colorbar;
figure(3)
plot(d,p); xlabel('距离');

        接收到的信号由于手机性能,会有50ms左右的延迟。记得裁掉再通过matlab分析,不然误差会很大。我使用AU进行裁剪,对于能打开pcm文件的APP应该也可以进行裁剪。

        举个例子:离被测目标1.5M左右,频率范围是16KHz~20KHz,载波速率以声速表示。通过matlab分析的结果如下:

左边的图表示中频信号,右边的图表示距离。

四、总结

        也不知道总结个啥。做这个课设的过程中遇到不少问题,增长了知识,也增长了见识。祝我好运,也祝你好运。

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
基于STM32系统FMCW雷达系统设计需要考虑到硬件和软件两个方面。 硬件设计方面,需要选择合适的STM32系列芯片作为主控,具有足够的计算和存储能力。然后,从传感器、射频前端、信号处理等方面进行设计。 传感器方面,选择合适的天线和收发机构件,确保雷达系统的发送和接收功率符合需求,并能够实现高精度的测距。 射频前端设计方面,需要设计合适的发射和接收电路,确保信号能够达到理想的频率和功率要求,并能够准确地捕获回波信号。 信号处理方面,使用FMCW技术对接收到的回波信号进行处理。通过比较发射信号和接收信号之间的频率差,可以得到目标物体与雷达之间的距离。同时,通过对回波信号的时延进行分析,还可以得到目标物体的速度和方向信息。 在软件设计方面,可以借助STM32的开发工具和相关库函数,利用嵌入式C语言进行开发。 首先,需要编写相应的驱动程序,实现与硬件模块的通信和控制。包括控制发射,接收回波信号,进行模数转换等。 然后,编写相应的信号处理算法,对接收到的回波信号进行频谱分析、时域分析等。通过具体的算法可以得到目标物体的距离、速度和方向等信息。 最后,根据需求可以进行数据的存储、显示和通信等操作,以满足不同应用场景的需求。 总之,基于STM32系统FMCW雷达系统设计需要综合考虑硬件和软件两个方面,通过合理的系统设计和信号处理算法的开发,可以实现高精度的测距和目标分析功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值