使用RTL-SDR和Matlab Simulink玩转软件无线电(二十四)

4.2 Matlab函数

Matlab里有很多现成的函数,包括简单的算术计算,比如rem,也包括字符串格式处理函数num2str,在练习4.2中用到过。这种函数可以把经常使用的代码作为一个程序包,易于重用。比如,我们经常要查找一组数字的平均值,一种方法是把所有数字加起来,然后除以总数。但是更简单的方法是直接调用mean函数。

 

还有一些Matlab函数以及对应的工具盒。你能调用的函数与你购买并安装的产品有关。比如,如果你装了信号处理工具盒,你就能够调用滤波器函数fir1。

 

下面的练习,我们会进一步研究Matlab内建函数和工具盒,然后自己写自定义函数。

 

练习4.3 Matlab函数

 

下面的练习,我们将展示如何调用Matlab里自带的函数和工具盒。我们不可能把所有的函数都讲一遍,但是你可以查看帮助文档。

 

(a)调用函数的帮助文档。在Matlab命令行窗口,输入doc。然后回车,打开帮助浏览器,你应该能看到你安装的组件。

 

如果你在寻找的函数是特定用途的(比如DSP或者通信应用),你可以单击DSP系统工具盒,信号处理工具盒或者通信系统工具盒。你也可以在顶部直接搜索。

 

(b)假设我们要找的函数是fir1。这与数字滤波有关,我们要到信号处理工具盒找详细信息,单击信号处理工具盒。

 

(c)你现在能看到信号处理工具盒的帮助内容。它按照不同类型的信号处理操作来分割(你可以进一步探索一下)。你还可以看到左下角的函数链接,单击一下。

 

(d)界面现在应该会变化。会展示出可用的信号处理函数。这与你当前的目录有关。你可以到处看看。

 

(e)找到fir1函数,选中它,看一下详细信息。

 

(f)阅读信息,注意fir1函数可以使用不同的输入来调用。描述部分提供了详细信息。页面底部还有一些例子。

 

(g)运行例子。Matlab的帮助经常提供例程。你可以复制粘贴到Matlab命令行窗口,然后运行,看看结果对不对。试试例子1和2,看看结果。

 

(h)例子里还用了什么函数?你能找到它们的文档吗?

 

练习4.4 写你自己的函数

尽管Matlab提供了许多函数,有时候你需要写一些自定义的函数,来执行特殊的操作。接下来,我们会展示如何用练习4.2的脚本来写一个新的函数。

 

记住我们的例子很简单,函数可以使用很多不同的输入输出类型。它们也可以重载。也就是说输入的参数类型或数量不同,函数功能不同。我们现在不说这些概念,但是当你自己写自定义函数时,可能要了解,你可以看看帮助文档。

 

(a)创建新函数。在Matlab的主窗口,选择新函数选项。

 

你会看到一个新的编辑窗口,包含函数模版。初始的文件名是“未命名”,函数名也是未命名。注意函数名和文件名要一摸一样。

 

(b)保存为compare_mean_to_thresh.m文件。

 

(c)注意函数的两部分高亮显示:函数名(现在还是未命名)、输入参数。

 

(d)自定义函数接口。把函数名丛未命名改为compare_mean_to_thresh。替换输入参数为num_array和thresh。用逗号隔开,并把输出参数写成diff。

 

(e)调用时,会把num_array这样的一组数字以及一个thresh阈值传递给函数。然后它会把数组的平均值和阈值作差并输出这个结果diff。如果平均值大于阈值,diff是正的。

 

可以写一些注释来描述函数的原理,把模版里的注释改为自己的内容。

 

(f)写一个函数。接下来你自己写一下Matlab代码,把前面说的功能实现出来并保存。

 

(g)调用函数。我们现在可以在Matlab代码里调用函数。要把compare_mean_to_thresh.m文件放到当前工作目录里。你可以在Matlab脚本调用,也可以直接在命令窗口里调用。

 

输入下面的命令(可以在脚本里,也可以一行行输入到命令窗口里),然后执行。如果是命令窗口里,你不需要输入注释。

 

确认函数执行成功,并且结果正确。

 

(h)进一步探索。我们这个例子里函数范围了一个结果。然而,函数可以同时返回多个结果,也可以不返回任何值。在命令窗口里输入doc function basics来查看帮助文档。

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值