音频进阶学习十三——Z变换二(有理z变换、稳定性与反变换)

文章目录

  • 前言
  • 一、有理Z变换
    • 1.定义
    • 2.作用
    • 3.LTI系统的传递函数
      • 1)传递函数的定义
      • 2)差分方程转换传递函数
  • 二、极点和零点
    • 1.有理分式的极点和零点
    • 2.稳定性
    • 实例
  • 二、逆Z变换
    • 1.观察法
    • 2.部分分式展开法
      • 1)定义
      • 2)举例
    • 3.幂级数法/长除法
      • 1)定义
      • 2)举例
    • 4.围线积分法
      • 1)定义
      • 2)举例
  • 总结


前言

在上一篇文章种音频进阶学习十二——Z变换一(Z变换、收敛域、性质与定理)中,我们介绍了Z变换的公式,并对公式进行了解释,以及Z变换中 z z z的理解。同时介绍了什么是收敛域,以及Z变换的性质和定理。

在对Z变换中 z z z的理解解释时,曾说过傅里叶变换得到的是频域,而Z变换得到的是Z域。频域主要用于分析信号的频率特性和系统的频率响应,而Z域不仅仅可以帮助分析系统的频率响应,还能更好地处理系统的稳定性、收敛性等问题

对于收敛性上一篇文章中已经介绍过,本篇文章中将着重介绍Z变换如何分析系统的稳定性和如何求反变换。

|版本声明:山河君,未经博主允许,禁止转载


一、有理Z变换

1.定义

有理Z变换指的是是指一个Z变换,其中分子和分母都是有理函数,也就是说,分子和分母是以Z的多项式形式表示的。

在形式上,对于一个离散时间信号 x [ n ] x[n] x[n],它的Z变换 X ( z ) X(z) X(z)可以写作为:
X ( z ) = P ( z ) Q ( z ) X(z)=\frac{P(z)}{Q(z)} X(z)=Q(z)P(z)
其中, P ( z ) , Q ( z ) P(z),Q(z) P(z),Q(z)都是关于 z z z的多项式,如:
P ( z ) = a 0 + a 1 z − 1 + a 2 z − 2 + . . . + a m z − m Q ( z ) = b 0 + b 1 z − 1 + b 2 z − 2 + . . . + b n z − n P(z)=a_0+a_1z^{-1}+a_2z^{-2}+...+a_mz^{-m}\\Q(z)=b_0+b_1z^{-1}+b_2z^{-2}+...+b_nz^{-n} P(z)=a0+a1z1+a2z2+...+amzmQ(z)=b0+b1z1+b2z2+...+bnzn
在这个定义下,分子和分母的次数(即最高次幂的系数)可以不同,但它们都只含有有限个项。如果 Q ( z ) Q(z) Q(z)是零多项式(即常数),则它变成了一个常数,表达式就是单个多项式;如果 Q ( z ) Q(z) Q(z) P ( z ) P(z) P(z)具有较高的次数,则函数的行为更为复杂。

2.作用

  • 通过有理Z变换可以分析离散时间系统的稳定性、频率响应、极零位置等特性
  • 可以设计各种数字滤波器,如低通、高通、带通等
  • 长见于LTI系统,可以对于差分方程进行求解
  • 可以用部分分式分解等方法将其分解成更简单的形式,这对求解 Z变换的逆变换非常有帮助。

3.LTI系统的传递函数

1)传递函数的定义

在 z变换中,传递函数通常指的是描述离散时间线性系统输入和输出之间关系的数学表达式。它是系统在z域(离散时间复频域)中的频率响应的描述。对于一个LTI系统,传递函数 H ( z ) H(z) H(z)表示如下:
H ( z ) = Y ( z ) X ( z ) H(z)=\frac{Y(z)}{X(z)} H(z)=X(z)Y(z)

2)差分方程转换传递函数

在音频进阶学习六——递归/非递归离散时间系统与差分方程中,我们得到了LTI系统的差分方程,如下:
∑ k = 0 N a k y [ n − k ] = ∑ i = 0 M b i x [ n − i ] \sum_{k=0}^Na_ky[n-k] = \sum_{i = 0}^M b_ix[n-i] k=0Naky[nk]=i=0Mbix[ni]

a 0 y [ n ] + a 1 y [ n − 1 ] + . . . + a N y [ n − N ] = b 0 x [ n ] + b 1 x [ n − 1 ] + . . . + b M x [ n − M ] a_0y[n]+a_1y[n-1]+...+a_Ny[n-N] = b_0x[n]+b_1x[n-1]+...+b_Mx[n-M] a0y[n]+a1y[n1]+...+aNy[nN]=b0x[n]+b1x[n1]+...+bMx[nM]
通过上一篇文章中所说Z变换的移位性质 Z ( x [ n − k ] ) = z − k X ( z ) Z(x[n-k])=z^{-k}X(z) Z(x[nk])=zkX(z),可知
Z ( a 0 y [ n ] ) = a 0 Y ( z ) = > Z ( a 1 y [ n − 1 ] ) = a 1 z − 1 Y ( z ) Z ( b 0 x [ n ] ) = b 0 X ( z ) = > Z ( b 1 x [ n − 1 ] ) = b 1 z − 1 X ( z ) Z(a_0y[n])=a_0Y(z)=>Z(a_1y[n-1])=a_1z^{-1}Y(z)\\Z(b_0x[n])=b_0X(z)=>Z(b_1x[n-1])=b_1z^{-1}X(z) Z(a0y[n])=a0Y(z)=>Z(a1y[n1])=a1z1Y(z)Z(b0x[n])=b0X(z)=>Z(b1x[n1])=b1z1X(z)
所以差分方程可以写作为
a 0 Y ( z ) + a 1 z − 1 Y ( z ) + . . . + a N z − N Y ( z ) = b 0 X ( z ) + b 1 z − 1 X ( z ) + . . . + b M z − M X ( z ) a_0Y(z)+a_1z^{-1}Y(z)+...+a_Nz^{-N}Y(z) = b_0X(z)+b_1z^{-1}X(z)+...+b_Mz^{-M}X(z) a0Y(z)+a1z1Y(z)+...+aNzNY(z)=b0X(z)+b1z1X(z)+...+bMzMX(z)
我们说在Z变换中,LTI的传递函数指的是描述离散时间线性系统输入和输出之间关系的数学表达式。所以它实际上描述的是
H ( z ) = Y ( z ) X ( z ) = a 0 + a 1 z − 1 + . . . + a N z − N b 0 + b 1 z − 1 + . . . + b M z − M H(z)=\frac{Y(z)}{X(z)}=\frac{a_0+a_1z^{-1}+...+a_Nz^{-N}}{b_0+b_1z^{-1}+...+b_Mz^{-M}} H(z)=X(z)Y(z)=b0+b1z1+...+bMzMa0+a1z1+...+aNzN
即它是一种有理Z变换的表达式

二、极点和零点

1.有理分式的极点和零点

在上一篇文章中,我们定义极点和零点为

  • X ( z ) = 0 X(z)=0 X(z)=0时,将 z z z的取值叫做零点
  • X ( z ) = ∞ X(z)=\infty X(z)=时,将 z z z的取值叫做极点点

而对于有理分式 X ( z ) = P ( z ) Q ( z ) X(z)=\frac{P(z)}{Q(z)} X(z)=Q(z)P(z),它的极点为满足有理式 Q ( z ) = 0 Q(z)=0 Q(z)=0,零点为满足有理式 P ( z ) = 0 P(z)=0 P(z)=0的情况。

将有理分式进行简化:
X ( z ) = P ( z ) Q ( z ) = a 0 + a 1 z − 1 + a 2 z − 2 + . . . + a m z − m b 0 + b 1 z − 1 + b 2 z − 2 + . . . + b n z − n = ∑ k = 0 M a k z − k ∑ k = 0 N b k z − k X(z)=\frac{P(z)}{Q(z)} = \frac{a_0+a_1z^{-1}+a_2z^{-2}+...+a_mz^{-m}}{b_0+b_1z^{-1}+b_2z^{-2}+...+b_nz^{-n}}=\frac{\sum_{k=0}^{M}a_kz^{-k}}{\sum_{k=0}^{N}b_kz^{-k}} X(z)=Q(z)P(z)=b0+b1z1+b2z2+...+bnzna0+a1z1+a2z2+...+amzm=k=0Nbkzkk=0Makzk
我们现在假如 a 0 ≠ 0 , b 0 ≠ 0 a_0\neq 0,b_0 \neq 0 a0=0,b0=0,在同时提取 a 0 z − M b 0 z − N \frac{a_0z^{-M}}{b_0z^{-N}} b0zNa0zM,上式就变成
X ( z ) = a 0 z − M b 0 z − N × z M + ( a 1 / a 0 ) z M − 1 + . . . + a M / a 0 z N + ( b 1 / b 0 ) z N − 1 + . . . + b N / b 0 X(z)=\frac{a_0z^{-M}}{b_0z^{-N}}\times \frac{z^M+(a_1/a_0)z^{M-1}+...+a_M/a_0}{z^N+(b_1/b_0)z^{N-1}+...+b_N/b_0} X(z)=b0zNa0zM×zN+(b1/b0)zN1+...+bN/b0zM+(a1/a0)zM1+...+aM/a0
通过因式分解,假如 P ( z ) = 0 , Q ( z ) = 0 P(z)=0,Q(z)=0 P(z)=0,Q(z)=0,对于一元多次函数的分解,就可以写为如下:
a 0 b 0 z N − M × ( z − z 1 ) ( z − z 2 ) . . . ( z − z M ) ( z − p 1 ) ( z − p 2 ) . . . ( z − p N ) = > a 0 b 0 z N − M × ∏ k = 1 M ( z − z k ) ∏ k = 1 N ( z − p k ) \frac{a_0}{b_0}z^{N-M}\times \frac{(z-z_1)(z-z_2)...(z-z_M)}{(z-p_1)(z-p_2)...(z-p_N)}=>\\ \frac{a_0}{b_0}z^{N-M}\times \frac{\prod_{k=1}^M(z-z_k)}{\prod_{k=1}^N(z-p_k)} b0a0zNM×(zp1)(zp2)...(zpN)(zz1)(zz2)...(zzM)=>b0a0zNM×k=1N(zpk)k=1M(zzk)
所以对于有理分式它的零点存在 z = z 1 , z = z 2 . . z = z M z=z_1,z=z_2..z=z_M z=z1,z=z2..z=zM M M M个零点,同理极点存在 N N N个。
同样我们可以得到对于N阶差分方程,一样存在 M M M个零点和 N N N个极点。

2.稳定性

对于离散时间系统,系统稳定的条件是所有极点必须位于单位圆内部,即它们的模长(绝对值)必须小于 1。

  • 稳定:所有极点的模长 ∣ z ∣ < 1 ∣z∣<1 z∣<1。系统的输出响应会以指数的形式衰减,随着时间推移,响应会趋近于零。也就是说,系统在受扰后的影响会逐渐消失,系统表现为稳定。
  • 边界稳定:极点的模长 ∣ z ∣ = 1 ∣z∣=1 z∣=1,系统可能是临界稳定。这时系统响应可能是周期性的,即系统的输出会在某个周期内重复,表现为临界稳定。
  • 不稳定:存在极点 ∣ z ∣ > 1 ∣z∣>1 z∣>1。此时,系统的输出会随着时间的推移呈现增长,即系统响应会无限增大,这意味着系统是不稳定的。

实际上也就是 z z z的取值是衰减信号还是放大信号

实例

假设一个Z变换表示为:
X ( z ) = 2 z + 3 z − 3 z + 2 X(z)=\frac{2z+3}{z^-3z+2} X(z)=z3z+22z+3
根据上诉判断系统稳定,需要看 Q ( z ) = 0 Q(z)=0 Q(z)=0也就是分母为0的情况:
z − 3 z + 2 = 0 = > ( z − 1 ) ( z − 2 ) = 0 z^-3z+2 = 0=>(z-1)(z-2)=0 z3z+2=0=>(z1)(z2)=0
所以

  • z = 1 , z = 2 z=1,z=2 z=1,z=2为系统的极点
  • z = 1 z=1 z=1在单位圆上,表示这个极点会影响系统的稳定性,但不会导致不稳定
  • z = 2 z=2 z=2位于单位圆外,表示这个极点会使得系统不稳定。

二、逆Z变换

1.观察法

这种方法就是对于一些常见的Z变换,可以直接利用Z变换表查找对应的逆Z变换。常见的Z变换对如下:

序列z变换收敛域
δ n \delta n δn1所有z
a n a^n an 1 1 − a z − 1 \frac{1}{1-az^{-1}} 1az11 ∣ z ∣ > ∣ a ∣ |z|>|a| z>a
u ( n ) u(n) u(n) 1 1 − z − 1 \frac{1}{1-z^{-1}} 1z11 ∣ z ∣ > 1 |z|>1 z>1
a n u ( n ) a^nu(n) anu(n) 1 1 − a z − 1 \frac{1}{1-az^{-1}} 1az11 ∣ z ∣ > ∣ a ∣ |z|>|a| z>a
n a n u ( n ) na^nu(n) nanu(n) a z − 1 ( 1 − a z − 1 ) 2 \frac{az^{-1}}{(1-az^{-1})^2} (1az1)2az1 ∣ z ∣ > ∣ a ∣ |z|>|a| z>a
− a n u ( − n − 1 ) -a^nu(-n-1) anu(n1) 1 1 − a z − 1 \frac{1}{1-az^{-1}} 1az11 ∣ z ∣ < ∣ a ∣ |z|<|a| z<a
− n a n u ( − n − 1 ) -na^nu(-n-1) nanu(n1) a z − 1 ( 1 − a z − 1 ) 2 \frac{az^{-1}}{(1-az^{-1})^2} (1az1)2az1 ∣ z ∣ < ∣ a ∣ |z|<|a| z<a
( cos ⁡ ω 0 n ) u ( n ) (\cos\omega_0 n)u(n) (cosω0n)u(n) 1 − z − 1 cos ⁡ ω 0 1 − 2 z − 1 cos ⁡ ω 0 + z − 2 \frac{1-z^{-1}\cos\omega_0}{1-2z^{-1}\cos\omega_0+z^{-2}} 12z1cosω0+z21z1cosω0 ∣ z ∣ > 1 |z|>1 z>1
( sin ⁡ ω 0 n ) u ( n ) (\sin\omega_0 n)u(n) (sinω0n)u(n) z − 1 sin ⁡ ω 0 1 − 2 z − 1 cos ⁡ ω 0 + z − 2 \frac{z^{-1}\sin\omega_0}{1-2z^{-1}\cos\omega_0+z^{-2}} 12z1cosω0+z2z1sinω0 ∣ z ∣ > 1 |z|>1 z>1
( a n cos ⁡ ω 0 n ) u ( n ) (a^n\cos\omega_0 n)u(n) (ancosω0n)u(n) 1 − a z − 1 cos ⁡ ω 0 1 − 2 a z − 1 cos ⁡ ω 0 + a 2 z − 2 \frac{1-az^{-1}\cos\omega_0}{1-2az^{-1}\cos\omega_0+a^2z^{-2}} 12az1cosω0+a2z21az1cosω0 ∣ z ∣ > ∣ a ∣ |z|>|a| z>a
( a n sin ⁡ ω 0 n ) u ( n ) (a^n\sin\omega_0 n)u(n) (ansinω0n)u(n) a z − 1 sin ⁡ ω 0 1 − 2 a z − 1 cos ⁡ ω 0 + a 2 z − 2 \frac{az^{-1}\sin\omega_0}{1-2az^{-1}\cos\omega_0+a^2z^{-2}} 12az1cosω0+a2z2az1sinω0 ∣ z ∣ > ∣ a ∣ |z|>|a| z>a

2.部分分式展开法

1)定义

适用于系统的Z变换是有理函数(分子和分母均为多项式)的情况。通过对Z变换表达式进行部分分式展开,分解成已知的Z变换表中的项,然后再查表获得逆Z变换。

2)举例

还是上面的那个例子,首先它是一个因果信号
X ( z ) = 2 z + 3 z − 3 z + 2 X(z)=\frac{2z+3}{z^-3z+2} X(z)=z3z+22z+3
对它进行部分分式展开
2 z + 3 z − 3 z + 2 = 2 z + 3 ( z − 1 ) ( z − 2 ) = > A ( z − 1 ) + B ( z − 2 ) \frac{2z+3}{z^-3z+2}=\frac{2z+3}{(z-1)(z-2)}=>\frac{A}{(z-1)}+\frac{B}{(z-2)} z3z+22z+3=(z1)(z2)2z+3=>(z1)A+(z2)B
接下来找出常数 A , B A,B A,B
2 z + 3 = A ( z − 2 ) + B ( z − 1 ) = > 2 z + 3 = A ( z ) − 2 A + B ( z ) − B = > 2 z + 3 = ( A + B ) z − ( 2 A + B ) 2z+3=A(z−2)+B(z−1)=>2z+3=A(z)−2A+B(z)−B=>\\ 2z+3=(A+B)z−(2A+B) 2z+3=A(z2)+B(z1)=>2z+3=A(z)2A+B(z)B=>2z+3=(A+B)z(2A+B)
通过比较系数可知
A + B = 2 , − 2 A − B = 3 A+B=2,−2A−B=3 A+B=2,2AB=3
也就得到了 B = 2 − A B=2−A B=2A,代入上式可得
− A = 5 ⇒ A = − 5 , B = 2 − ( − 5 ) = 7 −A=5⇒A=−5,B=2−(−5)=7 A=5A=5,B=2(5)=7
所以通过部分分解式,我们得到了
X ( z ) = − 5 z − 1 + 7 z − 2 X(z)= \frac{-5}{z-1}+\frac{7}{z-2} X(z)=z15+z27
对于 7 z − 2 \frac{7}{z-2} z27可以写为
7 z × 1 1 − 2 z − 1 \frac{7}{z}\times \frac{1}{1-2^{z-1}} z7×12z11
通过观察法查表可知:
Z − 1 ( 1 1 − 2 z − 1 ) = 2 n Z^{-1}(\frac{1}{1-2^{z-1}})=2^n Z1(12z11)=2n
对左边也是一样,最终对于 X ( z ) X(z) X(z)的反变换为
Z − 1 ( 2 z + 3 z − 3 z + 2 ) = 5 + 7 × 2 n Z^{-1}(\frac{2z+3}{z^-3z+2})=5+7\times 2^n Z1(z3z+22z+3)=5+7×2n

3.幂级数法/长除法

1)定义

适用于系统的Z变换是有理函数,当分式在Z域的某一区域(通常是单位圆内)收敛时,幂级数展开法能够有效地反映时域的离散信号。

2)举例

X ( z ) = 1 1 − a z − 1 , ∣ z ∣ > ∣ a ∣ X(z)=\frac{1}{1-az^{-1}},|z|>|a| X(z)=1az11,z>a
通过长除法(也就是除法变为减法,用余数无限再除以 1 − a z − 1 1-az^{-1} 1az1)展开为负次幂
1 + a z − 1 + a 2 z − 2 + . . . + = > ∑ n = 0 ∞ a n z − 1 1+az^{-1}+a^2z^{-2}+...+=>\sum_{n=0}^{\infty}a^nz^{-1} 1+az1+a2z2+...+=>n=0anz1
所以 x [ n ] = a n u [ n ] x[n]=a^nu[n] x[n]=anu[n]

4.围线积分法

1)定义

围线积分法在Z逆变换中主要用于通过围绕复平面的一条闭合路径对某个函数进行积分,从而得到其逆变换。z逆变换的围线积分法利用留数定理来求解。当Z变换的逆变换难以直接计算时,围线积分法提供了一种通过积分求解的有效途径。

它的表示形式为上一篇文章中提到的Z变换的反变换:
x [ n ] = 1 2 π j ∮ C X ( z ) z n − 1 d z x[n]=\frac{1}{2\pi j}\oint_CX(z)z^{n-1}dz x[n]=2πj1CX(z)zn1dz

留数定理:设 f ( z ) f(z) f(z)是一个在某个区域内解析(即没有奇点)但在一些点可能有孤立极点的复变函数。如果 C C C 是一个正向的、围绕函数极点的闭合路径,那么:
∮ C f ( z ) d z = 2 π i k ∑ R e s ( f , z k ) \oint Cf(z)dz=2\pi ik\sum Res(f,z_k) Cf(z)dz=2πikRes(f,zk)

  • ∮ C f ( z ) d z \oint Cf(z)dz Cf(z)dz:是沿闭合路径 C C C 的围线积分
  • ∑ R e s ( f , z k ) \sum Res(f,z_k) Res(f,zk):是函数 f ( z ) f(z) f(z)在路径内部所有孤立极点 z k z_k zk的留数之和;
  • R e s ( f , z k ) Res(f,z_k) Res(f,zk):是函数 f ( z ) f(z) f(z) z k z_k zk 处的留数

*留数的定义:*指复变函数在某个孤立极点 z k z_k zk 处的“系数”,它可以通过极点附近的泰勒级数来定义。对于一个具有孤立极点的函数 f ( z ) f(z) f(z),如果函数在极点附近有一个类似如下形式的洛朗级数:
f ( z ) = . . . + a − 2 ( z − z k ) 2 + a − 1 z − z k + a 0 + a 1 ( z − z k ) + . . . f(z) = ...+\frac{a_{-2}}{(z-z_k)^2}+\frac{a_{-1}}{z-z_k}+a_0+a_1(z-z_k)+... f(z)=...+(zzk)2a2+zzka1+a0+a1(zzk)+...
那么,留数 R e s ( f , z k ) Res(f,z_k) Res(f,zk)就是这个洛朗级数中 1 z − z k \frac{1}{z-z_k} zzk1项的系数,即 a − 1 a_{-1} a1

2)举例

已知 X ( z ) = ( 1 − a z − 1 ) − 1 , ∣ z ∣ > ∣ a ∣ X(z)=(1-az^{-1})^{-1},|z|>|a| X(z)=(1az1)1,z>a,求 Z − 1 Z^{-1} Z1
代入围线积分法
x [ n ] = 1 2 π j ∮ C X ( z ) z n − 1 d z = 1 2 π j ∮ C ( 1 − a z − 1 ) − 1 z n − 1 d z = > F ( z ) = X ( z ) z n − 1 = ( 1 − a z − 1 ) − 1 z n − 1 = z n z − a x[n]=\frac{1}{2\pi j}\oint_CX(z)z^{n-1}dz=\frac{1}{2\pi j}\oint_C(1-az^{-1})^{-1}z^{n-1}dz=>\\ F(z)=X(z)z^{n-1}=(1-az^{-1})^{-1}z^{n-1}=\frac{z^n}{z-a} x[n]=2πj1CX(z)zn1dz=2πj1C(1az1)1zn1dz=>F(z)=X(z)zn1=(1az1)1zn1=zazn
根据留数定理,找出 F ( z ) F(z) F(z)的极点:

  • n < 0 n < 0 n<0:有一阶极点 z = a z=a z=a n n n阶极点 z = 0 z=0 z=0
  • n ≥ 0 n \geq 0 n0:仅有一阶极点 z = a z=a z=a
    如下图
    在这里插入图片描述
    因此针对 n < 0 n < 0 n<0 n ≥ 0 n \geq 0 n0两种情况有:
    n ≥ 0 n\geq 0 n0时:
    x [ n ] = R e s [ F ( z ) , a ] = ( z − a ) z n z − a ∣ z = a = a n x[n]=Res[F(z),a]=(z-a)\frac{z^n}{z-a}|_{z=a}=a^n x[n]=Res[F(z),a]=(za)zaznz=a=an
    n ≥ 0 n \geq 0 n0时:
    增加 n n n阶极点 z = 0 z=0 z=0,不易求留数,采用留数辅助定理求解,检查 N − M − n ≥ 1 N-M-n \geq 1 NMn1,显然满足。但由于封闭曲线 C C C外没有极点,所以当 n ≥ 0 n \geq 0 n0时, x [ n ] = 0 x[n]=0 x[n]=0

综上: x [ n ] = a n u ( n ) x[n]=a^nu(n) x[n]=anu(n)


总结

本篇文章中对于有理Z变换做了详细介绍,重点实际上在于如何通过有理Z变换来分析系统的稳定性,并且在LTI系统中,可以通过Z变换进行差分方程求解,对于求解的方式例举了4种,分别为观察法、部分分式分解法、长除法和围线积分法。

其中围线积分法和部分分式分解比较适用于复杂的表达式,而观察法和长除法则适用于结构较简单的情况。

反正收藏也不会看,麻烦点个赞呗!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/971161.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

centos部署open-webui

提示&#xff1a;本文将简要介绍一下在linux下open-webui的安装过程,安装中未使用虚拟环境。 文章目录 一、open-webui是什么&#xff1f;二、安装流程1.openssl升级2.Python3.11安装3.sqlite安装升级4.pip 下载安装open-webui 总结 一、open-webui是什么&#xff1f; Open W…

DeepSeek R1 32B 本地部署实战

#DeepSeek# DeepSeek是一款基于人工智能的智能助手&#xff0c;专为提升工作效率和信息获取能力而设计。它结合了自然语言处理、机器学习和大数据技术&#xff0c;能够快速理解用户需求并提供精准的答案或解决方案。 DeepSeek的核心功能 智能问答 DeepSeek可以回答各种问题&…

day09_实时类标签/指标

文章目录 day09_实时类标签/指标一、日志数据实时采集2、Flume简介2.3 项目日志数据采集Flume配置2.3.1 涉及的Flume组件和参数2.3.2 Nginx日志采集2.3.3 用户行为日志采集 二、Nginx日志数据统计1、日志格式说明2、数据ETL2.1 日志抽取2.1.1 正则表达式2.1.2 基于Spark实现Ngi…

硬件学习笔记--41 电磁兼容试验-5 射频场感应的传导干扰试验介绍

目录 电磁兼容试验-射频场感应的传导干扰试验介绍 1.试验目的 2.试验方法 3.判定依据及意义 电磁兼容试验-射频场感应的传导干扰试验介绍 驻留时间是在规定频率下影响量施加的持续时间。被试设备&#xff08;EUT&#xff09;在经受扫频频带的电磁影响量或电磁干扰的情况下&a…

告别卡关!XSS挑战之旅全关卡通关思路详解

XSS挑战之旅 XSS测试思路Level1Level2Level3Level4Level5Level6Level7Level8Level9Level10Level11Level12Level13Level14Level15Level16Level17Level18Level19Level20免责声明&#xff1a; XSS测试思路 确定输入输出点&#xff1a; 寻找URL参数、表单输入、HTTP头&#xff08;R…

连锁企业管理系统的五大核心功能

连锁管理系统对于连锁企业的运营和发展至关重要&#xff0c;以下以核货宝连锁管理系统为例&#xff0c;介绍其五大核心功能&#xff1a; 门店管理功能 门店信息管理&#xff1a;核货宝连锁管理系统可集中管理所有门店的详细信息&#xff0c;包括门店地址、联系方式、营业时间、…

【第12章:深度学习与伦理、隐私—12.4 深度学习与伦理、隐私领域的未来挑战与应对策略】

凌晨三点的自动驾驶测试场,AI系统突然在暴雨中做出惊人决策——它选择撞向隔离带而不是紧急变道,因为算法推演发现隔离带后的应急车道站着五个工程师。这个惊悚的伦理困境,揭开了深度学习伦理危机最尖锐的冰山一角。 一、潘多拉魔盒已开:深度学习伦理的四大原罪 1.1 数据原…

深度学习(1)-简单神经网络示例

我们来看一个神经网络的具体实例&#xff1a;使用Python的Keras库来学习手写数字分类。在这个例子中&#xff0c;我们要解决的问题是&#xff0c;将手写数字的灰度图像&#xff08;28像素28像素&#xff09;划分到10个类别中&#xff08;从0到9&#xff09;​。我们将使用MNIST…

腿足机器人之八- 腿足机器人动力学

腿足机器人之八- 腿足机器人动力学 刚体动力学接触动力学与地面交互稳定性判据ZMP(零力矩点)CoM(Center of Mass)捕获点 简化动力学模型双足机器人走路与小跑的动力学对比挑战与前沿技术 腿足机器人的运动学解决“如何到达目标位置”的问题&#xff0c;动力学解决“如何高效稳定…

Kubernetes控制平面组件:etcd高可用集群搭建

云原生学习路线导航页&#xff08;持续更新中&#xff09; kubernetes学习系列快捷链接 Kubernetes架构原则和对象设计&#xff08;一&#xff09;Kubernetes架构原则和对象设计&#xff08;二&#xff09;Kubernetes架构原则和对象设计&#xff08;三&#xff09;Kubernetes控…

HCIA项目实践--静态路由的拓展配置

7.7 静态路由的拓展配置 网络中的两个重要思想&#xff1a; &#xff08;1&#xff09; 实的不行来虚的&#xff1b; &#xff08;2&#xff09; 范围太大&#xff0c;划分范围。&#xff08;分治&#xff09; 7.7.1 负载均衡 &#xff08;1&#xff09;定义 负载均衡是一种网…

node.js + html调用ChatGPTApi实现Ai网站demo(带源码)

文章目录 前言一、demo演示二、node.js 使用步骤1.引入库2.引入包 前端HTML调用接口和UI所有文件总结 前言 关注博主&#xff0c;学习每天一个小demo 今天是Ai对话网站 又到了每天一个小demo的时候咯&#xff0c;前面我写了多人实时对话demo、和视频转换demo&#xff0c;今天…

类和对象(5)——抽象类和接口

目录 1. 抽象类 1.1 抽象类的概念 1.2 抽象类语法&#xff1a;abstract关键字 1.3 抽象类的特性 1.4 抽象类的作用 2. 接口 2.1 接口的概念 2.2 接口语法&#xff1a;interface关键字 2.3 接口的实现&#xff1a;implements关键字 2.4 接口的特性 2.5 实现多个接口 …

kubectl exec 实现的原理

kubectl exec 是 Kubernetes 提供的一个命令&#xff0c;它允许你在指定的 Pod 中执行命令&#xff0c;类似于在容器中打开一个终端会话。这个功能对于调试、监控和管理容器化应用非常有用。kubectl exec 的实现涉及到多个 Kubernetes 组件和机制&#xff0c;包括 API Server、…

【ubuntu24.04】 强制重启导致大模型的磁盘挂载出错

挂载NTFS文件系统出错 各种模型放在了这个机械硬盘上&#xff0c;虽然速度慢&#xff0c;但是好在容量大。大模型在工作&#xff0c;但是程序看起来有问题&#xff0c;导致系统卡死了&#xff0c;然后我重启了&#xff0c;然后报错&#xff1a;wrong fs type bad option &…

【数据结构】 栈和队列

在计算机科学的世界里&#xff0c;数据结构是构建高效算法的基础。栈&#xff08;Stack&#xff09;和队列&#xff08;Queue&#xff09;作为两种基本且重要的数据结构&#xff0c;在软件开发、算法设计等众多领域都有着广泛的应用。今天&#xff0c;我们就来深入探讨一下栈和…

移动端测试的挑战与解决方案:兼容性、网络问题及实战策略

引言 移动应用已成为用户触达服务的核心入口,但移动端测试面临设备多样性、网络波动、用户场景复杂等多重挑战。据Statista统计,2023年全球活跃移动设备超180亿台,操作系统(Android/iOS)版本碎片化率超30%,这对测试工程师提出了极高要求。本文深度解析移动端测试的核心痛…

【设计模式】03-理解常见设计模式-行为型模式(专栏完结)

前言 前面我们介绍完创建型模式和创建型模式&#xff0c;这篇介绍最后的行为型模式&#xff0c;也是【设计模式】专栏的最后一篇。 一、概述 行为型模式主要用于处理对象之间的交互和职责分配&#xff0c;以实现更灵活的行为和更好的协作。 二、常见的行为型模式 1、观察者模…

matlab欠驱动船舶模型预测控制

1、内容简介 matlab135-欠驱动船舶模型预测控制 可以交流、咨询、答疑 2、内容说明 略 针对在风 、 浪 、 流时变干扰下欠驱动水面船舶的轨迹跟踪控制问题 &#xff0c; 设计了一种基于模型 预测控制的轨迹跟踪控制器 &#xff0e; 考虑到欠驱动船舶在没有横向驱动力情况下…

计算机性能与网络体系结构探讨 —— 基于《计算机网络》谢希仁第八版

(꒪ꇴ꒪ )&#xff0c;Hello我是祐言QAQ我的博客主页&#xff1a;C/C语言&#xff0c;数据结构&#xff0c;Linux基础&#xff0c;ARM开发板&#xff0c;网络编程等领域UP&#x1f30d;快上&#x1f698;&#xff0c;一起学习&#xff0c;让我们成为一个强大的攻城狮&#xff0…