MATLAB中使用LimeSDR

MATLAB中使用LimeSDR

作者微信公众号:小卫星

操作系统:Windows 10

编译器:VS2017 community

MATLAB:MATLAB2018a

0、起因

MATLAB有时候真是没法避免,尤其是MATLAB2018a有了实时运行模式,但是可恶的是帮助文档不再随软件安装,需要注册、序列号等一堆认证才可以查看。

讨论MATLAB用LimeSDR的地方主要有:

https://discourse.myriadrf.org/t/limesdr-matlab-support/381

此外,这个地方也有jocover的文件:

联合开发网:http://www.pudn.com/Download/item/id/3455341.html

1、下载文件

https://github.com/jocover/Simulink-MATLAB-LimeSDR/releases

从该处下载所有文件,包括

https://github.com/jocover/Simulink-MATLAB-LimeSDR

如果最关键的 libLimeSuite_thunk_pcwin64.dll下载不下来,好吧

好吧,你只能跟我一样想办法编译了。

目前已有的文件包括:

MATLAB中使用LimeSDR_第1张图片

解压Simulink-MATLAB-LimeSDR-thunk.zip,并进入目录。

2、运行

进入MATLAB,进入刚才的目录,并使用命令:

help limeSDR.build_thunk

MATLAB中使用LimeSDR_第2张图片

按提示build_thunk,提示找不到命令,输入help limeSDR:

MATLAB中使用LimeSDR_第3张图片

进入limeSDR的can'参考页

MATLAB中使用LimeSDR_第4张图片

发现其实有build_thunk的方法

使用命令:limeSDR.build_thunk

MATLAB中使用LimeSDR_第5张图片

提示缺少:库文件

在该目录下拷入:LimeSuite.h、LimeSuite.dll,根据我不断的

的实践,还需要拷入LMS7002M_parameters.h,继续执行:limeSDR.build_thunk

MATLAB中使用LimeSDR_第6张图片

一大堆的橙色警告,但是非常幸运的是,libLimeSuite_thunk_pcwin64.dll生成了,还有一堆附属的东西。

输入:dev=limeSDR

MATLAB中使用LimeSDR_第7张图片

提示,错误使用

插入LimeSDR mini,再次使用该命令:

MATLAB中使用LimeSDR_第8张图片

板上绿灯亮,但是出现错误:

未定义函数或变量 'gatewareRevision'。

出错 limeSDR (line 170)
            obj.info.gatewareRevision=char(dinfo.gatewareRevision);

出错 wyLimeMATLAB (line 2)
dev = limeSDR

注释掉limeSDR.m第170行,

MATLAB中使用LimeSDR_第9张图片

又出现错误:
出错 limeSDR (line 174)
            obj.versions.buile_timestamp=char(calllib('libLimeSuite',
            'LMS_GetBuildTimestamp'));

出错 wyLimeMATLAB (line 2)
dev = limeSDR

注释掉173、174

            %obj.versions.library_version=char(calllib('libLimeSuite', 'LMS_GetLibraryVersion'));
            %obj.versions.buile_timestamp=char(calllib('libLimeSuite', 'LMS_GetBuildTimestamp'));

此外,如果是mini,还要注释掉第177、第179行。

MATLAB中使用LimeSDR_第10张图片

运行

clc,clear,close all;
dev = limeSDR
dev.info

得到输出


dev = 

  limeSDR - 属性:

         rx0: [1×1 limeSDR_XCVR]
         tx0: [1×1 limeSDR_XCVR]
         rx1: []
         tx1: []
        info: [1×1 struct]
    versions: []

>> dev.info

ans = 

  包含以下字段的 struct:

             deviceName: 'LimeSDR-Mini                    '
          expansionName: 'UNSUPPORTED                     '
        firmwareVersion: '5               '
        hardwareVersion: '0               '
        protocolVersion: '1               '
        gatewareVersion: '1.24            '
    gatewareTargetBoard: 'LimeSDR-Mini                    '

>> 

可见已经识别mini。

怎么样收数据呢。运行代码:

clc,clear,close all;
dev = limeSDR
dev.info

dev.rx0.frequency = 91.6e6;
dev.rx0.enable;
dev.start;

for k = 1:5
    data = dev.receive(1024);
    
    figure,pwelch(data,[],[],[],8e6);
    
    drawnow;
end
dev.rx0.disable;
dev.stop;

好了,久违的图形出现了:

MATLAB中使用LimeSDR_第11张图片

注意,这段代码和jocover的有所区别(他的运行不出来)。

Done!

 

你可能感兴趣的:(LimeSDR)