![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Matlab
文章平均质量分 87
笨牛慢耕
谋生:信号处理,无线通信,芯片设计
兴趣:数理计算机人工智能
遗憾:世界如此丰富,而我如此无知
铭记:日拱一卒终身成长;忠于内心远离油腻;成就自己照亮周围
寄语自己:愿你历尽劫波,内心永远少年
展开
-
Matlab图像处理基础(2):区域处理,边沿检测
基于Matlab的图像处理基础介绍。Matlab提供了丰富的图像处理相关的工具箱,基于Matlab代码实验可以使得图像处理算法的理解变得更加简单直观。 以下所介绍的一些matlab工具函数都限于篇幅只涉及其基本的用法,更丰富的参数设定等可以查阅matlab说明。 本篇是本系列第二篇,介绍区域处理(Regional Processing),包括卷积、相关、高通滤波(边沿检测)、低通滤波(平滑)等。 上一篇参见:Matlab图像处理基础(part 1) 区原创 2022-11-29 20:15:24 · 2989 阅读 · 0 评论 -
numpy和matlab的多维数组展平:ravel, flatten, reshape, (:)
matlab的数组展平有两种基本方法,一种是用a(:);另一种是用reshape()函数。运行结果如下:要点:(1) matlab是按列优先进行展平。matlab中是以列作为第1维,行作为第2维,将矩阵展平时,先把第一列取出来,然后取第二列排在第一列后面,然后以此类推。。。(2) matlab本质上把所有标量、向量和矩阵都是当作矩阵(2维数组来看待)。比如说以上代码中即便常数1的size也是(1,1)。所以即便将矩阵展平了其实得到的还是一个矩阵,只是矩阵的两个维度方向的长度发生的变化。原创 2022-11-25 22:43:27 · 4760 阅读 · 0 评论 -
Matlab滤波器设计示例
Matlab提供了非常丰富的滤波器设计工具,其中最基本的是designfilt()函数。designfilt()函数是通用的滤波器设计工具,可以用于设计各种类型的数字滤波器,以及模拟滤波器的数字近似。Matlab还提供了其它很多专用类型的滤波器设计函数,还有基于图形化界面进行滤波器设计的工具filterDesigner(旧版本为fdatool)。本文综合但简要地介绍各种matlab滤波器设计工具,顺便代码示例介绍用于滤波器频谱观测用的工具、以及如何使用所生成的滤波器对象。原创 2022-11-20 21:16:41 · 15199 阅读 · 0 评论 -
Matlab图像处理基础(1):图像表示,点处理
基于Matlab的图像处理基础介绍。Matlab提供了丰富的图像处理相关的工具箱,基于Matlab代码实验可以使得图像处理算法的理解变得更加简单直观。 以下所介绍的一些matlab工具函数都限于篇幅只涉及其基本的用法,更丰富的参数设定等可以查阅matlab说明。原创 2022-11-18 20:54:19 · 12443 阅读 · 0 评论 -
Matlab高效编程:向量化(vectorization)、矩阵化、变量预定义
本文介绍几个Matlab常用的提高运行效率的编程技巧。对一个基于数值化的方式计算一个连续函数的频谱(傅里叶变换)的例子给出了三种实现(双重循环、向量化实现、矩阵化实现)代码,对比了运行时间。由于Matlab是解释性执行语言,Matlab不要求变量使用之前进行预定义,也不要求内存的预分配,一切都可以在执行过程中动态分配。这种灵活的方式方便了用户编程,但是同时也带来了潜在的低效率问题。以下针对一个简单的计算例子,用几种不同的代码实现方式来比较不同的写法对于运行效率的影响。原创 2022-11-01 22:35:17 · 5905 阅读 · 0 评论 -
Matlab/Simulink Coder: 代码生成中的数据处理类型控制
用Matlab/Simulink自动代码生成工具生成代码中,缺省的浮点数据类型为double类型。但是,对于嵌入式处理,有时出于处理负荷的考虑,可能会希望将数据处理由双精度处理改为单精度处理,甚至采用定点数处理,尽管这样可能会有一些性能损失的代价。那如何控制Matlab/Simulink自动代码生成工具生成非缺省的双精度数据处理类型的C模型呢?作者最近的开发中踩了不少坑,基于这些实际开发中的踩坑经验总结一下实现单精度(single)处理代码生成的一些相关要点。...原创 2022-07-15 03:00:03 · 3662 阅读 · 0 评论 -
Simulink求解器综合介绍
本文综合性地介绍Simulink求解器的方方面面。最后通过一个简单的例子示例了求解器的配置选择对于仿真结果的影响。Simulink 模型的执行分几个阶段进行。首先进行的是初始化阶段,在此阶段,Simulink 将库模型块合并到模型中来,确定传送宽度、数据类型和采样时间,计算块参数,确定块的执行顺序,以及分配内存。然后,Simulink 进入到“仿真循环”,每次循环仿真时间前进一个仿真“时间步”, 时间步(time step)是发生计算的时间间隔, 此时间间隔的大小称为步长。在每个仿真时间步期间,Simuli原创 2022-06-24 23:14:58 · 12068 阅读 · 0 评论 -
IIR滤波器设计基础及Matlab设计示例
目录1. 概要2. IIR 和 FIR 滤波器的定义3. IIR滤波器和FIR滤波器的优缺点对比4. 双二次(Biquad)IIR 滤波器5. IIR滤波器设计指标(specifications)5.1 滤波器的频率响应特性5.2 模拟滤波器类型5.3 IIR滤波器结构5.3.1 Direct Form IIR structure5.3.2 Direct Form I IIR structure5.3.3 Direct Form II IIR structure6. 基于Matlab的SOS IIR滤波器设原创 2022-06-21 21:59:23 · 17163 阅读 · 0 评论 -
Matlab: 传递函数的级联合成和分解
已知一个级联系统的各级的传递函数,如何求整个级联系统的传递函数呢?利用Matlab的tf()函数可以很简单地得到一个级联系统的传递函数,以下以一个简单的两级系统为例,直接看代码:...运行以上脚本可以得到如下结果,Matlab给出的分式表达式非常nice, user-friendly: 当然,以上是比较秀的写法,其实如上所示,级联系统的传递函数就是各级子系统的传递函数的乘积。......原创 2022-06-17 16:33:53 · 6008 阅读 · 1 评论 -
Simulink与MATLAB的接口方式
在Simulink建模仿真中,可以利用Matlab的接口提高建模仿真的灵活性和效率,包括从Matlab工作空间为Simulink模块设置参数,将仿真结果输出到Matlab工作空间,等等。本文对Simulink与MATLAB的几种常用的接口方式进行概要介绍。 ...原创 2022-06-15 21:51:11 · 7684 阅读 · 0 评论 -
Matlab: 文件和文件夹锁定问题及其解决
考虑如下这样的Matlab程序,先用addpath将simulink模型所在的文件夹加入路径,然后执行参数初始化,然后再用sim命令调用simulink模型进行仿真(这里仿真的具体内容不是要点,这里仅仅是借这个例子来说明问题)。 在模型调试过程中,在每次仿真后,有时会需要对当前仿真用到过的目录或者仿真生成的目录进行操作,比如说移动、更名或者删除等等。 然后我经常发现,有些目录无法进行移动、更名或者删除等操作,用clear命令、close命令等进行workspace清除也不解决问题。。。...原创 2022-06-11 21:17:24 · 2481 阅读 · 0 评论 -
Matlab: 多项式表示及其基本运算
Matlab用于动态系统建模、仿真与分析时,将会大量使用多项式。许多系统的模型描述(如系统的传递函数)都需要使用多项式,并在多项式描述的基础上对系统进行仿真分析。本文将概要性第介绍MATLAB中的多项式表示及其基本运算。可以说多项式的表示和处理构成了动态系统建模和分析的基础。......原创 2022-06-09 22:00:34 · 14414 阅读 · 4 评论 -
Matlab: tf2zp与tf2zpk的差异
tf2zp和tf2zpk都是用于由传递函数(Transfer Function)计算系统的零极点,但是它们之间有细微的差别。本文简单解释这种差异的来源以及使用上的注意点原创 2022-06-08 22:00:18 · 3219 阅读 · 0 评论 -
Matlab/Simulink:动态系统模型的表示及仿真分析基础
本文对Matlab/Simulink建模中常见的动态系统及其表示进行概要性的介绍。 按照动态系统是否有记忆可以分为无记忆系统和有记忆系统。 按照动态系统在时间域是连续的还是离散的可以分为连续时间系统(简称连续系统)和离散时间系统(简称离散系统)。如果其中既包含连续动态子系统也包含离散动态子系统的话,则可以称为混合时间系统(简称混合系统)。 按照系统是否满足线性性可以分为线性系统和非线性系统。 按照系统的行为是随时间变化的还是不随时间变化的可以分为时变系原创 2022-06-07 23:10:08 · 7241 阅读 · 0 评论 -
Matlab/Simulink Coder: 将子系统生成为独立的函数和文件
本实验利用Simulink Coder将系统模型中子系统生成为可以重复调用的独立的函数,这样能够使得基于模型的开发流程更加流畅高效。关于基于Simulink Coder自动生成代码的基本流程可以参考: Matlab/Simulink自动生成C代码实验(基于一个简单信号滤波例子) 软件环境:Windows10,Matlab2021b中文版 以下是为了本次实验而搭建的一个简单模型(具体做什么处理并不是要点,只是一个信号经过两路滤波,然后两路滤波结果相减得到输出而已)。原创 2022-06-04 22:12:00 · 2641 阅读 · 0 评论 -
Simulink模型参数初始化方法种种
汇总介绍simulink建模中各种参数初始化方法。1. 在模块属性中直接指定2. 从Matlab workspace获取初始化参数3. 利用InitFcn回调函数进行初始化4. 子系统的参数初始化4.1 子系统顶层的参数配置4.2 子系统内部的派生参数初始化计算4.3 参数映射关系原创 2022-06-02 10:33:29 · 21527 阅读 · 1 评论 -
Matlab/Simulink Embedded Coder一个非常迷幻的问题
在上一篇博客Matlab/Simulink自动生成C代码实验(基于一个简单信号滤波例子)中基于一个简单的信号滤波的例子做了利用Simulink Coder和Embedded Coder生成C代码的例子。基于这个实验结果,进一步对于实际项目开发中的simulink模型进行自动生成代码的实验,结果碰到了一个非常迷幻的问题。经过艰苦曲折的排查,最终发现一个令人啼笑皆非的原因。记录于此以为后来者参考。原创 2022-04-13 23:04:10 · 1938 阅读 · 0 评论 -
Matlab/Simulink自动生成C代码实验
本文从搭建一个simulink模型开始,到生成代码并进行生成的C模型与原simulink模型的一致性验证,走完一个最小完整流程。希望对基于simulink模型自动生成C代码的小伙伴们能有所帮助。原创 2022-03-31 14:48:33 · 16185 阅读 · 7 评论 -
Matlab Tips: 高效实用的快捷命令
本文介绍一些常用的Matlab快捷操作命令,掌握这些操作可以极大地提高使用Matlab时的效率。原创 2022-02-05 17:25:34 · 6131 阅读 · 2 评论 -
Matlab Tips: 如何在函数内部得到被调用时的输入变量名?
介绍利用matlab内置函数inputname()在函数内部得到函数被调用时被传入的输入变量名的方法和使用例原创 2021-10-27 13:59:21 · 1511 阅读 · 4 评论 -
基于matlab的传输函数特性分析
本文介绍基于matlab对给定传输函数进行特性分析的实验。 连续系统通常用S域传输函数来表示,与之对应的则是离散系统通常用Z域传输函数来表示。原创 2021-10-20 18:07:56 · 5487 阅读 · 13 评论 -
Matlab fftshift and ifftshift and some confusions
简要介绍Matlab中fftshift()和ifftshift()的异同点,以及非常容易混淆的两个问题的解释原创 2021-07-28 17:19:44 · 1530 阅读 · 0 评论 -
Matlab Tips: 结构体递归式打印--Dump matlab struct content recursively
Matlab有一个内置命令disp可以在命令行窗口显示结构体(struct)内容,但是有两个缺点:(1)不能递归地展示,即对于多层嵌套结构体,只能显示第一层的内容,不能显示内层结构体的内容;(2)不能打印到文件中去。这个不能满足有些特定场合的需要,所以自己写了一个函数用于以递归的方式打印结构体内容的函数。 function printStruct(st, fid, indent)%printStruct Print the content of input struct recur...原创 2021-06-29 15:37:35 · 1186 阅读 · 0 评论