数字调制分为三步:

  1. 比特映射:比特bkb_kbk​映射到符号InI_nIn​(一个复数,即IQ调制的复数星座点,即IQ两路实信号),符号可以取MMM种离散值,称为MMM元的,一个多元符号承载多个比特;
    一系列符号组成了一个冲激函数序列I(t)=∑n=−∞∞Inδ(t−nTs)I(t)=\sum_{n=-\infty}^{\infty}I_n\delta(t-nT_s)I(t)=∑n=−∞∞​In​δ(t−nTs​)
  2. 脉冲成形:每个符号对应产生某种波形,所有符号的波形按时间顺序叠加
    符号序列经过成形滤波器g(t)g(t)g(t),输出电路中的连续波形,即基带信号s(t)=I(t)∗g(t)=∑n=−∞∞Ing(t−nTs)s(t)=I(t)*g(t)=\sum_{n=-\infty}^{\infty}I_ng(t-nT_s)s(t)=I(t)∗g(t)=n=−∞∑∞​In​g(t−nTs​)

使用不同成形脉冲的效果不同:
使用矩形脉冲,则基带信号为不断变化的矩形电平,经过上变频后得到理想正弦波;
然而,实际中常使用升余弦滚降滤波器作为成形滤波器,时域基带信号更平滑(而非矩形电平),从而上变频后能够抑制带外泄露

  1. 上变频:将基带信号s(t)s(t)s(t)搬移至载波,这部分和模拟调制类似
    在实际中,我们传输复信号s(t)s(t)s(t)(即星座点),这一部分等效实现为IQ调制(用实频带信号传输复基带信号)

下面先接收数字调制中遇到的两个问题,然后介绍「脉冲成形」是如何解决这两个问题的

问题:带外泄露

带外泄露:信号超出了规定的工作频带,从而可能影响工作在相邻频段的系统;
另外,带宽过大时,经过带限信道后,信号也会变形,从而产生误码

  • 通信中信道的频带资源有限,因此要严格控制带外泄露,具体而言也就是通过控制基带信号的带宽,从而控制已调信号的带宽(频谱搬移关系)
  • 脉冲成形的作用之一是控制带外泄露,下面将看到,选择不同的成形滤波器,得到的信号频谱是不同的

问题:码间串扰

解调时,对当前符号的判决不利的两个因素是「噪声」和「码间串扰ISI」,码间串扰ISI就是其他符号(的时域拖尾)对当前采样时刻的干扰

脉冲成形后,基带信号=时域上不同时刻的一系列脉冲信号的叠加,如果一个码元 / 脉冲 达到最大幅值时,其他所有码元幅值刚好为0,则在此时进行采样判决,码元直接不会相互影响,这就是无码间串扰

无码间串扰:Nyquist准则

基带信号是脉冲成形的波形的叠加(这里假设接收信号与发射信号相同):r(t)=s(t)=∑n=−∞∞Ing(t−nTs)r(t)=s(t)=\sum_{n=-\infty}^{\infty}I_ng(t-nT_s)r(t)=s(t)=n=−∞∑∞​In​g(t−nTs​)

解调时,对r(t)r(t)r(t)做TsT_sTs​的等间隔采样(每个符号抽样判决一次),采样结果为r(nTs)r(n T_{s})r(nTs​),那么无码间串扰,就是希望r(nTs)=Inr(n T_{s})=I_nr(nTs​)=In​(也就是说,采样时不希望受到其他时刻符号值的影响)

系数InI_nIn​只影响r(nTs)r(n T_{s})r(nTs​)的幅度,将其忽略,只关注脉冲成形函数g(t)g(t)g(t),那么无码间串扰就是 要求g(t)g(t)g(t)在特殊位置的拖尾为0,即g(nTs)={1n=00n≠0g\left(nT_{s}\right)=\left\{\begin{array}{ll}1 \quad n=0 \\0 \quad n \neq 0\end{array}\right.g(nTs​)={1n=00n=0​(各符号的拖尾不影响其他符号在其他时刻的抽样判决)

进一步求解对g(t)g(t)g(t)频谱的约束条件

上面说过,接收端抽样判决时,对r(t)r(t)r(t)做TsT_sTs​的等间隔采样,真正影响结果的是g(t)g(t)g(t),因此变为对g(t)g(t)g(t)做TsT_sTs​的等间隔采样得到gs(t)=g(t)∑n=−∞∞δ(t−nTs)=∑n=−∞∞g(nTs)δ(t−nTs)Gs(ω)=12πG(ω)∗[2πTs∑n=−∞∞δ(ω−2πnTs)]=1Ts∑n=−∞∞G(ω−2πnTs)g_{s}(t)=g(t) \sum_{n=-\infty}^{\infty} \delta(t-n T s)=\sum_{n=-\infty}^{\infty} g\left(n T_{s}\right) \delta(t-n T s)\\G_{s}(\omega)=\frac{1}{2\pi}G(\omega)*[\frac{2\pi}{T_s}\sum_{n=-\infty}^{\infty} \delta(\omega-\frac{2\pi n}{T_s})]=\frac{1}{T_s}\sum_{n=-\infty}^{\infty} G(\omega-\frac{2\pi n}{T_s})gs​(t)=g(t)n=−∞∑∞​δ(t−nTs)=n=−∞∑∞​g(nTs​)δ(t−nTs)Gs​(ω)=2π1​G(ω)∗[Ts​2π​n=−∞∑∞​δ(ω−Ts​2πn​)]=Ts​1​n=−∞∑∞​G(ω−Ts​2πn​)
带入g(nTs)={1n=00n≠0g\left(nT_{s}\right)=\left\{\begin{array}{ll}1 \quad n=0 \\0 \quad n \neq 0\end{array}\right.g(nTs​)={1n=00n=0​的要求,上面两式必须满足gs(t)=∑n=−∞∞g(nTs)δ(t−nTs)=δ(t)Gs(ω)=1Ts∑n=−∞∞G(ω−2πnTs)=1(做上式的傅里叶变换可知)g_{s}(t)=\sum_{n=-\infty}^{\infty} g\left(n T_{s}\right) \delta(t-n T s)=\delta(t)\\G_{s}(\omega)=\frac{1}{T_s}\sum_{n=-\infty}^{\infty} G(\omega-\frac{2\pi n}{T_s})=1(做上式的傅里叶变换可知)gs​(t)=n=−∞∑∞​g(nTs​)δ(t−nTs)=δ(t)Gs​(ω)=Ts​1​n=−∞∑∞​G(ω−Ts​2πn​)=1(做上式的傅里叶变换可知)

这就是Nyquist准则

  • 第一个式子保证时域拖尾互不干扰,时域上每隔TsT_sTs​采样,除了本码元采样点之外的所有采样点应该为0
  • 第二个式子是说,将频谱G(ω)G(\omega)G(ω)以2πnTs\frac{2\pi n}{T_s}Ts​2πn​为周期延拓后,所有延拓的频谱叠加,应该为常数TsT_sTs​;
    或者也可以说将频谱G(ω)G(\omega)G(ω)沿ω\omegaω轴以2πnTs\frac{2\pi n}{T_s}Ts​2πn​为长度切段,平移各个段到一起并累加,应该为常数TsT_sTs​

要满足Nyquist准则,脉冲成形函数g(t)g(t)g(t) / 基带信号s(t)s(t)s(t)的的最小带宽为B0≥12Ts=Rs2B_0\geq \frac{1}{2T_s}=\frac{R_s}{2}B0​≥2Ts​1​=2Rs​​(或数字频率2πB02\pi B_02πB0​)
注意,这里的带宽B0B_0B0​是理想低通信道的带宽
或者等价的说,带通信道的Nyquist带宽为B0≥RsB_0\geq R_sB0​≥Rs​

实际中,OFDM信号就达到带通信道的奈奎斯特带宽,理论上最节约信道资源
虽然实际上基带信道带宽略大于Rs2\frac{R_s}{2}2Rs​​,但是相邻频带重叠,利用子载波正交性总体上仍没有重叠,即等效于到达了最小的奈奎斯特带宽,实现理论最大频带利用率

扩展:奈奎斯特带宽、奈奎斯特速率

在Nyquist准则的基础上,我们又得到了奈奎斯特带宽、奈奎斯特速率的概念

信道容量:在信道中进行无差错传输可达的最大信息速率

解调时,对当前符号的判决不利的是「噪声」和「码间串扰ISI」,在不同信道情况下,计算信道容量的方式不同。下面可以看出,「码间串扰ISI」是信道容量永远无法摆脱的内在束缚,而「噪声」的存在进一步减小了信道容量

  1. 理想无噪信道:数据率的限制仅来自于信号的「带宽 」(涉及码间串扰限制),计算信道容量使用奈奎斯特准则
    理解:即使没有噪声,信号自己会对自己造成干扰(这就是码间干扰,就像说话太快前后几个字混淆不清),但是只要增加带宽就能增加数据率

奈奎斯特准则的理论,延伸出奈奎斯特带宽和奈奎斯特速率两个概念(下面的BBB是理想的低通信道的带宽)
奈奎斯特带宽:固定了符号速率Rs=1TsR_s=\frac{1}{T_s}Rs​=Ts​1​,则在无噪信道无ISI(无差错)传输所需的最小带宽B≥Rs2B\geq \frac{R_s}{2}B≥2Rs​​
奈奎斯特速率:固定了带宽BBB,那么在无噪信道无ISI(无差错)传输能达到的最大符号速率为Rs≤2BR_s\leq2BRs​≤2B
根据奈奎斯特速率,无噪信道容量:C=2Blog2M(bps)C=2Blog_2M(bps)C=2Blog2​M(bps),其中MMM为一个码元可能对应的离散值个数

  1. 实际有噪信道:数据率上限由「带宽」和「信噪比」共同决定(而不仅仅是带宽了),计算信道容量使用香农公式
    理解:有噪声的情况下,香农公式指出,无限增加带宽就不一定能相应增加传输速率了,因为信道带宽增加其中混入的白噪声也就增加了(信道容量上限lim⁡B→∞C=log2e⋅(S/n0),n0为噪声功率谱密度\lim_{B\rightarrow\infty C=log_2e\cdot(S/n_0)},n_0为噪声功率谱密度limB→∞C=log2​e⋅(S/n0​)​,n0​为噪声功率谱密度)

有噪信道容量:C=2Blog2(1+SNR)C=2Blog_2(1+SNR)C=2Blog2​(1+SNR),其中MMM为一个码元可能对应的离散值个数

脉冲成形

想要在信道中真正传输数字信号(如01比特),必须将它们转化为一定的电路波形 / 脉冲信号,称为脉冲成形
脉冲成形,具体实现方法就是冲激信号经过基带滤波器g(t)g(t)g(t)(一个滤波器),得到时域脉冲波形,下面讨论什么样的g(t)g(t)g(t)是合适的


结论:

  • 理论分析中可以用矩形脉冲,但实际中均为类似sinc的脉冲,由升余弦滚降滤波器生成
  • 注意,采用sinc脉冲会进一步导致PSK / QAM调制得到的波形,实际与理论不同,然后我们在实际中并不需要关注调制后的波形如何,只要关注波形解调后对于sinc脉冲的采样判决,后面将看到,sinc脉冲能很好的降低码间串扰
  • 接收端收到基带的脉冲信号,进行采样判决,再将其还原为一个个符号,进而得到数字信号

具体分析如下:

矩形脉冲:带宽无限,不可行

最容易想到的脉冲就是矩形脉冲,我们直接用其高低电平来对应数字信号,然而脉冲信号的频谱有无限的带宽:F[rect(tτ)]=τsinc(τf)\mathscr F[rect(\frac{t}{\tau})]=\tau sinc(\tau f)F[rect(τt​)]=τsinc(τf)
实际信道带宽有限,这样就会导致传输后信号频谱变形,时域信号失真,很容易误判
或者说,带外功率的衰减慢,带外泄露强

如图,发送端的理想矩形脉冲,经过信道后信号失真(频域上低通,时域上平滑),从而误判

可见,矩形脉冲在频域上带宽无限,经过带限信道很容易失真,这就是为什么要控制带外泄露
接下来尝试选择其他更合适的脉冲成形滤波器

sinc脉冲:理想的脉冲成形

根据尺度变换性质F[x(αt)]=1∣α∣X(ωα)\mathscr{F}[x(\alpha t)]=\frac{1}{|\alpha|}X(\frac{\omega}{\alpha})F[x(αt)]=∣α∣1​X(αω​),尺度变换因子α\alphaα对时域和频域的作用是相反的:

  • α>1\alpha>1α>1时域波形变窄,则频谱变宽(含有更多高频分量)
  • 也可以说,时域信号的跳变引起频域的扩展(时域跳变包含大量高频成分,从而频谱变宽)
    频域信号的跳变引起时域的扩展

既然需要有限宽的频谱来减少带外泄露,则根据傅里叶变换的对偶性,我们想到F[sinc(τt)]=1τrect(fτ)\mathscr F[sinc(\tau t)]=\frac{1}{\tau}rect(\frac{f}{\tau})F[sinc(τt)]=τ1​rect(τf​)
左侧为sinc信号时域波形,右侧为频谱(理想LPF)

使用sinc作为脉冲信号,优点如下:

  • 频谱带宽有限(理想LPF的频谱),经过带通信道不失真
  • 实现简单:脉冲成形的成形滤波器就是理想LPF
  • sinc信号每间隔1/τ1/\tau1/τ幅值取0(τ\tauτ为其矩形频谱的总宽度,即2倍LPF带宽BBB),因此只要sinc脉冲信号的发送间隔为1/τ=1/(2B)1/\tau=1/(2B)1/τ=1/(2B),即码元速率Rs=2BR_s=2BRs​=2B,即可实现无码间串扰

如图,如果一个码元 / 脉冲 达到最大幅值时,其他所有码元幅值刚好为0,在此时进行采样判决,码元直接不会相互影响,这就是无码间串扰

sinc函数实现了Nyquist准则要求的最小带宽Rs/2R_s/2Rs​/2,并且无码间干扰ISI,但问题在于

  • sinc脉冲成形对应的基带滤波器是理想LPF,是不可能实现的

  • 理想的LPF是非因果滤波器(需要未来的输入),想要实现必须将系统冲激响应做延时(将一段时间的输入缓存下来),转化为因果系统;
    并且,延时取决于 信号何时衰减至可以被忽略,i.e.信号衰减越快,可以使用越小的延时

  • 衰减速度慢还带来其他缺点:拖尾衰减速度慢,且拖尾振荡幅度大,因此出现定时偏差/采样时刻偏离时导致严重码间串扰(有定时偏差,不能保证当前码元抽样时刻“对齐”了其余码元取值为0的位置,从而由于拖尾引起码间串扰**)
    也就是说,拖尾衰减慢,则要求采样精度更高

综上,sinc函数作为脉冲成形函数,理论上可行,实际上仍需改进(希望加快衰减速度)

升余弦滚降滤波器:从理想sinc到实际应用

sinc脉冲成形函数的缺点是时域拖尾长,但频谱是理想LPF,无法实现;
由于频域信号的跳变引起时域的扩展,可以采用频谱更平滑的成形滤波器,从而时域拖尾衰减更快,即升余弦滚降滤波器
实际应用中,使用「升余弦滚降滤波器RC」来逼近理想的LPF,并且能够控制脉冲的拖尾衰减速度
升余弦滚降滤波器RC可以加速信号拖尾的衰减,代价是频带的展宽

如右图,升余弦滚降滤波器RC一般有过渡带,且过渡带就是把余弦函数的一个周期升高了1,故称"升余弦"g(t)=sinc⁡(tTs)cos⁡(παt/Ts)1−(2αt/Ts)2G(ω)={Ts∣ω∣⩽∣1−α∣2πB0Ts2[1+cos⁡∣ω∣−(1−α)2πB04αB0]∣1−α∣2πB0<∣ω∣⩽∣1+α∣2πB00∣ω∣>∣1+α∣2πB0g(t)=\operatorname{sinc}\left(\frac{t}{T_{s}}\right) \frac{\cos \left(\pi \alpha t / T_{s}\right)}{1-\left(2 \alpha t / T_{s}\right)^{2}}\quad G(\omega)=\left\{\begin{array}{ll} T_{s} & |\omega| \leqslant|1-\alpha| 2 \pi B_{0} \\ \frac{T_{s}}{2}\left[1+\cos \frac{|\omega|-(1-\alpha) 2 \pi B_{0}}{4 \alpha B_{0}}\right] & |1-\alpha| 2 \pi B_{0}<|\omega| \leqslant|1+\alpha| 2 \pi B_{0} \\ 0 & |\omega|>|1+\alpha| 2 \pi B_{0} \end{array}\right.g(t)=sinc(Ts​t​)1−(2αt/Ts​)2cos(παt/Ts​)​G(ω)=⎩⎨⎧​Ts​2Ts​​[1+cos4αB0​∣ω∣−(1−α)2πB0​​]0​∣ω∣⩽∣1−α∣2πB0​∣1−α∣2πB0​<∣ω∣⩽∣1+α∣2πB0​∣ω∣>∣1+α∣2πB0​​

升余弦滚降滤波器的关键参数是 滚降系数α\alphaα,满足0≤α≤10\leq\alpha\leq10≤α≤1
如图,升余弦滚降滤波器RC的频率响应是平缓的(因此可近似实现),过渡带中心为B=12Ts=f0B=\frac{1}{2T_s}=f_0B=2Ts​1​=f0​

  • 无论α\alphaα取值如何,时域波形仍然满足:每间隔Ts=12B=12f0T_s=\frac{1}{2B}=\frac{1}{2f_0}Ts​=2B1​=2f0​1​取值为0
  • 无论α\alphaα取值如何,频率响应的过渡带中心固定为f0f_0f0​

要满足无码间串扰:

  • 利用时域的波形特点,保证脉冲信号的发送间隔为1/(2f0)1/(2f_0)1/(2f0​),即码元速率Rs=2f0R_s=2f_0Rs​=2f0​
  • 或者考虑频域:满足Nyquist准则(频谱以RsR_sRs​做周期延拓并叠加后为恒定常数),这也要求了必须取f0=Rs/2f_0=R_s/2f0​=Rs​/2,才能满足无码间串扰

从两个角度分析,得到的结果是统一的

  • α\alphaα控制了频率响应的过渡带宽度,过渡带中心f0f_0f0​向左有αf0\alpha f_0αf0​宽度,向右同样有αf0\alpha f_0αf0​宽度,故总带宽(1+α)f0(1+\alpha)f_0(1+α)f0​
    α=0\alpha=0α=0就是理想LPF的情况,α\alphaα增大,频域增大带宽(实现难度降低),时域的信号拖尾衰减加快(能够减小由定时偏差带来的码间串扰),然而α\alphaα过大也意味着频带利用率η\etaη降低(见后文),需要权衡利弊(一般取α=0.3\alpha=0.3α=0.3)

综上,为了无码间串扰,升余弦滚降滤波器RC的过渡带中心必须取f0=Rs/2f_0=R_s/2f0​=Rs​/2,进而时域脉冲信号带宽(1+α)Rs/2(1+\alpha)R_s/2(1+α)Rs​/2;

对比:满足奈奎斯特准则的成形滤波器,最小带宽正是Rs/2R_s/2Rs​/2,而升余弦滚降滤波器的带宽略大于Rs/2R_s/2Rs​/2

这也意味着升余弦滚降滤波器RC的频带利用率η=Rs(1+α)Rs/2=21+α(Baud/Hz)\eta=\frac{R_s}{(1+\alpha)R_s/2}=\frac{2}{1+\alpha}(Baud/Hz)η=(1+α)Rs​/2Rs​​=1+α2​(Baud/Hz),即上述的 α\alphaα越大频带利用率η\etaη越低

最终,采样升余弦滚降滤波器作为基带滤波器,进行脉冲成形,得到的时域波形如下:

可见,在每个抽样点处,当前码元的幅值达到最大,而其余码元在该点幅值为0,从而无码间串扰,能够正确判决

眼图:评估码间串扰情况

眼图是评价实际系统的码间串扰情况的工具,示波器叠加显示基带信号的波形,波形如同眼睛,称为眼图

眼图生成原理

理论上当前码元的波形受其余所有码元的拖尾影响,但最主要的影响来自前后两个码元,因此我们只关注连续三个码元的时域叠加波形即可:三个码元所有可能取值为000、001、010、011、100、101、110、111000、001、010、011、100、101、110、111000、001、010、011、100、101、110、111

和上面的图片同理,上图中000000000三个码元的合成波形为(码元000对应的是正脉冲)

001001001三个码元的合成波形为

010010010三个码元的合成波形为

由此类推,所有可能的连续三个码元的时域波形叠加,得到了眼图

眼图能显示噪声和码间串扰的影响

  • 噪声:导致眼图中的线迹模糊不清
  • 码间串扰:导致“眼睛”张开的更小、眼图不端正(眼图的中心时刻对应了当前码元的采样判决时刻,如果混入了其他码元的影响,则“眼睛”就逐渐闭上了)

通信原理学习笔记5-1:数字调制——脉冲成形滤波器选择(码间串扰、Nyquist准则、升余弦滚降滤波器、眼图)相关推荐

  1. 通信原理学习笔记5-2:数字调制——连续相位和恒包络问题(非线性功放、连续相位CP FSK信号、最小频移键控MSK、GMSK)

    为了最大程度利用非线性功放,需要降低信号PAPR,这要求信号具有恒包络特性 信道带宽有限,需要降低信号带外泄露(进而传输失真小),要求信号具有连续相位特性(从而高频成分少) 波形连续和恒包络之间存在矛 ...

  2. 通信原理学习笔记2-1:模拟调制——相干解调的载波恢复、锁相环(平方环/Costas环)、变频/混频技术

    原始信号为基带模拟信号,要想在空气中传播信号,必须使用频带信号(频率高则天线长度降低,且可能进行频分复用等) 要产生频带信号,需要频谱搬移,这就是调制:基带信号经过调制,得到已调信号/调制信号/频带信 ...

  3. 通信原理学习笔记6-2:数字解调——抽样和符号同步

    采样 根据6-1的推导:在无ISI时,任意位置nnn上的一个符号InI_nIn​,经过AWGN信道.匹配滤波器.采样后,得到符号YnY_{n}Yn​Yn=In+nnY_{n}=I_{n}+n_{n}Y ...

  4. 通信原理学习笔记6-5:数字解调——译码的硬判决与软判决

    卷积码的Viterbi译码.LDPC的译码,都有两种方式:硬判决(hard decision)与软判决(soft decision) 硬判决 硬判决就是将信号波形与判决门限比较,数字解调器的输出(即后 ...

  5. 通信原理学习笔记6-4:数字解调——抽样判决的译码准则(最大后验概率准则MAP、最大似然准则ML、最小二乘/最小平方准则LS、最小距离准则)

    判决译码 在无ISI时,任意位置nnn上的一个符号InI_nIn​,经过AWGN信道.匹配滤波器.采样后,得到符号YnY_{n}Yn​Yn=In+nnY_{n}=I_{n}+n_{n}Yn​=In​+ ...

  6. 通信原理学习笔记3-3:数字通信系统概述(数字调制、IQ调制与PSK / QAM)

    我们将数字通信系统分为三个主要模块: 信源默认为数字信源,但是如果是模拟信源,还需要模数转换(包含采样.量化.编码,未画出) 数字信源经过信源编码.信道编码和交织处理,提高了有效性和可靠性 然后进行数 ...

  7. 通信原理学习笔记3-1:数字通信系统概述(模数转换、时频域采样定理)

    数字通信系统模型 数字通信系统模型如下: 各部分功能: 信源输入:输入原始基带信号(可以是模拟信号) 信源编码:采样+量化+编码(模数转换+压缩冗余) 信道编码:保证传输无差错,可以是自带校验信息的F ...

  8. 通信原理学习笔记:数字信号的基带传输

    数字基带信号的码型 不同形式的数字基带信号,具有不同的频谱结构,对应不同的信道条件,采用不同的码型有利于传输. 码型变换:数字信息的电脉冲表示过程 在设计数字基带信号码型时,应当考虑到, 低频受限的信 ...

  9. 通信原理 day8,day9:第五章:数字基带传输系统的组成;常用基带信号传输码型;数字基带信号的功率谱;无码间串扰;无码间串扰系统;预编码

    文章目录 1.数字基带传输系统基本模型 2.基带信号的基本波形 3.常用的基带信号传输码型 4.数字基带信号的功率谱 5.码间串扰:无码间串扰条件 5.1 码间串扰定义 5.2 无码间串扰条件 5.3 ...

  10. 通信原理学习笔记2-3:复信号分析(解析信号与预包络)、IQ调制与复信号的传输

    实信号频谱的共轭对称性和冗余性 已经知道,傅里叶变换中的复指数ejωte^{j\omega t}ejωt带来了负频率,意义是旋转向量ejωte^{j\omega t}ejωt的旋转方向(顺/逆时针) ...

最新文章

  1. Spring复习笔记:4
  2. shell实例100例《一》
  3. ASP.NET 2.0的异步页面刷新真给劲
  4. jquery在ie浏览器下中文乱码的问题
  5. FPGA自定义UART传输(包含:matlab数据拆分)
  6. c# 将图片转成透明背景的png 源代码_有机_有机认证标【高清png素材】
  7. 变态一把,从internet获取所有手机号以及所在地
  8. VC控制台输出时设置字体及背景颜色
  9. npm/cnpm install是啥意思
  10. C++ 公有继承、保护继承和私有继承中类成员的访问权限的控制
  11. 库克:苹果商店收取30%佣金是应该的
  12. 线性代数与矩阵论 习题 1.2.1
  13. DP(递归打印路径) UVA 662 Fast Food
  14. oracle数据库ora01012错误,Oracle自定义异常收集(二)
  15. A88xm-plus 主板采用Clover实现 m2 固态硬盘启动
  16. IPFS为什么被学者称为数据的“黄金保险柜”?
  17. ICA原理推导及代码实现
  18. c++《AVL树的概念》《AVL树的插入》《AVL树的旋转》《AVL树的验证》《AVL树的删除》《AVL树的性能》
  19. 写了也不看之第一学期c语言总结
  20. 计算机维修宣传稿,电脑义务维修活动策划书

热门文章

  1. c语言一些简单的程序
  2. Pytorch:卷积神经网络-空洞卷积
  3. 浏览器第二节:TCP协议:如何保证页面文件能被完整送达浏览器
  4. 半导体物理学——(四)半导体的导电性
  5. RS232、RS485、RS422、RJ45接口,终于弄明白了!
  6. RENIX 软件如何进行IP地址管理——网络测试仪实操
  7. C++学习(四六六)Multiple parse contexts are available for this file
  8. 个人微信小程序开发入门教程:下载微信开发工具
  9. iec104点号_IEC104规约流程
  10. Bus Hound 使用指南