主要内容

估算未知系统的传递函数

您可以根据系统的测量输入和输出数据估计未知系统的传递函数。

在DSP系统工具箱™,您可以估计系统的传递函数使用dsp。TransferFunctionEstimator系统对象™在MATLAB®离散传递函数估计Simulink中金宝app的块®.输入之间的关系x和输出y是由线性定常传递函数建模的吗Txy.传递函数是的交叉功率谱密度之比x而且yPyx的功率谱密度xPxx

T x y f P y x f P x x f

dsp。TransferFunctionEstimator对象和离散传递函数估计块采用韦尔奇平均周期图方法计算Pxx而且Pxy.有关此方法的详细信息,请参见光谱分析

一致性

相干性,或者说平方相干性x而且y定义为:

C x y f | P x y | 2 P x x * P y y

相干函数估计你可以预测的范围yx.相干性值在范围内0≤Cxyf)≤1.如果Cxy= 0,输入x和输出y是不相关的。一个Cxy值大于0小于1表示下列之一:

  • 测量是有噪声的。

  • 系统是非线性的。

  • 输出y是一个函数x以及其他投入。

线性系统的相干性表示输入在该频率下产生的输出信号功率的小数部分。对于一个特定的频率,1 -Cxy是输入不影响输出的分数次方的估计值。

当你设置OutputCoherence的属性dsp。TransferFunctionEstimator真正的时,对象计算输出相干性。在离散传递函数估计块,计算相干谱,选择输出幅度平方相干估计复选框。

在MATLAB中估计传递函数

要估计一个系统的传递函数在MATLAB™,使用dsp。TransferFunctionEstimator系统对象™。该对象实现了韦尔奇平均修正周期图方法,并利用实测的输入输出数据进行估计。

初始化系统

该系统由两个滤波器级联组成:dsp。LowpassFilter和dsp的并行连接。AllpassFilter和dsp.AllpoleFilter。

allpole = dsp.AllpoleFilter;allpass = dsp.AllpassFilter;lpfilter = dsp.LowpassFilter;

指定信号源

系统的输入是一个频率为100hz的正弦波。采样频率为44.1 kHz。

sin = dsp。SineWave (“频率”, 100,“SampleRate”, 44100,...“SamplesPerFrame”, 1024);

创建传递函数估计器

要估计系统的传递函数,请创建dsp。TransferFunctionEstimator系统对象。

Tfe = dsp。TransferFunctionEstimator(“FrequencyRange”“单向的”...“OutputCoherence”,真正的);

创建阵列图

初始化两个dsp。一个rrayPlot对象:一个用于显示系统的幅度响应,另一个用于显示输入和输出之间的相干估计。

Tfeplotter = dsp。ArrayPlot (“PlotType”“行”...“包含”的频率(赫兹)...“YLabel”“震级响应(dB)”...“YLimits”20 [-120],...“XOffset”0,...“包含”的频率(赫兹)...“标题”“系统传递函数”...“SampleIncrement”, 44100/1024);相干绘图仪= dsp。ArrayPlot (“PlotType”“行”...“YLimits”, 1.2 [0],...“YLabel”“一致性”...“XOffset”0,...“包含”的频率(赫兹)...“标题”的一致性估计...“SampleIncrement”, 44100/1024);

默认情况下,数组图的x轴在样本中。属性的“SampleIncrement”属性可将该轴转换为频率dsp。一个rrayPlot对象到Fs/1024。在本例中,该值为44100/1024或43.0664。对于双面谱,XOffset的属性dsp。一个rrayPlotobject必须为[-Fs/2]。频率范围为[-Fs/ 2fs /2]。在这个例子中,数组图显示了一个单向频谱。因此,设置XOffset为0。频率在[0 Fs/2]范围内变化。

传递函数的估计

传递函数估计器接受两个信号:两级滤波器的输入信号和两级滤波器的输出信号。滤波器的输入是包含加性高斯白噪声的正弦波。噪声的均值为0,标准差为0.1。估计器估计两级滤波器的传递函数。估计器的输出是滤波器的频率响应,它是复杂的。要提取这个复杂估计的幅度部分,请使用abs函数。要将结果转换为dB,应用20*log10(幅度)的转换因子。

Iter = 1:1000 input = sin () + .1*randn(1024,1);Lpfout = lpfilter(input);Allpoleout = allpole(lpfout);Allpassout = allpass(lpfout);输出= allpoleout + allpassout;[tfeoutput,outputcoh] = tfe(输入,输出);tfeplotter (20 * log10 (abs (tfeoutput)));coherenceplotter (outputcoh);结束

第一个图显示了系统的幅度响应。第二个图显示了系统输入和输出之间的相干性估计。情节的连贯性如预期的那样在范围[0 1]内变化。

使用fvtool的滤波器的幅度响应

该滤波器由两个滤波器级联组成——dsp。LowpassFilter和dsp的并行连接。AllpassFilter和dsp.AllpoleFilter。所有筛选器对象都在默认状态下使用。利用滤波器系数,导出系统传递函数,并用频率绘制频率响应图。下面是[Num] [Den]格式的系数:

  • 全极滤波器- [1 0][1 0.1]

  • All pass filter -[0.5 -1/√(2)1][1 -1/√(2)0.5]

  • 低通滤波器-使用以下命令确定系数:

lpf = dsp.LowpassFilter;系数= coeffs(lpf);

系数。分子gives the coefficients in an array format. The mathematical derivation of the overall system transfer function is not shown here. Once you derive the transfer function, run fvtool and you can see the frequency response below:

fvtool显示的震级响应与dsp。TransferFunctionEstimator对象的估计。

的传递函数金宝app

要在Simulink中估计系统的传递函数,请使用金宝app离散传递函数估计块。该区块实现了韦尔奇平均修正周期图方法,并使用测量的输入和输出数据进行估计。

该系统由两个滤波器级联组成:一个低通滤波器和一个全极滤波器和全通滤波器并联。系统的输入是包含加性高斯白噪声的正弦波。噪声的均值为0,标准差为0.1。估计器的输入是系统输入和系统输出。估计器的输出是系统的频率响应,系统的频率响应是复杂的。要提取此复杂估计的幅度部分,请使用腹肌块。为了将结果转换为dB,系统使用adB(1欧姆)块。

传递函数估计模型的快照。源块在左边,后面是滤波器级联块、传递函数估计器、Abs块、dB转换块和两个数组Plot块。

打开并检查模型

要打开模型,输入ex_transfer_function_estimator在MATLAB命令提示符中。

下面是模型中块的设置。

参数的变化 积木的用途
正弦波
  • 样品时间1/44100

  • 每帧样本1024

频率为100赫兹的正弦波信号

随机源
  • 源类型高斯

  • 方差到0.01

  • 样品时间到1/44100

  • 每帧样本到1024年

随机源块生成一个随机噪声信号,其属性通过块对话框指定
低通滤波器 没有变化 低通滤波器
Allpole过滤器 没有变化 带系数的全极滤波器0.1 [1]
离散滤波器
  • 分子[0.5 -1/根号(2)1]

  • 分母[1 -1/根号(2)0.5]

带系数的全通滤波器(1 /√(2)0.5]
离散传递函数估计
  • 频率范围片面的

  • 谱平均数到8

传递函数估计器
腹肌 没有变化 从传递函数估计器的输出中提取幅值信息
第一个数组的阴谋

点击视图

  • 选择风格并设置情节类型

  • 选择配置属性:从主要选项卡,设置样本增量44100/1024而且x0.在显示选项卡,指定标题作为系统的震级响应,单位为dBX-label作为频率(赫兹),Y-label作为振幅(dB)

显示系统的幅值响应
第二个数组的阴谋

点击视图

  • 选择风格并设置情节类型

  • 选择配置属性:从主要选项卡,设置样本增量44100/1024而且x0.在显示选项卡,指定标题作为一致性估计X-label作为频率(赫兹),Y-label作为振幅

显示了相干性估计

默认情况下,x-轴的数组绘图是在样本。要将此轴转换为频率,请使用样本增量参数设置为Fs / 1024.在本例中,该值为44100/1024,或43.0664.对于双面谱,x参数必须为- f / 2.频率在范围内变化[Fs / Fs / 2).在这个例子中,数组图显示了一个单向频谱。因此,x设置为0。频率在范围内变化(0 f / 2)

运行模型

两个Array Plot块的输出彼此相邻。左边的第一个阵列图块显示系统的震级响应,单位为dB。右边的第二个阵列图块显示了相干估计。两幅图的x轴都以Hz为单位显示频率,范围从0到22500 Hz。

第一个图显示了系统的幅度响应。第二个图显示了系统输入和输出之间的相干性估计。情节的连贯性因范围而异[0 1]像预期的那样。

相关的话题