参数化建模
什么是参数化建模
参数化建模技术找到一个数学模型来描述信号的参数,系统或过程。这些技术使用已知的关于系统的信息来确定模型。对参数的建模应用程序包括语音和音乐合成、数据压缩、高分辨率谱估计、通讯、制造业、和模拟。
可用的参数化建模功能
工具箱参数建模功能操作与理性的传递函数模型。给予适当的信息未知系统(脉冲频率响应数据,或者输入和输出序列),这些函数的系数线性系统模型系统。
参数化建模功能的一个重要应用是在过滤器的设计有一个规定时间或频率响应。
这是一个总结在这个工具箱的参数化建模功能。
域 |
功能 |
描述 |
---|---|---|
时间 |
整机全极滤波器系数模型生成一个输入数据序列使用Levinson-Durbin算法。 |
|
整机全极滤波器系数模型生成一个输入数据序列的远期预测误差最小化。 |
||
整机全极滤波器系数模型生成一个输入数据序列通过最小化向前和向后的预测错误。 |
||
整机全极滤波器系数模型生成一个输入数据序列使用估计的自相关函数。 |
||
线性预测编码。整机全极递归滤波器的脉冲响应生成匹配一个给定的序列。 |
||
生成IIR滤波器的脉冲响应匹配一个给定的序列。 |
||
找到IIR滤波器的输出,给定一个指定的输入序列,序列匹配一个给定的输出。 |
||
频率 |
生成数字或模拟滤波器系数得到复杂的频率响应数据。 |
基于时域建模
的lpc的
,普龙尼
,stmcb
函数发现数字有理传递函数的系数接近给定时域脉冲响应。不同的算法复杂性和准确性产生的模型。
线性预测
线性预测模型假设每个输出信号的样本,x (k)
过去的一个线性组合n
输出(也就是说,它可以从这些线性预测的输出),和不同样本系数是常数:
一个n
整机全极模型阶的一个信号x
是
一个= lpc (x, n)
为了说明lpc的
,创建一个样本信号,整机全极滤波器的脉冲响应与加性白噪声:
x = impz (1、1 0.1 0.1 0.1 0.1, 10) + randn (10 - 1) / 10;
整机全极滤波器系数的四阶模型系统
一个= lpc (x, 4)
lpc的
第一次调用xcorr
找到一个相关函数的偏差估计x
,然后使用Levinson-Durbin递归实现的莱文森
函数,找到模型系数一个
。Levinson-Durbin递归是一个快速算法求解对称托普利兹线性方程组。lpc的
整个算法n
=4
是
r = xcorr (x);r(1:长度(x) 1) = [];%删除corr.消极落后一个= levinson (r, 4)
你可以用其他形式的线性预测系数假设通过估算不同的相关性莱文森
,如有偏见的相关性估计:
r = xcorr (x,“有偏见的”);r(1:长度(x) 1) = [];%删除corr.消极落后一个= levinson (r, 4)
普龙尼的方法(ARMA建模)
的普龙尼
使用指定数量的函数模型信号极点和零点。给定一个序列x
分子和分母的订单n
和米
,分别
[b] =普龙尼(x, n, m)
发现的分子和分母系数IIR滤波器的脉冲响应序列近似x
。
的普龙尼
函数实现中描述的方法[4]公园和Burrus。这种方法使用的协方差方法的一个变体AR建模发现分母系数一个
,然后发现分子系数b
导致滤波器的脉冲响应的完全匹配n
+1
的样本x
。过滤器不一定是稳定的,但它可以完全恢复系数如果数据序列确实是一个自回归移动平均(ARMA)正确的顺序的过程。
请注意
的函数普龙尼
和stmcb
(下)描述更准确地描述为ARX模型在系统识别术语。ARMA建模假设噪声只在输入,而ARX假设外部输入。普龙尼
和stmcb
知道它是输入信号:一个脉冲普龙尼
是任意的,stmcb
。
一个模型的测试序列x
(从早些时候lpc的
使用一个三阶IIR滤波器的例子)
[b] =普龙尼(x, 3, 3)
的impz
命令显示了这种滤波器的脉冲响应匹配原始序列:
格式长[x impz (b, a, 10))
注意,前四个样品完全匹配。的例子完全恢复,恢复系数的巴特沃斯滤波器的脉冲响应:
[b] =黄油(4。2);h = impz (b, a, 26);(bb, aa) =普龙尼(h, 4, 4);
试试这个例子;你会发现bb
和aa
匹配最初的滤波器系数的公差内10-13年。
Steiglitz-McBride方法(ARMA建模)
的stmcb
函数的系数决定了系统b(z)/一个(z)给出一个近似的脉冲响应x
,以及所需的数量的零和波兰。这个函数确定基于输入和输出序列的一个未知的系统,描述系统的行为,或只是系统的脉冲响应。在默认模式中,stmcb
就像普龙尼
。
[b] = stmcb (x, 3, 3)
stmcb
还发现系统匹配给定的输入和输出序列:
y =过滤器(1,[1],x);%创建一个输出信号。[b] = stmcb (y、x 0,1)
在这个例子中,stmcb
正确识别系统用于创建y
从x
。
Steiglitz-McBride方法的快速迭代算法,解决了分子和分母系数同时为了最小化信号滤波器输出之间的误差和给定的输出信号。通常这个算法收敛迅速,但可能不收敛如果模型太大。至于普龙尼
,stmcb
的不一定导致滤波器由于其稳定准确的建模方法。
stmcb
提供了几个重要算法控制参数;如果你修改这些参数难以建模的数据。改变默认的迭代次数5提供一个初始估计分母系数:
n = 10;%的迭代次数一个= lpc (x, 3);%初始估计分母[b] = stmcb (x, 3, 3, n, a);
整机全极模型创建的函数使用一个普龙尼
作为一个初始估计当你不提供一个你自己的。
比较函数lpc的
,普龙尼
,stmcb
在每种情况下,计算信号的误差:
a1 = lpc (x, 3);(b2 a2) =普龙尼(x 3 3);(b3, a3) = stmcb (x 3 3);[x-impz (1 a1 10) x-impz (b2, a2, 10) x-impz (b3, a3, 10))
比较建模能力对于一个给定的顺序检索模型,最后的结果表明,对于本例,stmcb
表现最好,其次是普龙尼
,然后lpc的
。这相对性能是典型的建模功能。
基于频域建模
的invfreqs
和invfreqz
功能实现的逆操作频率
和freqz
;他们发现一个指定顺序的模拟或数字传递函数相匹配一个给定的复杂的频率响应。下面的例子演示invfreqz
,也适用于讨论invfreqs
。
恢复原来的滤波器系数从一个简单的数字滤波器的频率响应:
[b] =黄油(0.4 4)%设计巴特沃斯低通滤波器[h, w] = freqz (b, a, 64);%计算频率响应(b4, a4) = invfreqz (h, w, 4, 4)%模型:n = 4, m = 4
向量的频率w
在rad /单位样本,不需要的频率是等距的。invfreqz
发现一个过滤器的任何顺序适合频率数据;一个三阶的例子是
(b4, a4) = invfreqz (h, w, 3, 3)%发现三阶IIR
这两个invfreqs
和invfreqz
设计过滤器与真正的系数;对于一个数据点积极的频率f
,函数在两个频率响应f
和- f
。
默认情况下invfreqz
使用一个方程误差法确定最佳模型的数据。这个发现b和一个在
通过创建一个线性方程组,用MATLAB解决它们®\
操作符。在这里一个(w(k)),B(w(k))的傅里叶变换多项式一个
和b
分别在频率w(k),n是频率点的数量(的长度吗h
和w
)。wt(k)重量误差相对误差在不同的频率。的语法
invfreqz (h, w, n, m, wt)
包括一个权重向量。在这种模式下,过滤器所导致的invfreqz
不保证是稳定的。
invfreqz
提供了一个优越的(“输出误差”)算法,解决了直接的问题最小化之间的加权和的平方误差的实际频率响应点和期望的反应
使用该算法,指定一个参数后的迭代计算权向量参数:
wt = 1(大小(w));%创建单元权重向量[b30,故事本来]= invfreqz (h, w, 3, 3、wt、30)% 30迭代
结果过滤总是稳定的。
图形化的第一和第二算法的比较结果与FVTool最初的巴特沃斯滤波器(并选择大小和相位响应):
fvtool (b, a, b4, a4 b30,故事本来)
为了验证符合数值的优越性,类型
总和(abs (h-freqz (b4, a4, w)) ^ 2)。%的总误差,算法1所示总和(abs (h-freqz (b30故事本来w)) ^ 2)。%的总误差,算法2