CSI信道状态信息处理入门1(附源代码)
2017-10-09 22:17
806 查看
一、1组CSI数据的SNR
csi_trace = read_bf_file('源数据');%源数据为你用CSI Tools工具采集到的原始数据for l=1:1 %取50个数据包的数据
csia=get_scaled_csi(csi_trace{l});
for i=1:1 %1个发射天线
for j=1:2 %2个接收天线
for k=1:30 %30个子载波数据
B(i,j,k)=csia(i,j,k);
end
end
end
plot(db(abs(squeeze(B).')))
hold on
end
legend('RX Antenna A', 'RX Antenna B', 'Location', 'SouthEast' );
xlabel('Subcarrier index');
ylabel('SNR [dB]')
hold off;
二、时域柱状图
实际情况时域柱状图csi_trace = read_bf_file('源数据');
for l=1:50 %取50个数据包的数据
csia=get_scaled_csi(csi_trace{l});
for k=1:30 %30个子载波数据
B(1,1,k)=csia(1,1,k);
end
csi_one=squeeze(B).';
for ki=1:30 %30个子载波数据
csi_amp(ki,l)=csi_one(ki); %第l个数据包的第k个子载波的相位值 【子载波,数据包】
end
end
csi_ifft=ifft(csi_amp(:,1));
T_amp=abs(csi_ifft);
bar(T_amp);
set(gca,'XTick',[0 10 20 30]);
set(gca,'xticklabel',{'0','0.5','1','1.5'});
xlabel('Delay (ms)');
ylabel('Amplitude(dB)');
三、未经过解卷绕的相位图
csi_trace = read_bf_file('源数据');for l=1:50 %取50个数据包的数据
csia=get_scaled_csi(csi_trace{l});
for k=1:30 %30个子载波数据
B(1,1,k)=csia(1,1,k);
csi_one=squeeze(B).';
csi_phase=angle(csi_one);%angle求复数矩阵相位角的弧度值,取值-pi到pi
csi_amplitude=abs(csi_one);%angle求复数矩阵的绝对值
phase(k,l)=csi_phase(k); %第l个数据包的第k个子载波的相位值 【子载波,数据包】
amplitude(k,l)=csi_amplitude(k);
end
end
plot(180*phase/pi,'.','Markersize',25);
xlabel('Subcarrier index');
ylabel('Phase (deg)')
四、经过解卷绕后的相位图
csi_trace = read_bf_file('源数据');for l=1:50 %取50个数据包的数据
csia=get_scaled_csi(csi_trace{l});
for k=1:30 %30个子载波数据
B(1,1,k)=csia(1,1,k);
csi_one=squeeze(B).';
csi_phase=angle(csi_one);%angle求复数矩阵相位角的弧度值,取值-pi到pi
csi_amplitude=abs(csi_one);%angle求复数矩阵的绝对值
phase(k,l)=csi_phase(k); %第l个数据包的第k个子载波的相位值 【子载波,数据包】
amplitude(k,l)=csi_amplitude(k);
end
plot((180*unwrap(phase(:,l))/pi),'b');
%plot(unwrap(phase(:,l)),'b');
hold on;
end
xlabel('Subcarrier index');
ylabel('Phase (deg)')
%ylabel('Phase (rad)')
相关文章推荐
- LTE学习:MCS(调制与编码策略) CSI(信道状态信息)
- 学会处理ASP.NET的页面和请求状态信息 (转载)
- 使用Response.Flush方法实时显示处理过程的状态信息
- 异常信息:CLR无法从COM 上下文0x645e18 转换为COM上下文0x645f88,这种状态已持续60秒。拥有目标上下文/单元的线程很有可能执行的是非泵式等待或者在不发送 Windows 消息的情况下处理一个运行时间非常长的操作.这种情况通常会影响到
- webservice 入门笔记五handler处理信息
- Android 程式开发:(八)处理屏幕方向的变化 —— 8.2在“变化”中保存状态信息
- Android基础入门教程——7.5.6 WebView处理网页返回的错误码信息
- 物联网平台机智云Android开源框架入门之旅(五) 分析怎么样把云端设备的信息状态同步到手机显示。
- 在用form 提交请求时,在请求处理完成后想要在JAVA后台设置返回信息状态展示到页面
- 异常信息:CLR无法从COM 上下文0x645e18 转换为COM上下文0x645f88,这种状态已持续60秒。拥有目标上下文/单元的线程很有可能执行的是非泵式等待或者在不发送 Windows 消息的情况下处理一个运行时间非常长的操作.这种情况通常会影响到
- OpenGrok在Windows处理UTF-8编码无BOM信息的源代码时,中文注释显示为乱码的问题
- Lex和Yacc从入门到精通(7)-筛选信息(容错处理)
- JSF入门十三(错误信息处理)
- 使用Response.Flush方法实时显示处理过程的状态信息(转)
- +学会处理ASP.NET的页面和请求状态信息+
- 此页的状态信息无效,可能已损坏 的处理办法及原因分析
- 一种基于信息状态的 信息表示、存储和处理系统
- vs2005入门 之 状态处理(Application,Seeeion,Cookie) [视频]
- Lex和Yacc从入门到精通(7)-筛选信息(容错处理)
- vs2005入门 之 状态处理(Application,Seeeion,Cookie) [视频]