主要内容

未知系统传递函数的估计

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

在DSP系统工具箱中™, 您可以使用dsp。TransferFunctionEstimator系统对象™ 在MATLAB中®离散传递函数估计器Simulink中金宝app的块®.输入之间的关系x和输出Y模型采用线性、时不变的传递函数Txy. 传递函数是信号的交叉功率谱密度之比xY,Pyx的功率谱密度x,Pxx:

T x Y ( F ) = P Y x ( F ) P x x ( F )

这个dsp。TransferFunctionEstimator对象和离散传递函数估计器块使用韦尔奇平均周期图方法计算PxxPxy. 有关此方法的详细信息,请参阅光谱分析

一致性

相干性,或振幅平方相干性xY定义如下:

C x Y ( F ) = | P x Y | 2. P x x * P Y Y

相干函数估计您可以预测的范围Y从…起x. 相干性的值在这个范围内0≤Cxy(F) ≤ 1.. 如果Cxy= 0,输入x和输出Y这些都是无关的。A.Cxy值大于0且小于1表示以下情况之一:

  • 测量是有噪音的。

  • 系统是非线性的。

  • 输出Y是的函数x和其他投入。

线性系统的相干性表示输入在该频率下产生的输出信号功率的分数部分。对于特定频率,1 -Cxy是对输入没有贡献的输出的分数功率的估计。

当你设定输出一致性性质dsp。TransferFunctionEstimator真的时,对象计算输出相干性。在离散传递函数估计器块,要计算相干光谱,请选择输出幅度的平方相干估计复选框。

MATLAB中传递函数的估计

在MATLAB中估计系统的传递函数™, 使用dsp。TransferFunctionEstimator系统对象™. 对象实现Welch的平均修正周期图方法,并使用测量的输入和输出数据进行估计。

初始化系统

该系统由两级滤波器级联而成:dsp.LowpassFilter和dsp.AllpassFilter与dsp.AllpoleFilter的并联。

allpole=dsp.AllpoleFilter;全通=dsp.AllpassFilter;lpfilter=dsp.LowpassFilter;

指定信号源

系统的输入为频率为100 Hz的正弦波。采样频率为44.1 kHz。

正弦= dsp。SineWave (“频率”,100,“采样器”,44100,...“样品性能框架”,1024);

创建传递函数估计器

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

tfe=dsp.TransferFunctionEstimator(“频率范围”,“单向的”,...“输出一致性”,对);

创建阵列图

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

tfeplotter=dsp.ArrayPlot(“打印类型”,“线路”,...“XLabel”,‘频率(Hz)’,...“YLabel”,‘幅值响应(dB)’,...“YLimits”,[-120 20],...“XOffset”,0,...“XLabel”,‘频率(Hz)’,...“头衔”,“系统传递函数”,...“采样增量”,44100/1024); 相干图=dsp.ArrayPlot(“打印类型”,“线路”,...“YLimits”,[0 1.2],...“YLabel”,“连贯性”,...“XOffset”,0,...“XLabel”,‘频率(Hz)’,...“头衔”,“一致性估计”,...“采样增量”,44100/1024);

默认情况下,阵列打印的x轴以样本为单位。要将此轴转换为频率,请设置dsp.ArrayPlot对象。在本例中,该值为44100/1024,或43.0664。对于双面光谱X偏移财产的dsp.ArrayPlot对象必须为[-Fs/2]。频率在[-Fs/2 Fs/2]范围内变化。在本例中,阵列图显示了单侧光谱。因此,设置X偏移至0。频率在[0 Fs/2]范围内变化。

估计传递函数

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

对于Iter=1:1000输入=sine()+.1*randn(1024,1);lpfout=lpfilter(输入);allpoleout=allpole(lpfout);allpassout=所有通过(lpfout);输出=全部输出+全部输出[TFOUTPUT,outputcoh]=tfe(输入,输出);tfeplotter(20*log10(abs(tfoutput));相干图(outputcoh);结束

第一个图显示了系统的幅值响应。第二个图显示了系统输入和输出之间的一致性估计。图中的一致性在[0 1]范围内变化,与预期一致。

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

该滤波器由两个滤波器级级联而成,即dsp.LowpassFilter和dsp.AllpassFilter与dsp.AllpoleFilter并联。所有过滤器对象都在其默认状态下使用。使用滤波器系数,导出系统传递函数,并使用freqz绘制频率响应图。以下是[Num][Den]格式的系数:

  • 全极点滤波器-[10][10.1]

  • 全通滤波器-[0.5-1/sqrt(2)1][1-1/sqrt(2)0.5]

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

lpf=dsp.LowpassFilter;系数=系数(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.1。估计器的输入是系统输入和系统输出。估计器的输出是系统的频率响应,这是复杂的。要提取此复杂估计的震级部分,请使用防抱死制动系统块为了将结果转换为dB,系统使用dB(1欧姆)

打开并检查模型

要打开模型,请输入传递函数估计量在MATLAB命令提示符中。

以下是模型中块的设置。

参数变化 区块的用途
正弦波
  • 采样时间1/44100

  • 每帧采样数1024

频率为100 Hz的正弦信号

随机源
  • 源类型高斯分布

  • 方差至0.01

  • 采样时间至1/44100

  • 每帧采样数到1024

随机源块生成具有通过块对话框指定属性的随机噪声信号
低通滤波器 不变 低通滤波器
全极滤波器 不变 带系数的全极点滤波器[1 0.1]
离散滤波器
  • 分子[0.5-1/sqrt(2)1]

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

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

  • 光谱平均数到8

传递函数估计器
防抱死制动系统 不变 从传递函数估计器的输出中提取幅值信息
弗斯特阵列图

点击看法:

  • 挑选风格设定绘图类型线

  • 挑选配置属性:从主要选项卡,设置样本增量44100/1024X偏移0. 在展示选项卡,指定标题作为系统的幅值响应(dB),X标签作为频率(Hz),及Y标签作为振幅(dB)

显示了系统的幅值响应
第二个阵列图

点击看法:

  • 挑选风格设定绘图类型线

  • 挑选配置属性:从主要选项卡,设置样本增量44100/1024X偏移0. 在展示选项卡,指定标题作为相干估计,X标签作为频率(Hz),及Y标签作为振幅

显示了相干性估计

默认情况下x数组图的-轴在样本中。要把这个轴转换成频率样本增量参数设置为Fs/1024. 在本例中,此值为44100/102443.0664. 对于双面光谱X偏移参数必须–Fs/2. 频率在该范围内变化[-Fs/2 Fs/2].在本例中,阵列图显示了单侧频谱。因此,X偏移设置为0。频率在范围内变化[0 Fs/2]

运行模型

第一个图显示了系统的幅值响应。第二个图显示了系统输入和输出之间的一致性估计。图中的连贯性在不同的范围内变化[0 1]正如所料。

相关的话题