基于FPGA的UWB通信/定位系统的开发介绍——简化版
基于FPGA的UWB通信/定位系统的开发的详细版欢迎订阅本博:https://blog.csdn.net/ccsss22/article/details/115290774
1.问题描述:
超宽带[技术是一种高速率、低成本和低功耗的新型无线通信技术。通过FPGA实现的结构如图所示:
2.部分程序:
kkk = 0;
for EbN0 = EbN0_sub
kkk
kkk = kkk + 1;
for jj1 = 1:Tag_Num
jj1
rng(jj1);
for jj = 1:num_bits
%TAG to BS1
delay_1 = round(time_bs_tag(1,jj1)/ts);
xx1 = zeros(1,delay_1);
%传播时延
delay_1_1(jj,:) = [xx1 sig(1:end-length(xx1))];
%UWB
h_4 = uwb_channel(dist_bs_tag(1,jj1));
%信号经过信道
conv_data1 = conv(delay_1_1(jj,:),h_4);
UWB_chan1(jj,:) = conv_data1(1:length(sig));
%TAG to BS2
delay_2 = round(time_bs_tag(2,jj1)/ts);
xx2 = zeros(1,delay_2);
%传播时延
delay_2_1(jj,:) = [xx2 sig(1:end-length(xx2))];
h_2 = uwb_channel(dist_bs_tag(2,jj1));
conv_data2 = conv(delay_2_1(jj,:),h_2);
UWB_chan2(jj,:) = conv_data2(1:length(sig));
%TAG to BS3
delay_3 = round(time_bs_tag(3,jj1)/ts);
xx3 = zeros(1,delay_3);
%传播时延
delay_3_1(jj,:) = [xx3 sig(1:end-length(xx3))];
h_3 = uwb_channel(dist_bs_tag(3,jj1));
conv_data3 = conv(delay_3_1(jj,:),h_3);
UWB_chan3(jj,:) = conv_data3(1:length(sig));
%TAG to BS4
delay_4 = round(time_bs_tag(4,jj1)/ts);
xx4 = zeros(1,delay_4);
%传播时延
delay_4_1(jj,:) = [xx4 sig(1:end-length(xx4))];
h_4 = uwb_channel(dist_bs_tag(4,jj1));
conv_data4 = conv(delay_4_1(jj,:), h_4);
UWB_chan4(jj,:) = conv_data4(1:length(sig));
end
for jj = 1:num_bits
UWB_chan1n(jj,:) = awgn(UWB_chan1(jj,:)/max(UWB_chan1(jj,:)),EbN0,'measured');
UWB_chan2n(jj,:) = awgn(UWB_chan2(jj,:)/max(UWB_chan2(jj,:)),EbN0,'measured');
UWB_chan3n(jj,:) = awgn(UWB_chan3(jj,:)/max(UWB_chan3(jj,:)),EbN0,'measured');
UWB_chan4n(jj,:) = awgn(UWB_chan4(jj,:)/max(UWB_chan4(jj,:)),EbN0,'measured');
end
%BS1接收机
Rec_bs1 = sum(UWB_chan1n)/num_bits;
xc1 = xcorr(y,Rec_bs1);
[a,delay1] = max(xc1);
Toa1 = (length(sig) - delay1) * ts;
%BS2接收机
Rec_bs2 = sum(UWB_chan2n)/num_bits;
xc2 = xcorr(y,Rec_bs2);
[a,delay2] = max(xc2);
Toa2 = (length(sig) - delay2) * ts;
%BS3接收机
Rec_bs3 = sum(UWB_chan3n)/num_bits;
xc3 = xcorr(y,Rec_bs3);
[a,delay3] = max(xc3);
Toa3 = (length(sig) - delay3) * ts;
%BS4接收机
Rec_bs4 = sum(UWB_chan4n)/num_bits;
xc4 = xcorr(y, Rec_bs4);
[a,delay4] = max(xc4);
Toa4 = (length(sig) - delay4) * ts;
[x_est0(jj1),y_est0(jj1),z_est0(jj1)] = func_TOA(BS_pos,[Toa1,Toa2,Toa3,Toa4],C_laser);
x_est1(jj1) = x_est0(jj1);
y_est1(jj1) = y_est0(jj1);
z_est1(jj1) = z_est0(jj1);
toa_error0(1,jj1) = sqrt((Tag(jj1,1) - x_est0(jj1))^2 + (Tag(jj1,2) - y_est0(jj1))^2+ (Tag(jj1,3) - z_est0(jj1))^2);
toa_error1(1,jj1) = sqrt((Tag(jj1,1) - x_est1(jj1))^2 + (Tag(jj1,2) - y_est1(jj1))^2+ (Tag(jj1,3) - z_est1(jj1))^2);
end
end
P_est0 = [x_est0',y_est0',z_est0'];
P_est1 = [x_est1',y_est1',z_est1'];
3.仿真结论:
PGA定位仿真输出结果是:247,118,77
MATLAB的定位结果如下:
A-036:03
相关文章
- DoIP协议从入门到精通——诊断通信
- 基于.Net C# 通信开发-网络调试助手
- 基于FPGA的UWB通信/定位系统的开发介绍——详细版
- 【千兆以太网】基于FPGA的千兆以太网MIMO通信系统开发
- 【FPGA教程案例36】通信案例6——基于vivado核的FFT傅里叶变换开发以及verilog输入时序配置详解,通过matlab进行辅助验证
- 【FPGA教程案例31】通信案例1——基于FPGA的ASK调制信号产生
- 4月20日,每天30秒,昨夜今晨一览无余/中国6G通信技术研发取得重要突破/宁德时代正式发布凝聚态电池
- 内网和外网通信的问题
- Android BLE开发之Android手机与BLE终端通信
- 《Arduino开发实战指南:机器人卷》一2.6 串口通信函数
- 企业级网络电话 通信多项瓶颈迎刃而解
- 【Unity3D日常开发】Unity3D与Android的交互通信(Android Studio3.0版本)
- TCP通信丢包原因总结
- 【正点原子FPGA连载】第十四章 UART串口通信实验摘自【正点原子】DFZU2EG/4EV MPSoC 之FPGA开发指南V1.0
- 【正点原子FPGA连载】 第十六章 UART串口通信实验 -摘自【正点原子】领航者ZYNQ之FPGA开发指南_V2.0
- 【正点原子FPGA连载】第十四章 串口通信实验 -摘自【正点原子】新起点之FPGA开发指南_V2.1
- 【正点原子MP157连载】 第十七章 RS485串口通信实验-摘自【正点原子】STM32MP1嵌入式Linux驱动开发指南V1.7
- android-使用环信SDK开发即时通信功能及源代码下载
- 【Android开发】之Fragment与Acitvity通信
- 企业服务总线全双工异步通信机
- 美国力促量子通信数据安全
- 深挖通信行业大数据 让数据变现不再纸上谈兵
- STM32-串口通信波特率计算以及寄存器的配置详解
- STC89C51——串行通信、串口介绍及配置
- 物联网如何“带偏”移动通信行业?