zoukankan      html  css  js  c++  java
  • 第一节、信号的频域分析

    信号一般可以划分为确定性信号和随机信号。

    • 确定性信号:能够用确定性图像曲线或数学解析式准确描述的信号;例如单位阶跃信号。
    • 随机信号:不能用明确的数学表达式描述的不遵循确定性的规律的信号;例如机床噪声信号、热噪声信号等实际测量的振动信号往往都是确定性信号和随机信号的组合。

    严格意义上来说,在实际测量得到的信号都是随机信号,确定性信号一般只存在于理论研究中。

    这一章我们主要介绍确定性信号的频域分析方法,我们把确定性信号分为以下四大类:

    • 连续周期信号
    • 连续非周期函数
    • 离散周期信号
    • 离散非周期信号

    一、信号的正交分解

    1、信号正交

    信号正交的定义如下:若两个信号$x_1(t)$和$x_2(t)$在区间$(t_1,t_2)$上满足:

    $$int_{t_1}^{t_2} x_1(t)x_2^*(t)dt=0$$

    则称信号$x_1(t)$和$x_2(t)$在区间$(t_1,t_2)$正交,其中$x_2^*(t)$表示$x_2(t)$的共轭信号。

    2、正交信号集

    设有一信号集${x_1(t),x_2(t),...,x_n(t)}$,若该信号集中所有信号在区间$(t_1,t_2)$上都满足:

    $$int_{t_1}^{t_2} x_1(t)x_2^*(t)dt=egin{cases} 0, {i≠j}  \ K_i , {i=j} end{cases}$$

    则成该信号集为区间$(t_1,t_2)$上的正交信号集。

    有了正交信号集的概念后,就可以给出完备正交信号集的概念。设一个在区间$(t_1,t_2)$上的正交信号集${x_1(t),x_2(t),...,x_n(t)}$,如果在该正交信号集外,找不到任何一个信号与该正交信号集中的所有信号都正交,则把正交信号集${x_1(t),x_2(t),...,x_n(t)}$称为完备正交信号集。一个完备的正交信号集通常包含无穷多个信号,$n→∞$.

    3、信号的正交分解

    任意信号$x(t)$在区间$(t_1,t_2)$上可以分解为该区间上的完备信号集${x_1(t),x_2(t),...,x_n(t),...}$中各信号的线性组合,即

    $$x(t)=C_1x_1(t)+C_2x_2(t)+...+C_nx_n(t)=sum{i=1}^n C_ix_i(t)$$

    求出系数$C_I$,即可达到信号分解的目的。

    通过均方误差最小化们可以求出系数$C_i$:

    $$C_i=frac{int_{t_1}^{t_2} x(t)x_i(t)dt}{int_{t_1}^{t_2} x_i^2(t)}$$

     二、连续周期信号的傅里叶级数

    1、傅里叶级数的三角形式

    三角函数信号集${1,cos(Ω_0t),cos(2Ω_0t),...,cos(kΩ_0t),...,sin(Ω_0t),sin(2Ω_0t),...,sin(kΩ_0t),...)}$是在区间$(t_0,t_0+T_0]$上的完备正交信号集,其中$Ω_0=2*pi/T_0$.

    区间$(t_0,t_0+T_0]$上的任意信号$x(t)$可用上哪交函数信号集表示为:

    $$x(t)=frac{a_0}{2}+a_1cos(Ω_0t)+a_2cos(2Ω_0t)+...+b_1sin(Ω_0t)+b_2sin(2Ω_0t)+...$$

    $$=frac{a_0}{2}+sum_{k=1}^{∞}[a_kcos(kΩ_0t)+b_ksin(kΩ_0t)], t in (t_0,t_0+T_0)$$

    由于三角信号函数集中每个信号都以$T_0$为周期,所以$t in (-∞,∞)$,上式变为:

    $$hat{x}(t)=frac{a_0}{2}+sum_{k=1}^{∞}[a_kcos(kΩ_0t)+b_ksin(kΩ_0t)], t in (-∞,∞) $$

    其中$hat{x}(t)$是$x(t)$以$T_0$为周期进行周期延拓而得到的周期信号。上式说明了任意周期为$T_0$的周期函数$hat{x}(t)$都可以分解为三角函数信号集${1,cos(Ω_0t),cos(2Ω_0t),...,cos(kΩ_0t),...,sin(Ω_0t),sin(2Ω_0t),...,sin(kΩ_0t),...)}$中个新号的线性组合,称其为三角函数形式的傅里叶级数。

    其中,系数:

    $$a_k=frac{2}{T_0}int_{t_0}^{t_0+T_0}hat{x}(t)cos(kΩ_0t)dt, k=0,1,...$$

    $$b_k=frac{2}{T_0}int_{t_0}^{t_0+T_0}hat{x}(t)sin(kΩ_0t)dt, k=0,1,...$$

    $$a_0=frac{2}{T_0}int_{t_0}^{t_0+T_0}hat{x}(t)dt$$

    如果$hat{x}(t)$是实偶函数,则$hat{x}(t)cos(kΩ_0t)$是偶函数,$hat{x}(t)sin(kΩ_0t)$是奇函数,此时,$b_k=0$,即$hat{x}(t)$的展开式中没有正弦项。

    如果$hat{x}(t)$是实奇函数,则$hat{x}(t)cos(kΩ_0t)$是奇函数,$hat{x}(t)sin(kΩ_0t)$是偶函数,此时,$a_k=0$,即$hat{x}(t)$的展开式中没有余弦项。

    将正弦项和余弦项合并:

    $$hat{x}(t)=frac{A_0}{2}+sum_{k=1}^{∞}A_kcos(kΩ_0t+φ_k)$$

    其中:

    $$A_k=sqrt{a_k^2+b_k^2}, φ_k=-arctan(frac{b_k}{a_k})$$

    $$a_k=A_kcos(φ_k),b_k=-A_ksin(φ_k)$$

    式中,$A_k$是$k$次谐波振幅,$φ_k$是k次谐波相位,$kΩ_0$为$k$次谐波角频率。

    需要说明的是,只有满足狄里赫利条件的周期信号才可以用傅里叶级数展开,狄里赫利条件如下:

    • $hat{x}(t)$在一个周期内满足绝对可积,即$int_{t_0}^{t_0+T_0}|hat{x}(t)|<∞$;
    • $hat{x}(t)$在一个周期内的不连续点的数目有限;
    • $hat{x}(t)$在一个周期内的极大值和极小值点的数目有限;

    2、傅里叶级数的指数形式

    由欧拉公式我们可以把傅里叶级数的三角形式改写为:

    $$hat{x}(t)=frac{A_0}{2}+sum_{k=1}^{∞}A_kcos(kΩ_0t+φ_k)=frac{A_0}{2}+sum_{k=1}^{∞}frac{A_k}{2}[e^{j(kΩ_0t+φ_k)}+e^{-j(kΩ_0t+φ_k))}]$$

    $$=frac{A_0}{2}+sum_{k=1}^{∞}frac{A_k}{2}e^{jkΩ_0t}e^{jφ_k}+sum_{k=1}^{∞}frac{A_k}{2}e^{-jkΩ_0t}e^{-jφ_k}$$

    $$=frac{A_0}{2}+sum_{k=1}^{∞}frac{A_k}{2}e^{jkΩ_0t}e^{jφ_k}+sum_{k=-∞}^{-1}frac{A_{-k}}{2}e^{jkΩ_0t}e^{-jφ_{-k}}$$

    因为$A_k=sqrt{a_k^2+b_k^2}, φ_k=-arctan(frac{b_k}{a_k})$,并且由$a_k=frac{2}{T_0}int_{t_0}^{t_0+T_0}hat{x}(t)cos(kΩ_0t)dt, k=0,1,...$和$b_k=frac{2}{T_0}int_{t_0}^{t_0+T_0}hat{x}(t)sin(kΩ_0t)dt, k=0,1,...$知$a_k$是关于$k$的偶函数,$b_k$是关于$k$的奇函数,所以又$A_{-k}=A_k$和$φ_{-k}=-φ_k$这两个关系,将这个关系带入上式:

    $$hat{x}(t)=frac{A_0}{2}+sum_{k=1}^{∞}frac{A_k}{2}e^{jkΩ_0t}e^{jφ_k}+sum_{k=-∞}^{-1}frac{A_k}{2}e^{jkΩ_0t}e^{-jφ_k}$$

    $$=sum_{k=-∞}^{∞}frac{A_k}{2}e^{jkΩ_0t}e^{jφ_k}$$

    $A_k$是$k$次谐波振幅,$φ_k$是k次谐波相位,令$frac{1}{2}A_ke^{jφ_k}=|X_k|e^{jφ_k}=X_k$,$X_k$也称为傅里叶系数,则傅里叶级数的指数形式为:

    $$hat{x}(t)=sum_{k=-∞}^{∞}X_ke^{jkΩ_0t}$$

    $$X_k=frac{1}{2}A_ke^{jφ_k}=frac{1}{2}(A_kcos(φ_k)+jA_ksin(φ_k))=frac{1}{2}(a_k-jb_k)$$

    把$a_k$和$b_K$带入上式,计算得:

     $$X_k=frac{1}{T_0}int_{t_0}^{t_0+T_0}hat{x}(t)e^{-jkΩ_0t}dt, k=0,±1,...$$

    三、连续非周期信号的傅里叶变换

    可以把非周期信号看成周期$T$趋于无穷大的周期信号,然后利用前述已经得到的连续周期信号的傅里叶级数表达式来对非周期信号进行频谱分析,由前述信号的频谱可知,当信号周期$T$趋于无穷大时,相邻谱线间隔$Ω=2pi/T$趋于0,从而信号的频谱密度称为连续频谱。同时各频谱分量的幅值也都趋于无穷小,不过这些无穷小量之间仍保持一定的比例关系,为了描述连续非周期信号的频谱特性,引入频谱密度函数的概念。令

    $$X(Ω)=lim_{T o infty}X_kT = lim_{T o  infty} int_{-frac{T}{2}}^{frac{T}{2}}x(t)e^{-jkΩ_0t}dt$$

    由于$T=2pi/Ω$,有:

    $$X(Ω)=lim_{T o infty}2pifrac{X_k}{Ω_0}$$

    从上式可以看出,$X_k/Ω_0$反应了单位频带内的频谱值,故,故$X(Ω)$称为频谱密度函数。当周期$T$趋于无穷大时,相邻谱线间隔$Δ=kΩ_0-(k-1)Ω_0=Ω_0$,趋于$dΩ$,离散频率$kΩ_0$变成连续频率$Ω$,于是上式可以写成:

    $$X(Ω)=int_{-infty}^{infty}x(t)e^{-jΩt}dt$$

    $x(t)$的傅里叶级数表示式可以写成:

    $$x(t)=sum_{k=-infty}^{infty}X_ke^{jkΩ_0t}=sum_{k=-infty}^{infty}frac{X_k}{Ω_0}e^{jkΩ_0t}Ω_0$$

    当周期$T$趋于无穷大时,上式各个参量变化为:

    $$kΩ_0 o Ω$$

    $$Ω_0 o dΩ$$

    $$frac{X_k}{Ω_0} o frac{X(Ω)}{2pi}$$

    $$sum_{k=-infty}^{infty}=int_{-infty}^{infty}$$

    于是$x(t)$的傅里叶级数展开式变成积分形式,即:

    $$x(t)=frac{1}{2pi}sum_{-infty}^{infty}X(Ω)e^{jΩt}dΩ$$

    $x(Ω)$称为$x(t)$的频谱密度函数或频谱函数,而$x(t)$称为$X(Ω)$的原函数,$Ω(t)$与$X(Ω)$构成一对傅里叶变换对,即:

    $$X(Ω)=int_{-infty}^{infty}x(t)e^{-jΩt}dt$$

    $$x(t)=frac{1}{2pi}sum_{-infty}^{infty}X(Ω)e^{jΩt}dΩ$$

    频谱密度函数$X(Ω)$一般为复函数,可以写成:

    $$X(Ω)=|X(Ω)|e^{-jφ(Ω)}$$

    式中,$|X(Ω)|$和$φ(Ω)$分别为$X(Ω)$的模和相位。$|X(Ω)|$表示信号中各频率分量的相对幅值随频率变化的关系,称为幅值频谱。$φ(Ω)$表示信号的相位随频率变化的关系,简称相位频谱。

    注意并不是所有的信号傅里叶变换都存在,信号$x(t)$傅里叶变换存在的充分必要条件是在无线区间内绝对可积:

    $$int_{-infty}^{infty}|x(t)|dt<infty$$

    1、单边指数信号

    单边指数信号可以表示为:
    $$x(t)=e^{-alpha t}ε(t), alpha > 0$$

    根据傅里叶变换的定义,可求得傅里叶变换为:

    $$X(Ω)=int_{-infty}^{infty}x(t)e^{-jΩt}dt=int_{0}^{infty}e^{-alpha t}e^{-jΩt}dt=-frac{1}{alpha + jΩ}e^{-(alpha + jΩ)t}|_0^{infty}=frac{1}{alpha+jΩ}$$

    2、矩形脉冲信号

    矩形脉冲信号可以表示为:
    $$x(t)=E[ε(t+frac{τ}{2})-ε(t-frac{τ}{2})]$$

    根据傅里叶变换的定义,可求得傅里叶变换为:

    $$X(Ω)=int_{-infty}^{infty}x(t)e^{-jΩt}dt=int_{-frac{τ}{2}}^{frac{τ}{2}}Ee^{-jΩt}dt=frac{E}{-jΩ}e^{-jΩt}|_{–frac{τ}{2}}^{frac{τ}{2}}=frac{2E}{Ω}sin(frac{Ωτ}{2})=EτSa(frac{Ωτ}{2})$$

    3、符号函数

    符号函数信号可以表示为:
    $$x(t)=sgn(t)=egin{cases} 1,t>0 \ -1, t<0 end{cases}$$

    很明显符号函数不满足绝对可积条件,但存在傅里叶变换。可以借助奇双边指数信号,通过求极限的方法求解符号函数的傅里叶变换:

    奇双边指数信号可表示为:

    $$x_1(t)=egin{cases} -e^{alpha t},t<0  \ e^{-alpha t}, t > 0end{cases}$$

    当$alpha o 0$时取极限,即符号函数:

    $$sgn(t)=lim_{alpha o 0}x_1(t)$$

    因此它的频谱函数也是$x_1(t)$的频谱函数当$alpha o Ω$时的极限。

    根据傅里叶变换的定义,可求得傅里叶变换为:

    $$X_1(Ω)=int_{-infty}^{infty}x_1(t)e^{-jΩt}dt=int_{-infty}^{0}-e^{-alpha t - jΩt}dt + int_{0}{infty}e^{alpha t - jΩt}dt=frac{1}{alpha + jΩ} - frac{1}{alpha - jΩ}=-frac{j2Ω}{alpha ^2 + Ω^2}$$

    于是符号函数的频谱为:

    $$X(Ω)=lim_{alpha o 0}X_1{Ω}=frac{2}{jΩ}$$

    4、单位冲击信号

    根据傅里叶变换的定义,可求得傅里叶变换为:

    $$X(Ω)=int_{-infty}^{infty}x(t)e^{-jΩt}dt=int_{-infty}^{infty}δ(t)e^{-jΩt}dt=e^{-jΩ0}=1$$

    可见,单位脉冲信号的频谱等于常数,其频谱在整个频率范围内都是均匀分布的。

    5、直流信号

    冲击信号的频谱是常数,那么幅值为常数的直流信号的频谱是否为冲击信号?为此,考虑冲击函数$δ(Ω)$的傅里叶反变换:

    $$F^{-1}[δ(Ω)]=frac{1}{2pi}int_{-infty}^{infty}δ(Ω)e^{jΩt}dΩ=frac{1}{2pi}$$

    因此有:

    $$F[frac{1}{2pi}]=δ(Ω)$$

    $$F[1]=2pi δ(Ω)$$

    6、单位阶跃信号

    单位阶跃函数也不满足绝对可积条件,但借助符号函数,可以降$ε(t)$表示为:

    $$ε(t)=frac{1}{2}+frac{1}{2}sgn(t)$$

    由直流信号和符号函数的傅里叶变换,可得:

    $$F[ε(t)]=F[frac{1}{2}]+F[frac{1}{2}sgn(t)]=pi δ(t)+frac{1}{jΩ}$$

    7、傅里叶变换的性质

     1、线性

    如$F[x_1(t)]=X_1(Ω)$,$F[x_2(t)]=X_2(Ω)$,则对于任意常数$a_1$和$a_2$,有:

    $$F[a_1x_1(t)+a_2x_2(t)]=a_1X_1(Ω)+a_2X_2(Ω)$$

    上述关系很容易由傅里叶变换的定义公式正面。

    2、对偶性

    如$F[x(t)]=X(Ω)$,则

    $$F[X(t)]=2pi x(-Ω)$$

    证明:由傅里叶反变换的定义:

    $$x(t)=frac{1}{2pi}int_{-infty}^{infty}X(Ω)e^{jΩt}dΩ$$

    将$t$换成$-t$,得:

    $$x(-t)=frac{1}{2pi}int_{-infty}^{infty}X(Ω)e^{-jΩt}dΩ$$

    交换自变量$Ω$和$t$,可以得打:

    $$x(-Ω)=frac{1}{2pi}int_{-infty}^{infty}X(t)e^{-jΩt}dt$$

    从而有:

    $$2pi x(-Ω)=int_{-infty}^{infty}X(t)e^{-jΩt}dt=F[X(t)]$$

    若$x(t)$是偶函数,则$F[X(t]=2pi x(Ω)$;若$x(t)$是奇函数,则$F[X(t]=-2pi x(Ω)$.

    3、尺寸变换特性

    如$F[x(t)]=X(Ω)$,则对于实常数$a(a≠0)$,有

    $$F[x(at)]=frac{1}{|a|}X(frac{Ω}{a})$$

    4、时域特性

    如$F[x(t)]=X(Ω)$且$t_0$为常数,则:

    $$F[x(t-t_0)]=e^{-jΩt_0}X(Ω)$$

    5、频域特性

    如$F[x(t)]=X(Ω)$且$Ω_)$为常数,则:

    $$F[x(t)e^{jΩ_0t}]=X(Ω-Ω_0)$$

    6、时频微分特性

    如$F[x(t)]=X(Ω)$,则

    $$F[frac{dx(t)}{dt}]=jΩX(Ω)$$

    7、时域卷积定理

    如$F[x_1(t)]=X_1(Ω)$,$F[x_2(t)]=X_2(Ω)$,则:

    $$F[x_1(t)*x_2(t)]=X_1(Ω)X_2(Ω)$$

    上式表明时域中两个信号的卷积积分对应于频域中两信号频谱的乘积。

    证明:两信号的卷积定义为:

    $$x_1(t)*x_2(t)=int_{-infty}^{infty}x_1(τ)x_2(t-τ)dτ$$

    由傅里叶变换的定义和卷积公式,有:

    $$F[x_1(t)*x_2(t)]=int_{-infty}^{infty} left[ int_{-infty}^{infty}x_1(τ)x_2(t-τ)dτ ight] e^{-jΩt}dt$$

    $$=int_{-infty}^{infty}int_{-infty}^{infty}x_1(τ)e^{-jΩτ}x_2(t-τ)e^{-jΩ(t-τ)}dτdt$$

    $$=int_{-infty}^{infty}int_{-infty}^{infty}x_1(τ)e^{-jΩτ} left[ x_2(t-τ)e^{-jΩ(t-τ)}dt ight] dτ$$

    $$=X_1(Ω)X_2(Ω)$$

    8、频域卷积定理

    如$F[x_1(t)]=X_1(Ω)$,$F[x_2(t)]=X_2(Ω)$,则:

    $$F[x_1(t)x_2(t)]=frac{1}{2pi}X_1(Ω)*X_2(Ω)$$

    上式表明时域中两个信号的乘积对应于频域中两信号频谱卷积积分的$frac{1}{2pi}$倍。

    证明:由傅里叶反变换的定义和卷积公式,有

    $$F[x_1(t)x_2(t)]=int_{-infty}^{infty}x_1(t)x_2(t)e^{-jΩt}dt$$

    $$=int_{-infty}^{infty} left[ frac{1}{2pi}int_{-infty}^{infty}X_1(ξ)e^{jξt}dξ ight] x_2(t)e^{-jΩt}dt$$

    $$=int_{-infty}^{infty}X_1(ξ)dξ left[ int_{-infty}^{infty}x_2(t)e^{-j(Ω-ξ)t}dt ight]$$

    $$=int_{-infty}^{infty}X_1{ξ}X_2{Ω-ξ}dξ$$

    $$=frac{1}{2pi}X_1(Ω)X_2(Ω)$$

     8、信号$frac{1}{pi t}$

    信号$x(t)=frac{1}{pi t}$,傅里叶变换得:

    $$X(Ω)=-j sgn(Ω)=egin{cases}  -j ,Ω>0 \ j, Ω< 0 end{cases}$$

    证明:由对称性可知:

    如$F[x(t)]=X(Ω)$,则

    $$F[X(t)]=2pi x(-Ω)$$

    因为$$F[sgn(x)]=frac{2}{jΩ}$$

    所以$$Fleft[ frac{2}{jt} ight] =2pi sgn(-Ω)=-2pi sgn(Ω)$$

    $$Fleft[ frac{1}{pi t} ight] = Fleft[frac{j}{2pi} * frac{2}{jt} ight] =frac{j}{2pi} * -2pi  sgn(Ω)=-j sgn(Ω)$$

     9、希尔伯特变换

    Hilbert变换定义:

    对于一个实信号$x(t)$,其希尔伯特变换为:

    $$hat{x(t)}=x(t)*frac{1}{pi t}$$

    Hilbert本质上是个转换器,对应频域变换为:

    $$frac{1}{pi t} <=>-j sgn(Ω)$$

    即余弦信号的Hilbert变换是正弦信号,又有:

    $$frac{1}{pi t}*frac{1}{pi t} <=>j sgn(Ω) j sgn(Ω) =  -1$$

    即信号两次Hibert变换后是对其自身相反数,因此正弦信号的Hilbert是负的余弦。

    对应解析信号为:

    $$z(t) = x(t) + jhat{x(t)}$$

    对应的频域变换为:

    $$Z(Ω)=X(Ω)+jX(Ω)sgn(Ω)==X(Ω)+jX(Ω) egin{cases} -j,Ω>0 \ j,Ω<0 end{cases}$$

    此操作实现了信号从双边谱到单边谱的转化。

     Hibert解调原理

    设有窄带信号:

    $$x(t)=alpha (t)cos[2pi f_st+φ(t)]$$

    其中$f_s$是载波频率,$alpha(t)$是$x(t)$的包络,$φ (t)$是$x(t)$的相位调制信号,由于$x(t)$是窄带信号,因此$alpha (t)$也是窄带信号,可设为:

    $$alpha(t) = left [1+sumlimits_{m=1}^M X_mcos(2pi f_mt + gamma_m) ight ]$$

    式中,$f_m$为调幅信号$alpha(t)$的频率分量,$gamma_m$为$f_m$的各初相角。

    对$x(t)$进行Hilbert变换,并求解解析信号$z(t)$,得到:

    $$z(t)=e^{j[2pi f_s t+ φ(t)]}left [ 1+sumlimits_{m=1}^M X_mcos(2pi f_mt + gamma_m) ight]$$

    设:

    $$A(t)=left [ 1+sumlimits_{m=1}^M X_mcos(2pi f_mt + gamma_m) ight]$$

    $$Φ(t) = 2pi f_st+φ(t)$$

    则解析信号$z(t)$可以重新表达为:

    $$z(t)=A(t)e^{jΦ(t)}$$

    解析信号的实部为原始信号$x(t)$本身,解析信号的虚部为原始信号$x(t)$的Hilbert变换$hat{x}(t)$。

    对比$x(t)$表达式,容易发现:

    $$alpha(t) = A(t) = sqrt{x^2(t)+hat{x}^2(t)}$$

    $$φ(t) = Φ(t)-2pi f_st=arctanfrac{x(t)}{hat{x}(t)}-2pi f_st$$

    由此可以得出:对于窄带信号$x(t)$,利用Hilbert可以求解解析信号$z(t)$,从而得到信号$x(t)$的幅值解调$alpha(t)$和相位解调$φ(t)$,并利用相位解调求解频率解调$f(t)$(相位对时间求导即频率),因此:

    $$f(t)=frac{1}{2pi} frac{dφ(t)}{dt}=frac{1}{2pi}frac{dΦ(t)}{dt}-f_s$$

    参考文章

    [1]连续时间信号频域周期信号傅里叶级数和非周期信号傅里叶变换的分析

    [2]信号处理——Hilbert变换及谱分析(后面有matlab程序案例)

  • 相关阅读:
    Unity资源打包学习笔记(一)、详解AssetBundle的流程
    Unity实现c#热更新方案探究(三)
    Unity实现c#热更新方案探究(二)
    Unity实现c#热更新方案探究(一)
    对C#热更新方案ILRuntime的探究
    Unity使用C++作为游戏逻辑脚本的研究(二)
    执行composer install/update 命令遇 "You are using an outdated version of Composer. Composer 2.0 is abo...
    php 安装xdebug进行调试(phpstorm)
    phpstudy如何设置Nginx伪静态
    JS正则表达式
  • 原文地址:https://www.cnblogs.com/zyly/p/10168397.html
Copyright © 2011-2022 走看看