您可以根据系统测量的输入和输出数据估计未知系统的传递函数。
在DSP系统工具箱中™, 您可以使用dsp。TransferFunctionEstimator
系统对象™ 在MATLAB中®和离散传递函数估计器Simulink中金宝app的块®.输入之间的关系x和输出Y模型采用线性、时不变的传递函数Txy. 传递函数是信号的交叉功率谱密度之比x和Y,Pyx的功率谱密度x,Pxx:
这个dsp。TransferFunctionEstimator
对象和离散传递函数估计器块使用韦尔奇平均周期图方法计算Pxx和Pxy. 有关此方法的详细信息,请参阅光谱分析.
一致性
相干性,或振幅平方相干性x和Y定义如下:
相干函数估计您可以预测的范围Y从…起x. 相干性的值在这个范围内0≤Cxy(F) ≤ 1.. 如果Cxy= 0,输入x和输出Y这些都是无关的。A.Cxy值大于0且小于1表示以下情况之一:
测量是有噪音的。
系统是非线性的。
输出Y是的函数x和其他投入。
线性系统的相干性表示输入在该频率下产生的输出信号功率的分数部分。对于特定频率,1 -Cxy是对输入没有贡献的输出的分数功率的估计。
当你设定输出一致性
性质dsp。TransferFunctionEstimator
到真的
时,对象计算输出相干性。在离散传递函数估计器块,要计算相干光谱,请选择输出幅度的平方相干估计复选框。
在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
对象估计。
要在Simulink中估计系统的传递函数,请使用金宝app离散传递函数估计器块该块实现韦尔奇平均修正周期图方法,并使用测量的输入和输出数据进行估计。
该系统由两个滤波器级级联而成:一个低通滤波器和一个并联的全极滤波器和全通滤波器。系统的输入是包含加性高斯白噪声的正弦波。噪声的平均值为零,标准偏差为0.1。估计器的输入是系统输入和系统输出。估计器的输出是系统的频率响应,这是复杂的。要提取此复杂估计的震级部分,请使用防抱死制动系统块为了将结果转换为dB,系统使用dB(1欧姆)块
打开并检查模型
要打开模型,请输入传递函数估计量
在MATLAB命令提示符中。
以下是模型中块的设置。
块 | 参数变化 | 区块的用途 |
---|---|---|
正弦波 |
|
频率为100 Hz的正弦信号 |
随机源 |
|
随机源块生成具有通过块对话框指定属性的随机噪声信号 |
低通滤波器 | 不变 | 低通滤波器 |
全极滤波器 | 不变 | 带系数的全极点滤波器[1 0.1] |
离散滤波器 |
|
带系数的全通滤波器[-1/sqrt(2)0.5] |
离散传递函数估计器 |
|
传递函数估计器 |
防抱死制动系统 | 不变 | 从传递函数估计器的输出中提取幅值信息 |
弗斯特阵列图块 | 点击看法:
|
显示了系统的幅值响应 |
第二个阵列图块 | 点击看法:
|
显示了相干性估计 |
默认情况下x数组图的-轴在样本中。要把这个轴转换成频率样本增量参数设置为Fs/1024
. 在本例中,此值为44100/1024
或43.0664
. 对于双面光谱X偏移参数必须–Fs/2
. 频率在该范围内变化[-Fs/2 Fs/2]
.在本例中,阵列图显示了单侧频谱。因此,X偏移设置为0。频率在范围内变化[0 Fs/2]
.
运行模型
第一个图显示了系统的幅值响应。第二个图显示了系统输入和输出之间的一致性估计。图中的连贯性在不同的范围内变化[0 1]
正如所料。