一阶二阶数字滤波器笔记

article/2025/10/19 6:44:15

数字滤波器

  • 一阶数字滤波器
    • 时域分析
    • 频域分析
    • 数字化
    • 代码示例
  • 二阶巴特沃斯低通滤波器
    • S域和Z域的频率关系分析
    • 巴特沃斯滤波器举例说明
    • 代码示例

声明:感谢知乎大佬的文章,原文链接

数字滤波器实现方法是把滤波器所要完成的运算编成程序并让计算机执行,也就是采用在代码的形式。
它面对的是离散时间的数字信号,是把输入序列通过一定的运算变换成输出序列。
问:如何将连续的模拟滤波器变成离散的数字滤波器?
答:双线性变换
S = 2 T s 1 − z − 1 1 + z − 1 = 2 f s 1 − z − 1 1 + z − 1 S = \frac {2} {Ts} \frac {1-z^{-1}} {1+z^{-1}} = 2fs\frac {1-z^{-1}} {1+z^{-1}} S=Ts21+z11z1=2fs1+z11z1
S域:复频域 Z域:极坐标系

一阶数字滤波器

在这里插入图片描述

时域分析

电容
C = Q V (单位电压下器件所存储的电荷量) C = \frac Q V (单位电压下器件所存储的电荷量) C=VQ(单位电压下器件所存储的电荷量)
瞬时电流
I c = d Q d t (单位时间内通过的电荷数) Ic = \frac {dQ} {dt}(单位时间内通过的电荷数) Ic=dtdQ(单位时间内通过的电荷数)
代入得
I c = d ( C ∗ V ) d t Ic =\frac {d(C*V)} {dt} Ic=dtd(CV)
化简得
I c = C ∗ d U o d t Ic = C * \frac {dU_o} {dt} Ic=CdtdUo
根据基尔霍夫定律
U i = I c ∗ R + U o Ui = Ic*R + U_o Ui=IcR+Uo
代入化简得
U i = R C ∗ d U o d t + U o Ui = RC * \frac {dU_o} {dt} + U_o Ui=RCdtdUo+Uo

d U o d t + U o R C = U i R C \frac {dU_o} {dt} + \frac {U_o} {RC} = \frac {U_i} {RC} dtdUo+RCUo=RCUi
根据微分公式
y ′ + p ( x ) y = q ( x ) y'+p(x)y = q(x) y+p(x)y=q(x)

y = e − ∫ p ( x ) d x [ ∫ e ∫ p ( x ) d x q ( x ) + C ] y=e^{-\int p(x)dx}[\int e^{\int p(x)dx} q(x) + C] y=ep(x)dx[ep(x)dxq(x)+C]

U o = e − ∫ 1 R C d t [ ∫ e ∫ 1 R C d t U i R C + C ] U_o=e^{-\int \frac {1} {RC}dt}[\int e^{\int \frac {1} {RC}dt} \frac {U_i} {RC} + C] Uo=eRC1dt[eRC1dtRCUi+C]

U o = e − t R C [ U i R C ∫ e t R C d t + C ] U_o=e^{-\frac {t} {RC}}[ \frac {U_i} {RC} \int e^{\frac {t} {RC}dt} + C] Uo=eRCt[RCUieRCtdt+C]
其中
∫ e t d t = e t \int e^tdt = e^t etdt=et

U o = e − t R C [ U i R C ∫ R C ∗ e t R C d t R C + C ] U_o=e^{-\frac {t} {RC}}[ \frac {Ui} {RC} \int RC* e^{\frac {t} {RC}d{\frac t {RC}}} + C] Uo=eRCt[RCUiRCeRCtdRCt+C]

U o = e − t R C [ U i R C ∗ R C ∗ e t R C + C ] U_o=e^{-\frac {t} {RC}}[ \frac {Ui} {RC} * RC* e^{\frac {t} {RC}} + C] Uo=eRCt[RCUiRCeRCt+C]

U o = C ∗ e − t R C + U i U_o= C*e^{-\frac {t} {RC}} + U_i Uo=CeRCt+Ui

当 t = 0 时, U o = 0 , 得出 C = − U i 当t = 0时,U_o = 0,得出C=-U_i t=0时,Uo=0,得出C=Ui

U o = ( 1 − e − t R C ) ∗ U i U_o= (1-e^{-\frac {t} {RC}})* U_i Uo=1eRCtUi

频域分析

电容的阻抗
R = 1 j w C R = \frac {1} {jwC} R=jwC1
电压的传递函数
U o U i = 1 j w C R + 1 j w C \frac {U_o} {U_i} = \frac {\frac 1 {jwC}} {R + \frac 1 {jwC}} UiUo=R+jwC1jwC1
U o U i = 1 1 + j w R C \frac {U_o} {U_i} = \frac {1} {1 +jwRC} UiUo=1+jwRC1
化简
U o U i = 1 1 + ( w R C ) 2 − j w R C 1 + ( w R C ) 2 \frac {U_o} {U_i} = \frac {1} {1 + (wRC)^2} - j\frac {wRC} {1 + (wRC)^2} UiUo=1+(wRC)21j1+(wRC)2wRC
对其取模得
( 1 1 + ( w R C ) 2 ) 2 + ( w R C 1 + ( w R C ) 2 ) 2 \sqrt { (\frac {1} {1 + (wRC)^2})^2 + (\frac {wRC} {1 + (wRC)^2})^2} (1+(wRC)21)2+(1+(wRC)2wRC)2
1 1 + ( w R C ) 2 \sqrt { \frac {1} {1 + (wRC)^2}} 1+(wRC)21
当 U o U i = 2 2 ,此时的频率为截止频率 当\frac {Uo} {Ui} = \frac {\sqrt 2} {2} ,此时的频率为截止频率 UiUo=22 ,此时的频率为截止频率
2 2 = 1 1 + ( w R C ) 2 \frac {\sqrt 2} {2} =\sqrt { \frac {1} {1 + (wRC)^2}} 22 =1+(wRC)21
w R C = 1 , w = 2 π f , 得出 2 π f R C = 1 wRC=1,w=2\pi f,得出 2\pi fRC=1 wRC=1,w=2πf,得出2πfRC=1
截止频率
f = 1 2 π R C f = \frac {1} {2\pi RC} f=2πRC1

数字化

H ( j w ) = U o U i = 1 1 + j w R C H(jw) =\frac {U_o} {U_i} = \frac {1} {1 +jwRC} H(jw)=UiUo=1+jwRC1
s = j w s=jw s=jw
H ( s ) = 1 1 + R C s H(s) =\frac {1} {1 +RCs} H(s)=1+RCs1
离散化 一阶后向差分进入Z变换
s = 1 − z − 1 T ( T : 采样周期) s = \frac {1-z^{-1}} {T} (T:采样周期) s=T1z1T:采样周期)
H ( z ) = U o ( z ) U i ( z ) = 1 1 + R C 1 − z − 1 T H(z) = \frac {U_o(z)} {U_i(z)}=\frac {1} {1 +RC\frac {1-z^{-1}} {T}} H(z)=Ui(z)Uo(z)=1+RCT1z11
化简得
H ( z ) = U o ( z ) U i ( z ) = 1 1 + R C 1 − z − 1 T H(z) = \frac {U_o(z)} {U_i(z)}=\frac {1} {1 +RC\frac {1-z^{-1}} {T}} H(z)=Ui(z)Uo(z)=1+RCT1z11
U o ( z ) = T R C + T U i ( z ) + R C R C + T U o ( z ) z − 1 U_o(z)=\frac {T} {RC + T} U_i(z) + \frac {RC} {RC + T} U_o(z)z^{-1} Uo(z)=RC+TTUi(z)+RC+TRCUo(z)z1
Z反变换得
U o ( n ) = T R C + T U i ( n ) + R C R C + T U o ( n − 1 ) U_o(n)=\frac {T} {RC + T} U_i(n) + \frac {RC} {RC + T} U_o(n-1) Uo(n)=RC+TTUi(n)+RC+TRCUo(n1)
变换得
U o ( n ) = T R C + T U i ( n ) + ( 1 − T R C + T ) U o ( n − 1 ) U_o(n)=\frac {T} {RC + T} U_i(n) + (1- \frac {T} {RC + T} )U_o(n-1) Uo(n)=RC+TTUi(n)+(1RC+TT)Uo(n1)
令 A = T R C + T , U o ( n ) = A U i ( n ) + ( 1 − A ) U o ( n − 1 ) 令A= \frac{T} {RC + T} ,U_o(n)=AU_i(n)+(1-A)U_o(n-1) A=RC+TTUo(n)=AUi(n)+(1A)Uo(n1)
前面的频域得出
f = 1 2 π R C , 求得 R C = 1 2 π f f= \frac{1} {2\pi RC} ,求得RC= \frac{1} {2\pi f} f=2πRC1,求得RC=2πf1
从而得出
A = 1 1 + 1 2 π f T A= \frac{1} {1 + \frac {1}{2\pi fT}} A=1+2πfT11
此时将 A 代入 U o ( n ) 中 , 得到输入 U i 在截止频率 f 输出 U o 在数字域中的一阶滤波器表达式 此时将A代入Uo(n)中,得到 输入Ui 在截止频率 f 输出Uo在数字域中的一阶滤波器表达式 此时将A代入Uo(n),得到输入Ui在截止频率f输出Uo在数字域中的一阶滤波器表达式
U o ( n ) = 1 1 + 1 2 π f T U i ( n ) + ( 1 − 1 1 + 1 2 π f T ) U o ( n − 1 ) U_o(n)=\frac{1} {1 + \frac {1}{2\pi fT}}U_i(n)+(1-\frac{1} {1 + \frac {1}{2\pi fT}})U_o(n-1) Uo(n)=1+2πfT11Ui(n)+(11+2πfT11)Uo(n1)
U o ( n ) = 1 1 + 1 2 π f T ( U i ( n ) − U o ( n − 1 ) ) + U o ( n − 1 ) U_o(n)=\frac{1} {1 + \frac {1}{2\pi fT}}(U_i(n)-U_o(n-1)) + U_o(n-1) Uo(n)=1+2πfT11(Ui(n)Uo(n1))+Uo(n1)

代码示例

截止频率 f = 1Hz
thr_lpf+=(1 / (1 + 1/(2.0f * 3.14f * T )))*(height_thr - thr_lpf) ,其中T(采样周期)=1/采样频率

二阶巴特沃斯低通滤波器

S域和Z域的频率关系分析

对于s域来说,在模拟截止频率为 fa 时有:
S = j w a = j 2 π f a S=jw_a = j2 \pi f_a S=jwa=j2πfa
对于z域来说,在数字截止频率为 fd 的情况下
z = e s T , 其中 s = j w d , w d = 2 π f d , T = 1 f s z=e^{sT} ,其中s=jw_d ,w_d = 2 \pi f_d,T=\frac 1 f_s z=esT,其中s=jwd,wd=2πfd,T=f1s
z = e j 2 π f d f s z=e^{j2\pi \frac{f_d}{f_s}} z=ej2πfsfd
双线性变换
S = 2 T s 1 − z − 1 1 + z − 1 = 2 f s 1 − z − 1 1 + z − 1 S = \frac {2} {T_s} \frac {1-z^{-1}} {1+z^{-1}} = 2f_s\frac {1-z^{-1}} {1+z^{-1}} S=Ts21+z11z1=2fs1+z11z1
把这个数字截止频率为 fd 带入双线性变换公式可以得到:
S = 2 f s 1 − z − 1 1 + z − 1 = 2 f s 1 − e − j 2 π f d f s 1 + e − j 2 π f d f s = 2 f s e j 2 π f d f s − 1 e j 2 π f d f s + 1 S = 2f_s\frac {1-z^{-1}} {1+z^{-1}}=2f_s\frac{1-e^{-j2\pi \frac{f_d} {f_s}}} {1+e^{-j2\pi \frac{f_d}{f_s}}}=2f_s\frac{e^{j2\pi \frac{f_d} {f_s}}-1} {e^{j2\pi \frac{f_d}{f_s}}+1} S=2fs1+z11z1=2fs1+ej2πfsfd1ej2πfsfd=2fsej2πfsfd+1ej2πfsfd1
运用下方的公式进行化简
e j x = c o s x + j s i n x e^{jx}=cosx + jsinx ejx=cosx+jsinx
e j A − e − j A e j A + e − j A = c o s A + j s i n A − ( c o s ( − A ) + j s i n ( − A ) ) c o s A + j s i n A + c o s ( − A ) + j s i n ( − A ) = j t a n A \frac{e^{jA}-e^{-jA}} {e^{jA}+e^{-jA}}=\frac{cosA+jsinA-(cos(-A)+jsin(-A))} {cosA+jsinA+cos(-A)+jsin(-A)}=jtanA ejA+ejAejAejA=cosA+jsinA+cos(A)+jsin(A)cosA+jsinA(cos(A)+jsin(A))=jtanA
e j w − 1 e j w + 1 = e j w 2 e j w 2 ∗ e j w 2 − e − j w 2 e j w 2 + e − j w 2 = e j w 2 − e − j w 2 e j w 2 + e − j w 2 = j t a n w 2 \frac{e^{jw}-1} {e^{jw}+1} = \frac{e^{\frac{jw}{2}}} {e^{\frac{jw}{2}}} * \frac{e^{\frac{jw}{2}} - e^{-\frac{jw}{2}}} {e^{\frac{jw}{2}} + e^{-\frac{jw}{2}}} = \frac{e^{\frac{jw}{2}} - e^{-\frac{jw}{2}}} {e^{\frac{jw}{2}} + e^{-\frac{jw}{2}}}=jtan \frac{w}{2} ejw+1ejw1=e2jwe2jwe2jw+e2jwe2jwe2jw=e2jw+e2jwe2jwe2jw=jtan2w
化简得
S = 2 f s e j 2 π f d f s − 1 e j 2 π f d f s + 1 = j 2 f s t a n π f d f s S=2f_s\frac{e^{j2\pi \frac{f_d} {f_s}}-1} {e^{j2\pi \frac{f_d}{f_s}}+1} = j2f_stan \frac{\pi f_d}{f_s} S=2fsej2πfsfd+1ej2πfsfd1=j2fstanfsπfd
S = j 2 π f a = j 2 f s t a n π f d f s S=j2 \pi f_a= j2f_stan \frac{\pi f_d}{f_s} S=j2πfa=j2fstanfsπfd
f a = f s π t a n π f d f s f_a=\frac{f_s}{\pi}tan\frac{\pi f_d}{f_s} fa=πfstanfsπfd
模拟滤波器的角频率Wa
w a = 2 π f a = 2 π ∗ f s π t a n π f d f s = 2 f s t a n π f d f s w_a=2\pi f_a=2\pi*\frac{f_s}{\pi}tan\frac{\pi f_d}{f_s}=2f_stan\frac{\pi f_d}{f_s} wa=2πfa=2ππfstanfsπfd=2fstanfsπfd
去归一化只需要将模拟滤波器传递函数中的s进行如下替换
S = S w a S=\frac{S}{w_a} S=waS
得出用数字截止频率 fd 表示S的公式
S = 2 f s 1 − z − 1 1 + z − 1 2 f s t a n π f d f s = 1 − z − 1 1 + z − 1 t a n π f d f s S=\frac{2f_s\frac {1-z^{-1}} {1+z^{-1}}}{2f_stan\frac{\pi f_d}{f_s}}=\frac{\frac {1-z^{-1}} {1+z^{-1}}}{tan\frac{\pi f_d}{f_s}} S=2fstanfsπfd2fs1+z11z1=tanfsπfd1+z11z1

巴特沃斯滤波器举例说明

在这里插入图片描述
上表为巴特沃斯滤波器归一化(截止频率为 1 弧度 1 2 π ) 系数表,我们采用二阶 ( N = 2 ) 进行举例 上表为巴特沃斯滤波器归一化(截止频率为1弧度\frac 1 2\pi)系数表,我们采用二阶(N=2)进行举例 上表为巴特沃斯滤波器归一化(截止频率为1弧度21π)系数表,我们采用二阶(N=2)进行举例
H ( s ) = 1 S 2 + 1.414 S + 1 H(s)=\frac{1}{S^2 +1.414S+1} H(s)=S2+1.414S+11
H ( z ) = 1 ( 1 − z − 1 1 + z − 1 t a n π f d f s ) 2 + 1.414 ( 1 − z − 1 1 + z − 1 t a n π f d f s ) + 1 H(z)=\frac{1}{(\frac{\frac {1-z^{-1}} {1+z^{-1}}}{tan\frac{\pi f_d}{f_s}})^2+1.414(\frac{\frac {1-z^{-1}} {1+z^{-1}}}{tan\frac{\pi f_d}{f_s}})+1} H(z)=(tanfsπfd1+z11z1)2+1.414(tanfsπfd1+z11z1)+11
为方便化简将
Q = t a n π f d f s Q=tan\frac{\pi f_d}{f_s} Q=tanfsπfd
化简得
H ( z ) = Y ( z ) X ( z ) = Q 2 + 2 Q 2 z − 1 + Q 2 z − 2 ( 1 + 1.414 Q + Q 2 ) + ( 2 Q − 2 − 2 ) z − 1 + ( 1 + Q 2 − 1.414 Q ) z − 2 H(z)=\frac{Y(z)} {X(z)}=\frac{Q^2+2Q^2z^{-1}+Q^2z^{-2}} {(1+1.414Q+Q^2)+(2Q^{-2}-2)z^{-1}+(1+Q^2-1.414Q)z^{-2}} H(z)=X(z)Y(z)=(1+1.414Q+Q2)+(2Q22)z1+(1+Q21.414Q)z2Q2+2Q2z1+Q2z2
再次为方便化简将
B 0 = Q 2 , B 1 = 2 Q 2 , B 2 = Q 2 , C = 1 + 1.414 Q + Q 2 , A 1 = 2 Q − 2 − 2 , A 2 = 1 + Q 2 − 1.414 Q B_0=Q^2,B_1=2Q^2,B_2=Q^2,C=1+1.414Q+Q^2,A_1=2Q^{-2}-2,A_2=1+Q^2-1.414Q B0=Q2,B1=2Q2,B2=Q2,C=1+1.414Q+Q2,A1=2Q22,A2=1+Q21.414Q
化简得
H ( z ) = Y ( z ) X ( z ) = B 0 + B 1 z − 1 + B 2 z − 2 C + A 1 z − 1 + A 2 z − 2 H(z)=\frac{Y(z)} {X(z)}=\frac{B_0+B_1z^{-1}+B_2z^{-2}} {C+A_1z^{-1}+A_2z^{-2}} H(z)=X(z)Y(z)=C+A1z1+A2z2B0+B1z1+B2z2
Y ( z ) C + A 1 Y ( z ) z − 1 + A 2 Y ( z ) z − 2 = B 0 X ( z ) + B 1 X ( z ) z − 1 + B 2 X ( z ) z − 2 Y(z)C+A_1Y(z)z^{-1}+A_2Y(z)z^{-2}=B_0X(z)+B_1X(z)z^{-1}+B_2X(z)z^{-2} Y(z)C+A1Y(z)z1+A2Y(z)z2=B0X(z)+B1X(z)z1+B2X(z)z2
Y ( z ) = B 0 C X ( z ) + B 1 C X ( z ) z − 1 + B 2 C X ( z ) z − 2 − A 1 C Y ( z ) z − 1 − A 2 C Y ( z ) z − 2 Y(z)=\frac{B_0}{C}X(z)+\frac{B_1}{C}X(z)z^{-1}+\frac{B_2}{C}X(z)z^{-2}-\frac{A_1}{C}Y(z)z^{-1}-\frac{A_2}{C}Y(z)z^{-2} Y(z)=CB0X(z)+CB1X(z)z1+CB2X(z)z2CA1Y(z)z1CA2Y(z)z2
再再次为方便化简将
b 0 = B 0 C , b 1 = B 1 C , b 2 = B 2 C , a 1 = A 1 C , a 2 = A 2 C b_0=\frac{B_0}{C},b_1=\frac{B_1}{C},b_2=\frac{B_2}{C},a_1=\frac{A_1}{C},a_2=\frac{A_2}{C} b0=CB0,b1=CB1,b2=CB2,a1=CA1,a2=CA2
Y ( z ) = b 0 X ( z ) + b 1 X ( z − 1 ) + b 2 X ( z − 2 ) − a 1 Y ( z − 1 ) − a 2 Y ( z − 2 ) Y(z)=b_0X(z)+b_1X(z^{-1})+b_2X(z^{-2})-a_1Y(z^{-1})-a2Y(z^{-2}) Y(z)=b0X(z)+b1X(z1)+b2X(z2)a1Y(z1)a2Y(z2)
z : 表示当前周期, z − 1 : 表示上个周期, z − 2 : 表示上上个周期 z:表示当前周期,z^{-1}:表示上个周期,z^{-2}:表示上上个周期 z:表示当前周期,z1:表示上个周期,z2:表示上上个周期

代码示例

//二阶滤波器系数结构体
struct DoubleFilterFactor
{float b0;float b1;float b2;float a1;float a2;
}
//二阶滤波器暂存X,Y数据结构体
struct XYData
{float XData[2];float YData[2];
}void double IIRDoubleFilter(struct DoubleFilterFactor* facotr, struct XYData* xydata, float in)
{float y = facotr->b0*in + facotr->b1*xydata->XData[0] +facotr->b2*xydata->XData[1] +facotr->a1*xydata->YData[0] +facotr->a2*xydata->YData[0];//y表示输出信号xydata->XData[1] = xydata->XData[0];xydata->XData[0] = in;xydata->YData[1] = xydata->YData[0];xydata->YData[0] = y;return y;
}使用方式:
struct DoubleFilterFactor* tmpfactor;//对该二阶滤波器系数结构体赋值
struct XYData* tmpxydata;//无需赋值
int i;
float sample[num];//x表示输入信号
for(i = 0;i < num;i++)
{double Filterdata = IIRDoubleFilter(tmpfactor, tmpxydata, sample[i]);//Filterdata就是经过二阶滤波后的数据
}

http://chatgpt.dhexx.cn/article/I9LibEXw.shtml

相关文章

简单二阶滤波器截止频率的计算

最近刚好学习到这了&#xff0c;而我在网上查资料的时候却非常难找&#xff0c;不少资料讲解不够详细&#xff0c;所以经过我努力也为了为大家做点贡献的想法&#xff0c;以自己的见解写下这篇文章。废话不多说&#xff0c;先从一阶滤波器讲起。 一阶低通滤波器&#xff1a; …

如何确定插值滤波器的阶数

在信号处理中&#xff0c;滤波器的系数我们往往都是通过MATLAB来设计&#xff0c;只要我们知道滤波器的通带截止频率和阻带起始频率&#xff0c;就可以通过MATLAB中的fdatool&#xff08;在MATLAB2020中使用filterDesigner&#xff09;来设计滤波器了。 我们使用归一化的参数来…

标识符无效

表中存在该列&#xff0c;插入的时候却显示 标识符无效&#xff0c;使用dbsql插入报错&#xff0c;自己写入数据没有问题&#xff01; 查资料发现可能和列的大小写有关。这里强调sql一定用全大写来写避免不必要的麻烦&#xff01;但是我改过后发现并不是这个问题…… 问题已解…

ORA-00904 ID 标识符无效 解决方案

msg&#xff1a;"数据访问异常" dev&#xff1a;"ORA-00904&#xff1a;"ID"&#xff1a;标识符无效 ORA&#xff1a;即 Oracle 报错。 标识符无效是因为&#xff1a;SQL语句中&#xff0c;列名&#xff08;ID&#xff09;不在表中。解决方案&#x…

PLSQL ORA-00904 标识符无效

问题在于“COMPONET_ID” 是字符串&#xff0c;无法识别&#xff0c;如果不是字符串&#xff0c;就可以识别

Oracle标识符无效

Oracle在创建表的时候提示“ORA-00904&#xff1a;标识符无效” 原因为最后一行列定义多了一个逗号&#xff0c;去掉即可。

【Oracle相关】坑!使用oracle时,发生标识符无效解决办法

–真是个大坑 使用oracle时,发生标识符无效解决办法 一般出现该错误的原因&#xff1a; 1、列名写错导致 2、使用了关键字作为了列名 但是这次遇到的情况有点奇葩 通过dblink直接查询该表&#xff0c;并没有报出问题&#xff0c;但在存储过程中通过dblink访问就一直报标识符…

ORA-00904 标识符无效 解决方案

ORA&#xff1a;即Oracle报错。 标识符无效&#xff1a;SQL语句中&#xff0c;这个字段名不在表中。 解决方案&#xff1a;修改SQL语句中对应的字段或者修改表里面对应的列名。 在这里我想说一下&#xff0c;因为我用的是hibernate内部封装好的save方法&#xff0c;咱也不能去改…

HQL 标识符无效

这是报错 因为刚学HIbernate&#xff0c;很多小问题其实挺折磨人的 这是代码&#xff08;我根据网上搜索的答案还有自己的判断测试&#xff0c;感觉应该可能是字段没有" "的问题&#xff09; Configuration configuration new Configuration().configure();Session…

ORA-00904:标识符无效(太坑了!!)

ORA-00904:标识符无效 解决办法(Oracle字段名区分大小写的坑) 问题描述 我在使用jpa或者mybatis集成Oracle进行where查询的时候发现一直出现&#xff1a; java.sql.SQLSyntaxErrorException: ORA-00904: “USER0_”.“PWD”: 标识符无效 下面是问题代码&#xff1a; Testvoid…

Unity⭐️VideoPlayer

文章目录 &#x1f6a9; 解决安卓视频播放模糊 &#x1f6a9; 解决安卓视频播放模糊 1️⃣ 设置RawImage的size跟原视频一致 2️⃣ RawImage的抗锯齿Anti-Aliasing改为8 3️⃣ 勾选sRGB 4️⃣ 视频编码设为H264 大家还有什么问题&#xff0c;欢迎在下方留言&#xff01; 如…

ᑋᵉᑊᑊᵒ ᵕ̈ᰔᩚ

** ** 第一章 大数据概述 ** ** 1.大数据技术的产生 2.大数据的基本概念 什么是大数据&#xff1f; 定义&#xff1a;大数据是指无法在一定时间内用常规软件工具进行抓取&#xff0c;管理和处理的数据集合 经典案例&#xff1a; (1)啤酒与尿布 (2)谷歌与流感 大数据的范…

linux shell中 '' ``的区别

环境:ubuntu 10 符号:"" / / 相信很多linux初学者都会被这三个符号迷惑&#xff0c;我将用一个例子说明他们的区别 现在我按照替换执行灵活度排个序: &#xff1a;大笨蛋&#xff0c;你给他什么他就显示什么&#xff0c;不动脑子 " ":勉强吧&#xff…

【shell】``和$()作用与区别

和$()的作用 将一条命令的执行结果赋给一个变量&#xff0c;有两种方法 1、使用反引号 (数字键1左边的键&#xff0c;tab键上面&#xff0c;英文方式输入) 如&#xff1a;aecho "hello world"; 即将命令 echo "hello world"的输出赋给变量a 2、可以使用…

获取流媒体地址

流媒体地址大搜捕-网上视频“本地”看 http://www.sina.com.cn 2003/08/22 14:05 赛迪网--中国电脑教育报   文/巧克力   由于带宽的限制&#xff0c;要想流畅地观看网上视频节目&#xff0c;对于多数网友来说并不是件容易的事情。因此不少朋友选择了利用下载工具将这些流…

流媒体相关介绍

流媒体相关介绍 一、流媒体主要实现方式二、流媒体技术2.1 流媒体2.2 直播2.3 流协议2.3.1 HLS 协议2.3.2 RTMP 协议2.3.3 RTSP 协议2.3.4 MPEG-DASH2.3.5 WebRTC 协议 2.4 服务器端技术2.4.1 GStreamer2.4.2 Live5552.4.3 其它 三、HTML5媒体标签3.1 audio3.2 video3.3 canvas…

流媒体地址文件制作方法

在我的博文使用 Windows Media Center 看网络电视中&#xff0c;我介绍了如何为Windows Media Center添加流媒体文件来收看网络电视节目。因为大多数的网络电视点播地址经常发生变动&#xff0c;我无暇进行及时更新&#xff0c;本着授人以鱼不如授人以渔的原则&#xff0c;我贴…

ZLMediaKit流媒体服务器

一 搭建 公司搭建云导播台系统&#xff0c;0-1。本人先后调研了几个webrtc流媒体服务器框架&#xff1a; mediasoup&#xff1a;nodejs和c开发各占一半 janus&#xff1a;c开发插件&#xff0c;用docker镜像安装运行成功&#xff0c;自编译运行坑太多。 ZLMediaKit&#xf…

开源流媒体解决方案,流媒体服务器,推拉流,直播平台,SRS,WebRTC,移动端流媒体,网络会议,优秀博客资源等分享

开源流媒体解决方案&#xff0c;流媒体服务器&#xff0c;推拉流&#xff0c;直播平台&#xff0c;SRS&#xff0c;WebRTC&#xff0c;移动端流媒体&#xff0c;网络会议&#xff0c;优秀博客资源等分享 一、优秀的流媒体博客资源1.1 EasyNVR&#xff1a;专注于安防视频互联网化…