主要内容

系统设计在MATLAB使用系统对象

系统设计,在MATLAB仿真

系统对象允许您设计和模拟系统在MATLAB®。你使用MATLAB系统对象如这个图所示。

  1. 创建单个组件——创建系统对象在你的系统中使用。创建单个组件。除了系统工具箱提供的系统对象,您还可以创建自己的系统对象。看到创建系统对象

  2. 配置组件——如有必要,更改对象的属性值来建模您的特定系统。所有系统对象™属性有默认值,您可以使用不改变它们。看到配置组件

  3. 将组件组装成系统——编写MATLAB程序,包括那些系统对象,他们使用MATLAB变量作为输入和输出连接到模拟系统。看到连接系统对象

  4. 你的系统运行——运行您的程序。您可以更改您的系统运行时可调特性。看到你的系统运行重新配置对象

创建单个组件

本节中的示例展示了如何使用预定义的系统对象的软件。如果你使用一个函数来创建和使用一个系统对象,指定对象创建使用条件的代码。Conditionalizing建立防止错误,如果函数在一个循环。您还可以创建自己的系统对象,明白了创建系统对象

本节将展示如何设置您的系统使用预定义组件从DSP系统工具箱™和音频工具箱™:

  • dsp.AudioFileReader——读文件的音频数据

  • dsp.FIRFilter——过滤音频数据

  • audioDeviceWriter——播放音频数据过滤

首先,创建组件对象,使用默认的属性设置。

audioIn = dsp.AudioFileReader;filtLP = dsp.FIRFilter;audioOut = audioDeviceWriter;

配置组件

当配置组件

如果你不设置对象的属性,当你创建它并不想使用默认值,您必须显式地设置这些属性。一些属性允许您更改您的系统运行时他们的价值观。看到重新配置对象获取信息。

大多数属性是相互独立的。然而,一些系统对象属性启用或禁用另一个属性或限制另一个属性的值。为了避免错误或警告,您之前应该设置控制属性设置相关的属性。

显示组件属性值

显示当前对象的属性值,在命令行类型对象的处理名称(如audioIn)。显示一个特定属性的值,类型objecthandle.propertyname(如audioIn.FileName)。

配置组件属性值

本节展示如何配置系统的组件通过设置组件对象的属性。

使用这个过程如果你已经创建了组件分开配置它们。您还可以创建和配置您的组件同时,描述在后面的例子。

文件读者对象,指定文件的读取和设置输出数据类型。

分子过滤器对象,指定过滤器使用fir1函数系数,它指定低通滤波器的顺序和截止频率。

音频设备的作家对象,指定采样率。在这种情况下,使用相同的采样率作为输入数据。

audioIn。文件名=“speech_dft_8kHz.wav”;audioIn。OutputDataType =“单身”;filtLP。分子= fir1(160 .15点);audioOut。SampleRate = audioIn.SampleRate;

创建和配置组件在同一时间

这个例子显示了如何创建您的系统组件和配置所需的属性对象在同一时间。指定每个属性的名称,值参数。

创建文件的读者对象,指定文件读取和设置输出数据类型。

audioIn = dsp.AudioFileReader (“speech_dft_8kHz.wav”,“OutputDataType”,“单身”);

创建过滤器对象并指定过滤器使用fir1功能分子。指定截止频率的低通滤波器秩序和fir1函数。

filtLP = dsp.FIRFilter (“分子”fir1(160 .15点));

创建音频播放器对象并设置采样率同样的速度作为输入数据。

audioOut = audioDeviceWriter (“SampleRate”,audioIn.SampleRate);

将组件组装成系统

连接系统对象

后你确定你所需要的组件,创建和配置您的系统对象,组装系统。使用MATLAB系统对象与其他变量,并将它们包括在MATLAB代码。你可以通过MATLAB变量的系统对象。

使用系统对象和使用函数之间的主要区别是,系统对象使用一个两步过程。首先创建对象并设置其参数,然后运行对象。运行对象初始化和控制系统的数据流和状态管理。你通常在代码调用一个系统对象循环。

你使用一个对象的输出作为输入到另一个对象。对于某些系统对象,您可以使用这些对象的属性来改变输入或输出。验证正在使用适当数量的输入和输出,您可以使用输入参数个数nargout在任何系统对象。所有可用的系统对象功能的更多信息,请参阅系统对象的功能

连接组件系统

本节将展示如何连接的组件一起阅读,过滤和文件的音频数据。while循环使用结束函数来通读整个文件。

~结束(audioIn)音频= audioIn ();%读取音频源文件y = filtLP(音频);%过滤数据audioOut (y);%的过滤数据结束

你的系统运行

运行您的代码可以通过直接输入命令行或者运行一个包含程序文件。当您运行您的系统的代码、数据处理通过你的对象。

你不能改变你的系统运行时

第一次调用一个系统对象初始化和运行对象。当一个系统对象已经开始处理数据,你无法改变nontunable属性。

根据系统对象的不同,其他规格也可以限制:

  • 输入的大小

  • 输入的复杂性

  • 输入数据类型

  • 可调属性的数据类型

  • 离散状态数据类型

如果系统对象作者限制这些规范,你得到一个错误,如果你试图改变他们在系统对象使用。

重新配置对象

改变属性

当一个系统对象开始处理数据,你无法改变nontunable属性。您可以使用isLocked在任何系统对象来验证是否处理数据对象。当处理完成,可以使用释放函数释放资源,允许更改nontunable属性。

一些对象属性可调,这使您能够改变他们即使使用的对象。大多数系统nontunable对象属性。指的是对象的引用页确定单个属性是可调的。

改变输入复杂、尺寸或数据类型

在对象使用,称为算法之后,一些系统对象不允许输入的变化复杂性,大小或数据类型。如果系统对象限制这些规范,您可以调用释放改变这些规范。调用释放也重置系统对象的其他方面,如状态和离散状态。

改变一个系统可调特性

这个例子展示了如何改变过滤器类型一个高通滤波器作为运行的代码修改分子过滤器对象的属性。更改生效下次调用对象。

重置(audioIn);%重置音频文件Wn = (0.05, 0.1, 0.15, 0.2);x = 1:4000 Wn_X =装天花板(x / 1000);filtLP。分子= fir1 (Wn (Wn_X), 160年“高”);音频= audioIn ();%读取音频源文件y = filtLP(音频);%过滤数据audioOut (y);%的过滤数据结束