matlab 微秒 符号,matlab处理csi

使用python调用matlab API接口进行数据分析

找到matlab安装目录下自带的setup.py的路径我的路径如下

D:\MATLAB\R2018a\extern\engines\python

打开cmd进入到刚才找到的路径

管理员权限执行!!! pyhton setup.py install

具体代码

1.将csiTool中的matlab文件夹下的文件拷到pycharm的工作目录下,我的拷出来不行,于是从Github中重新下载了下来,考进去成功!

csi_trace=read_bf_file('csi.dat');

csi_entry=csi_trace{1}

timestamp_low: 4 (In the sample trace, timestamp_low is invalid and always 4.)

bfee_count: 72

Nrx: 3

Ntx: 1

rssi_a: 33

rssi_b: 37

rssi_c: 41

noise: -127

agc: 38

perm: [3 2 1]

rate: 256

csi: [1x3x30 double]

timestamp_low:NIC网卡1MHz时钟的低32位。它大约4300s(72min)重复一回。 (从0-2^32需要4300s),时间戳,相连两包此值差单位为微秒,通过验证发现100hz的发包频率此差值为10000,20hz的发包频率此差值为50000,此参数可以确定出波形的横轴时间。

当发包频率过大会出现接收端停止收数的情况:20Hz正常,200Hz和1000Hz的采样频率,收端最多接收一分多钟的的数据(原因是recv函数接收数据阻塞导致)

1、将包长变小后还是有同样的问题。

2、由数据速率引起的,它太高,程序无法处理(可以尝试设置非阻塞)

0x4101决定了主机仅一根天线发送数据,因此此处的Ntx值为1,另外采用的是OFDM模式 如果想要收端接收到发端两根天线的数据(CSI的格式为2×3×30),只需要把第14、15位均设置为1,即在发送端的脚本里面设置为0xC101 注:关于0x4101的具体说明如下

bfee_count:驱动记录并发送到用户控件的波束测量值的总数。内核和用户空间中netlink频道是有损的,可以用该变量来检测被丢弃的测量值。

Nrx:接收端使用的天线数量。

Ntx:发送端使用的天线数量。

rssi_a, rssi_b, rssi_c:由接收端NIC测量出的RSSI值。

perm:展示NIC如何将3个接收天线的信号排列到3个RF链上,上图中的数据表示天线A被发送到RF链A,天线B被发送到RF链B,天线C被发送到RF链C。

rate:发包频率。

csi:CSI值

3374094

MATLAB命令

a=[1 2 3;4 5 6] #矩阵

A' #A的共轭转置矩阵

ones(2,3) #一矩阵

b=1:0.1:2 #集合间距为0.1

zeros(2,3) #零矩阵

rand(2,3) #随机矩阵,数值介于0和1之间

randn(2,3) #矩阵(一个平均值为0的高斯分布,方差或者等于1的标准偏差)

eye(2) #单位阵

hist() #直方图

size() #矩阵的尺寸

size(A, 1) #矩阵第一维的尺度

length(A) #由于矩阵A是一个

3×2的矩阵,因此最大的维度应该是3,因此该命令会返回3。

who # 命令,能显示出工作空间中的所有变量

whos #命令,能更详细地进行查看

load('featureX.dat') # 加载数据文件,变量名等于文件名

clear #命令,删除所有变量,加变量名删除特定

save hello.mat v #这个命令会将变量v存成一个叫 hello.mat 的文件,按二进制存储

save hello.txt v -ascii # 这样就会把数据存成一个文本文档,或者将数据的 ascii 码存成文本文档

键入 A(3,2) # 这将索引到 矩阵的 (3,2) 元素。

键入A(2,:) #返回第二行的所有元素

A([1 3],:) #取的是A矩阵的第一行和第三行的每一列

A = [A, [100, 101,102]] #这样做的结果是在原矩阵的右边附加了一个新的列矩阵

A(:) #这是一个很特别的语法结构,意思是把 A中的所有元素放入一个单独的列向量,这样我们就得到了一个 9×1 的向量

A.*B #这么做将矩阵 A中的每一个元素与矩阵 B中的对应元素相乘

A.^2 #这将对矩阵中每一个元素平方

1./A #得到中每一个元素的倒数。同样地,这里的点号还是表示对每一个元素进行操作。

exp(A) #自然数e的幂次运算

abs(A) #取绝对值

val=max(A) #默认情况下max(A)返回的是每一列的最大值,如果你想要找出整个矩阵A的最大值,你可以输入max(max(A))

[val, ind] =max(A) #这将返回矩阵中的最大值存入,以及该值对应的索引

A<3 #这将进行逐元素的运算,所以元素小于3的返回1,否则返回0。

find(A<3) #这将告诉我A中的哪些元素是小于3的。

A = magic(3) #magic 函数将返回一个矩阵,称为魔方阵或幻方 (magic squares),它们具有以下这样的数学性质:它们所有的行和列和对角线加起来都等于相同的值。

[r,c] = find(A>=7) #这将找出所有矩阵中大于等于7的元素,r 和c分别表示行和列

sum(a) #就把 a 中每列所有元素加起来了。

sum(a,2) #求每行的和

prod(a) #prod 意思是product(乘积),它将返回这四个元素的乘积。

floor(a) #向下四舍五入,因此对于 a中的元素0.5将被下舍入变成0。

ceil(a) #向上四舍五入,所以0.5将上舍入变为最接近的整数,也就是1。

type(3) #这通常得到一个3×3的矩阵

max(rand(3),rand(3)) #这样做的结果是返回两个3×3的随机矩阵,并且逐元素比较取最大值。

max(A,[],1) #这样做会得到每一列的最大值。

max(A,[],2) #这将得到每一行的最大值。

sum(sum(A.*eye(9)

hold on #函数的功能是将新的图像绘制在旧的之上。

再加上命令xlabel('time'), 来标记X轴即水平轴,输入ylabel('value'),来标记垂直轴的值。

legend('sin','cos') #表示这两条曲线表示的内容。

title('myplot') #显示这幅图的标题。

print(gcf,'-dpng','abc.png') #保存为png格式的图片到当前路径

squeeze() #用于删除矩阵中的单一维,对二维矩阵无效。

close会让这个图像关掉。

键入figure(1); plot(t, y1);将显示第一张图,键入figure(2); plot(t, y2); 将显示第二张图(同时显示两张图)

subplot(1,2,1),它将图像分为一个1*2的格子,也就是前两个参数,然后它使用第一个格子,也就是最后一个参数1的意思

axis([0.5 1 -1 1])也就是设置了轴的范围。横轴的范围调整至0.5到1,竖轴的范围为-1到1。

Clf清除一幅图像。

我有时用一个巧妙的方法来可视化矩阵,也就是imagesc(A)命令

我还可以使用函数colorbar,让我用一个更复杂的命令 imagesc(A),colorbar,colormap gray 它生成了一个颜色图像,一个灰度分布图,并在右边也加入一个颜色条。所以这个颜色条显示不同深浅的颜色所对应的值。

csi_trace = read_bf_file('csi6.dat');%数据读取

for l=1:1 %取50个数据包的数据

csia=get_scaled_csi(csi_trace{l});%提取csi矩阵

for i=1:1 %1个发射天线

for j=1:3 %2个接收天线

for k=1:30 %30个子载波数据

B(i,j,k)=csia(i,j,k);

end

end

end

plot(db(abs(squeeze(B).')))

%squeeze通过移除第一个单维度将csi变成3*30的矩阵

%db将线性空间变成以十为底的对数空间

%.'转置得到30*3的矩阵

%plot(Y)如果Y是m×n的数组,以1:m为X横坐标,Y中的每一列元素为Y坐标,绘制n条曲线

hold on%当前轴及图像保持而不被刷新,准备接受此后将绘制的图形,多图共存

end

legend('RX Antenna A', 'RX Antenna B','RX Antenna C', 'Location', 'SouthEast' );

xlabel('Subcarrier index');

ylabel('SNR [dB]')

hold off;

%get_eff_SNRs() 它接受一个CSI矩阵作为输入,并返回一个线性(幂)空间中有效信噪比值的74矩阵。

%这4列对应的有效信噪比使用四种802.11调制方案,即BPSK/QPSK/16QAM/64QAM。

%7行对应于7个可能的天线选择,包括3个天线和1、2或3个空间流。

%特别是,前3行对应于天线A、B或c的单流传输,后3行对应于天线AB、AC或BC的双流传输。最后一行对应于使用所有天线的3流传输

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/563603.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

日冕物质抛射检测matlab,日冕图像论文,关于基于实时数据的日冕物质抛射自动检测方法相关参考文献资料-免费论文范文...

导读:本论文主要论述了日冕图像论文范文相关的参考文献,对您的论文写作有参考作用。(昆明理工大学信息与自动化学院,昆明 650504)(Faculty of Information Engineering and Automation,Kunming University of Science and Technology,Kunming 650504,China)摘 要&#xff1a;本…

link url下载php,php脚本生成google play url的下载链接,下载apk并自动反编译后获取android版本号...

php脚本生成google play url的下载链接&#xff0c;下载apk并自动反编译后获取android版本号需求:get the offer tracking linkfollow the redirect to get google play urlGo to http://apps.evozi.com/apk-downloader/Enter google play urlDownload APK fileDecompile APK f…

java中.of,java中instanceof的用法

java 中的instanceof 是一个二元操作符(运算符)运算符&#xff0c;由于是字母组成&#xff0c;所以是Java的保留关键字&#xff0c;它的作用是用来判断&#xff0c;instanceof 左边对象是否为instanceof 右边类的实例&#xff0c;返回一个boolean类型值。还可以用来判断子父类的…

java实现鸭子类型,Golang的interface及duck typing鸭子类型

Golang的interface及duck typing鸭子类型“当看到一只鸟走起来像鸭子、游泳起来像鸭子、叫起来也像鸭子&#xff0c;那么这只鸟就可以被称为鸭子。” 意思就是: 一个东西究竟是不是鸭子&#xff0c;取决于它能不能满足鸭子的工作。duck typing 多见于动态语言,例如PHP,Python等…

小猴吃桃matlab,看图写话:小猴吃桃精彩选篇

看图写话&#xff1a;小猴吃桃精彩选篇两只聪明的小猴子一天上午&#xff0c;风和日丽。佳佳和皮皮到小溪边玩耍&#xff0c;忽然皮皮开心的大叫&#xff1a;“快看那边有好多又大又红的桃子&#xff01;”这时佳佳也高兴的欢呼着&#xff0c;馋的它们开水直流。皮皮和佳佳都在…

php mysql 分行执行,php执行mysql存储及执行脚本

php执行mysql存储及执行脚本php页面执行mysql存储过程:# vi cunchu.php$db new mysqli("localhost","root","123456","team1");$result$db->query("CALL challenge_crontab()");?>:wq注释&#xff1a;执行team1数据…

oracle 换字段顺序,修改ORACLE的字段顺序

首先你要有一个pl/sql&#xff0c;其实没有也行&#xff0c;但是这数据库还是有一个可视化界面为好啊。1.首先&#xff0c;以sys用户的身份登录PL/SQL2.查询出你要更改的表的ID&#xff0c;以我本地的数据为例&#xff0c;我要改‘FINACE‘用户下‘INCOME‘这张表。注&#xff…

oracle单行子查询返回多个行 order by,单行子查询返回多个行 Issue分析求助

with order_base as --获取订单基础情况(select ou.order_key order_key, ou.order_quantity_i, ood.dispatch_time_t, ou.part_number_s, I032ZZ01 pline_name_sfrom order_uv ou left join at_as_om_orderdispatchstatus ood on ou.order_key ood.order_54union allselect m…

php按照名称搜索,PHP从类型和名称搜索

很抱歉,标题不好,但我不知道有更好的选择.目前,我正在创建一个搜索引擎以获取产品详细信息.我有2种搜索类型,第一种是使用产品类型进行搜索,另一种是使用产品名称进行搜索.这是搜索代码&#xff1a;$search_exploded explode (" ", $search);$x "";$cons…

srvctl 在oracle下运行,在RAC 中解决 vipca 和 srvctl 无法执行的错误

问题一: vip创建问题/home/oracle/crs/oracle/product/10/crs/jdk/jre//bin/java: error while loading shared libraries: libpthread.so.0: cannot open shared object file解决方法&#xff1a;这个错误一般是在 5上装 时会碰到的&#xff0c;当界面提示你用root脚本执行相应…

简述oracle数据库特殊状态,【OracleDB】 01 概述和基本操作

实例概念&#xff1a;Oracle有一个特殊的概念Oracle数据库 数据库 Oracle文件系统 Oracle实例实例处理Oracle的请求&#xff0c;调用文件系统然后返回结果响应给客户端单实例和多实例一个数据库可以对应多个实例操作数据库服务这是Oracle数据库的服务&#xff0c;一定要安装…

oracle会闪,oracle闪来

当前位置:我的异常网 数据库 oracle闪来oracle闪来www.myexceptions.net 网友分享于&#xff1a;2013-09-10 浏览&#xff1a;1次oracle闪回闲来无事&#xff0c;把以前的笔记整理一下放到这里。默认情况下&#xff0c;oracle10g可以直接闪回表&#xff0c;闪回表数据&#…

oracle导出有分区表的用户,分区表导出导入

--创建分区表create table t2(id int,name varchar2(10))partition by range(id)(partition p1 values less than(10),partition p2 values less than(20),partition p3 values less than(30),partition p4 values less than(40),partition p5 values less than(50))--插入数据…

php分流短信服务商,使用第三方短信服务商云片发送短信(php样例)

//智能匹配模版接口发送样例$apikey "---------------------------"; //请用自己的apikey代替$mobile "--------------"; //请用自己的手机号代替$text"【云片网】亲爱的doubiyuzai&#xff0c;您的验证码是------。有效期为100000000小时&#xff…

oracle中affirm,2.Oracle Data Guard 参数介绍

Oracle Data Guard 参数介绍Data Guard作为Oracle提供的一个高可用及灾备解决方案,理解并可以实施它对于DBA来说是非常重要套的技能上节介绍了有关Data Guard的概念&#xff0c;这节将介绍相关的一些参数有的参数是做为备库角色时才生效的&#xff0c;会单独说出来1. DB_NAME该…

linux lib目录找不到,linux中jpeglib库文件我安装了,但是我运行自己写的代码总是找不到这个库...

首先&#xff0c;找到你的VC6.0的安装路径(就是你安装到哪里了&#xff0c;不是你安装包setup.exe的路径)&#xff0c;假设按照默认路径安装的话&#xff0c;头文件和库文件的路径应该是这样子的&#xff1a;include files:C:\Program Files\Microsoft Visual Studio\VC98\INCL…

连接linux桌面命令,连接Linux远程桌面的四个方法

有下面四种方法&#xff1a;一、通过xshell直接调用程序窗口。二、通过xbrower连接Linux完整的桌面。三、通过Linux连接Linux的远程桌面&#xff0c;可完整桌面&#xff0c;也可打开程序窗口。四、通过VNC连接桌面。一、安装xmanager&#xff0c;用xshell连接到Linux服务器&…

linux基础磁盘管理,Linux基础入门-文件系统操作与磁盘管理

chrome 更新flash插件下载下面的插件并安装 https://fpdownload.macromedia.com/pub/labs/flashruntimes/flashplayer/install_flash_player ...sort DEMO测试用文件: [weblogicetp-mall-dev7][/tmp]$ cat msn.txt aaa, fff, bbb, cc, ee, gg, hh, zz, mmm, DEMO1:按第一 ...Qt…

linux mysql 性能提高,高手心得:提高MySQL性能的方法

lgms2008 于 2006-09-20 00:18:05发表:5. NOT我们在查询时经常在where子句使用一些逻辑表达式&#xff0c;如大于、小于、等于以及不等于等等&#xff0c;也可以使用and(与)、or(或)以及not(非)。NOT可用来对任何逻辑运算符号取反。下面是一个NOT子句的例子&#xff1a;... whe…

Linux单独编译设备树,迅为IMX6Q开发板-非设备树内核-单独编译内核驱动

内核驱动不仅可以将驱动编译到内核中&#xff0c;还可以动态的编译内核驱动。本文档介绍如何以模块的方式编译内核驱动。要动态的编译内核&#xff0c;首先需要将内核源码编译通过&#xff0c;内核的编译请参考使用手册第五章。9.5.2.1 内核和编译器路径本节介绍内核路径、编译…