介绍系统工具箱
本周,我将与我的同事Ken Karnofsky合作,介绍MATLAB R2011a中的另一个重大变化。
男人:Ken,这个大变化是什么?
肯:在MATLAB R2011a中,不仅产品的代码生成发生了变化。下载188bet金宝搏设计信号下载188bet金宝搏处理算法的产品也进行了重组。以下是正在发生的可视化总结:
男人:什么是系统工具箱?
肯:去年,我们在几个区块集中引入了一项新技术系统对象.系统对象是为MATLAB预先定义的算法,具有以前仅对Simulink用户可用的功能,如快速流处理、隐式状态处理、设计选项(如定点)和代码生成支持。金宝app金宝app
通过系统工具箱,您可以设计适合于快速模拟、实时原型和嵌入式实现的信号处理算法。任何为代码生成而设计的MATLAB算法,包括System对象的使用,都可以在Simulink中重用金宝appMATLAB功能块.
男人:听起来很酷。让我们看看如何使用LMS自适应滤波器识别系统,并以3种不同的方式实现它:
MATLAB脚本
在这个例子中,我创建了一个dsp。LMSFilter对象和一个dsp。DigitalFilter对象。然后我使用一步方法使用每个对象定义的算法来处理数据。在一个循环中执行步骤10次类似于在Simulink模型中运行10个时间步骤。金宝app
%创建自适应过滤器对象高级别= dsp。LMSFilter(11,“StepSize”, 0.01);%创建要识别的系统…一个冷杉过滤器。hfilt = dsp。DigitalFilter (“TransferFunction”,“冷杉(0)”,...“分子”二十五分,fir1(10日));%运行10次过滤器自适应为i = 1:10%输入系统x = randn (100 1);我们测量系统的一些输出,包括噪声D = step(hfilt, x) + 0.01*randn(100,1); / /指定路径现在让我们运行我们的自适应过滤器[y,~,w] = step(hlms, x, d);%比较测量和识别的输出diff (i) =√总和(y-d)。^ 2));结束
写完这个脚本后,我可以看到使用System对象的优点.初始化对象后,我所要做的就是在循环中调用step方法来处理数据。步进方法的实现非常高效,因为它不包括MATLAB函数编程通常需要的相同开销。
如果您的目标是针对嵌入式处理器,您可以使用MATLAB编码器并直接从该算法生成C代码。如果你想把这个算法集成到Simulink模型中…金宝app
MATLAB功能块
利用MATLAB函数块和系统对象,很容易将在MATLAB中创建的算法引入到Simulink中。金宝app为了实现相同的自适应过滤器示例,我做了以下模型:
然后在MATLAB函数块中定义FIR滤波器和自适应滤波器。我在模型的第一步初始化System对象并声明它们为持续的这样它们就可以在每个时间步之间保持状态。
当然,在一个MATLAB函数块内组合许多System对象并创建更复杂的组件是可能的。
金宝app仿真软件模块
对于那些喜欢只连接块而不输入代码的用户,不要担心!系统工具箱包括准备使用的Simulink库。金宝appSimulink库中的块在内部使用相金宝app同的System对象。对于这个例子,这里是我的模型如何实现使用块从DSP系统工具箱:
现在轮到你了
你打算在MATLAB代码中尝试新的System对象吗?你在Simulink模型中使用MATLAB算法吗?金宝app请留下留言让我们知道这里的评论.
评论
要留下评论,请点击在这里登录到您的MathWorks帐户或创建一个新帐户。