信号与系统复习笔记——信号与系统的时域和频域特性

news2024/7/30 10:33:40

信号与系统复习笔记——信号与系统的时域和频域特性

傅里叶变换的模和相位表示

一般来说,傅里叶变换的结果是复数,所以能够使用模和相位来表示,具体的有:

X ( j ω ) = ∣ X ( j ω ) ∣ e j ∡ X ( j ω ) X(j\omega) = |X(j\omega)|e^{j\measuredangle X(j\omega)} X()=X()ejX()

其中模使用 ∣ X ( j ω ) ∣ |X(j\omega)| X() 表示,相位使用 ∡ X ( j ω ) \measuredangle X(j\omega) X() 表示。

对于离散傅里叶变换也同理:

X ( e j ω ) = ∣ X ( e j ω ) ∣ e j ∡ X ( e j ω ) X(e^{j\omega}) = |X(e^{j\omega})|e^{j\measuredangle X(e^{j\omega})} X(e)=X(e)ejX(e)

傅里叶变换的幅值和相位同时影响了时域信号。

线性时不变系统的频率响应的模和相位表示

一个线性时不变系统的响应可以表示为:

Y ( j ω ) = H ( j ω ) X ( j ω ) Y(j\omega) = H(j\omega)X(j\omega) Y()=H()X()

若从相位和幅值的角度考虑:

∣ Y ( j ω ) ∣ = ∣ H ( j ω ) ∣ ∣ X ( j ω ) ∣ |Y(j\omega)| = |H(j\omega)||X(j\omega)| Y()=H()∣∣X()

∡ Y ( j ω ) = ∡ H ( j ω ) + ∡ X ( j ω ) \measuredangle Y(j\omega) = \measuredangle H(j\omega) + \measuredangle X(j\omega) Y()=H()+X()

即响应的幅值等于系统频率函数的幅值乘以输入信号的幅值,响应的辐角等于系统频率函数的辐角加上输入信号的辐角。

因此,我们称 ∣ H ( j ω ) ∣ |H(j\omega)| H() 为系统的 增益 ,而 ∡ H ( j ω ) \measuredangle H(j\omega) H() 称为系统的 相移 。若系统在其中之一产生了我们不希望有的变化,我们称为幅度或者相位失真。

群时延

对于相移是一个关于 ω \omega ω 的线性函数的时候,此时相移在时域上就有一个直观的解释,具体的,当:

H ( j ω ) = e − j ω t 0 H(j\omega) = e^{-j \omega t_0} H()=et0

系统的增益为 ∣ H ( j ω ) ∣ = 1 |H(j\omega)| = 1 H()=1 而相移为 ∡ H ( j ω ) = − ω t 0 \measuredangle H(j\omega) = -\omega t_0 H()=ωt0 ,我们知道,这样的系统表示一个输出相对于输入的时间延迟:

y ( t ) = x ( t − t 0 ) y(t) = x(t - t_0) y(t)=x(tt0)

离散情况下也同理,但必须是整数斜率。当不是一个整数的时候,其时域效果就要更复杂一些。,大致来说,时域相当于是连续情况下相对于包络的序列移动,这可能会改变幅值。

对于非线性的相移函数来说,我们可以考虑其中对于某一小段频率的影响,具体的我们在 ω \omega ω 处进行一阶泰勒展开,得到的结果是:

∡ H ( j ω ) ≃ − ϕ − ω α \measuredangle H(j\omega) \simeq -\phi - \omega\alpha H()ϕωα

这样就有:

Y ( j ω ) ≃ X ( j ω ) ∣ H ( j ω ) ∣ e − j ϕ e − j ω α Y(j\omega) \simeq X(j\omega) |H(j\omega)|e^{-j\phi} e^{-j\omega\alpha} Y()X()H()ejϕeα

这就说明,对于频率 ω \omega ω 来说,先乘以一个恒定的复数因子 e − j ϕ e^{-j\phi} ejϕ 再乘以一个在 ω \omega ω 极小邻域内的公共时延 e − j ω α e^{-j\omega\alpha} eα 。我们称 α \alpha α 是频率 ω \omega ω 的群时延,定义为:

τ ( ω ) = − d ∡ H ( j ω ) d ω \tau(\omega) = -\frac{d \measuredangle H(j\omega)}{d\omega} τ(ω)=dωdH()

伯德图

对于一个线性时不变系统的响应,辐角是相加关系,若也将幅值写成相加关系或许会更加方便,我们可以利用对数的性质,即:

log ⁡ ∣ Y ( j ω ) ∣ = log ⁡ ∣ H ( j ω ) ∣ + log ⁡ ∣ X ( j ω ) ∣ \log |Y(j\omega)| = \log |H(j\omega)| + \log |X(j\omega)| logY()=logH()+logX()

一般的对数标尺采用 20 log ⁡ 10 20\log_{10} 20log10 为单位,称为分贝dB。

0dB相当于增益为1,20dB相当于10倍增益,-20dB相当于衰减10倍,6dB近似的是2倍增益(一个八度)。

对于连续的时间系统,采用对数的频率坐标系会更加的方便,这是因为,大多数低通的物理系统在几十兆赫兹左右才开始衰减,若采用线性坐标系,则表示衰减不明显。

因此,我们将 H ( j ω ) H(j\omega) H() 表示为频率坐标为 log ⁡ 10 \log_{10} log10 单位的,辐角表示为 ∡ H ( j ω ) \measuredangle H(j\omega) H() ,幅值表示为 20 log ⁡ 10 ∣ H ( j ω ) ∣ 20\log_{10} |H(j\omega)| 20log10H() 的图像称为 伯德图

特别的,物理中大部分信号都是实数信号,那么 ∣ H ( j ω ) ∣ |H(j\omega)| H() 就是 ω \omega ω 的偶函数,而 ∡ H ( j ω ) \measuredangle H(j\omega) H() 就是 ω \omega ω 的奇函数。由于这个原理, − ω -\omega ω 部分可以通过 + ω +\omega +ω 表示出来,因此实信号伯德图通常省略 − ω -\omega ω 部分。对于辐角,我们通常表示在 [ − π , π ] [-\pi,\pi] [π,π] 的范围内,称为 主值相位

对于实信号的离散的傅里叶变换,由于其是一个 2 π 2\pi 2π 的函数,我们只画出其在 [ 0 , 2 π ] [0,2\pi] [0,2π] 的范围内的图像即可。

理想滤波器的时域特性

一个连续时间的理想低通滤波器的频率响应表示为:

H ( j ω ) = 1 , ∣ ω ∣ ≤ w c H(j\omega) = 1, |\omega| \le w_c H()=1,ωwc

其中 w c w_c wc 称为截止频率。

我们曾经求出,理想低通滤波器对应的单位冲激响应为:

h ( t ) = s i n w c t π t h(t) = \frac{sin w_c t}{\pi t} h(t)=πtsinwct

其图像表示为抽样函数的特征:

冲激响应

我们发现,当 ω c \omega_c ωc 越大,其最大值越大,时域范围越窄,当 ω c \omega_c ωc 无限大,称为 全通系统 ,其单位冲激响应仍然是单位冲激函数。

对于阶跃响应,我们知道是单位冲激响应的积分:

s ( t ) = ∫ − ∞ t h ( t ) d t s(t) = \int_{-\infty}^t h(t) dt s(t)=th(t)dt

其图像为:

阶跃响应

我们发现,积分值在区间 [ − π ω c , π ω c ] [-\frac{\pi}{\omega_c},\frac{\pi}{\omega_c}] [ωcπ,ωcπ] 变化最快,我们称这段区间为 上升时间 反比与滤波器的带宽。

并且,任何的低通滤波器都存在振铃现象(过冲和过放),这是因为带宽不是无穷大带来的影响。

非理想滤波器的时域特性

理想滤波器是一个非因果系统,现实中的滤波器都是非理想滤波器,即在通频带到截止带之间的衰减是渐变过渡,而不是冲激过渡的。

一个非理想滤波器的增益曲线可以描述成:

非理想滤波器

非理想滤波器的增益曲线由三部分组成, 通带、过渡带和阻带

其中,通带的增益有个允许容限,称为 通带纹波 ,阻带的增益有个允许容限,称为 阻带纹波 ,过渡带的两个频率边缘称为 通带边缘阻带边缘

而对于非理想滤波器的相位曲线,我们希望其是线性或是近似线性的。

对于非理想滤波器的时域特性,我们通常是描述他的单位阶跃响应,我们希望统计其三个指标,过冲的最大值,称为超量 Δ \Delta Δ ,响应的震荡频率 ω r \omega_r ωr 以及最终值处在容许区间所需要的时间,称为建立时间 t s t_s ts

非理想滤波器的时域特性

一阶与二阶连续时间系统

一阶连续时间系统

对于一个一阶连续时间系统,其表示为:

τ d y ( t ) d t + y ( t ) = x ( t ) \tau \frac{dy(t)}{dt} + y(t) = x(t) τdtdy(t)+y(t)=x(t)

易知其频率响应为:

H ( j ω ) = 1 j ω τ + 1 H(j\omega) = \frac{1}{j\omega \tau + 1} H()=τ+11

其单位冲激响应为:

h ( t ) = 1 τ e − t / τ u ( t ) h(t) = \frac{1}{\tau} e^{-t / \tau}u(t) h(t)=τ1et/τu(t)

其单位阶跃响应为:

s ( t ) = [ 1 − e − t / τ ] u ( t ) s(t) = [1 - e^{- t / \tau}]u(t) s(t)=[1et/τ]u(t)

两个响应都应是关于指数函数的函数,单位冲激响应从 1 τ \frac{1}{\tau} τ1 指数衰减为0,单位阶跃响应从0指数增长到1,没有任何震荡。

其中 τ \tau τ 称为 时间常数 ,控制着一阶系统的响应的快慢,当 t = τ t = \tau t=τ 的时候,冲激响应衰减到 t = 0 t =0 t=0 的时候的 1 e \frac{1}{e} e1 倍,而阶跃响应还差 1 e \frac{1}{e} e1 到1。时间常数越小,系统的响应时间就越短,系统响应越快。

一阶系统响应

其增益伯德图为:

20 log ⁡ ∣ H ( j ω ) ∣ = − 10 log ⁡ [ ( ω τ ) 2 + 1 ] 20\log |H(j\omega)| = -10 \log [(\omega \tau)^2 + 1] 20logH()=10log[(ωτ)2+1]

我们发现,当 ω τ ≪ 1 \omega \tau \ll 1 ωτ1 则增益等于:

20 log ⁡ ∣ H ( j ω ) ∣ ≃ 0 20\log |H(j\omega)| \simeq 0 20logH()0

ω τ ≫ 1 \omega \tau \gg 1 ωτ1 则增益等于:

20 log ⁡ ∣ H ( j ω ) ∣ ≃ − 20 log ⁡ ω − 20 log ⁡ τ 20\log |H(j\omega)| \simeq -20\log \omega - 20\log \tau 20logH()20logω20logτ

换句话说,一阶系统的增益伯德图在低频和高频的渐近线都是直线,如图:

一阶系统增益

低频渐近线是一条0dB线,而高频渐近线是一个每10倍频就有20dB衰减的直线,我们也称为 -20dB/10倍频衰减线

注意,两条直线在 ω = 1 / τ \omega = 1 / \tau ω=1/τ 的地方重合,我们称这一点为 转折频率 ,这一点的增益实际值等于:

− 10 log ⁡ 2 = − 3 d B -10\log 2 = -3dB 10log2=3dB

称这一点为3dB点,也称为半功率点。

∡ H ( j ω ) \measuredangle H(j\omega) H() 也可以进行近似:

∡ H ( j ω ) − arctan ⁡ ω τ \measuredangle H(j\omega) - \arctan \omega \tau H()arctanωτ

ω ≤ 0.1 / τ \omega \le 0.1 / \tau ω0.1/τ 的时候:

∡ H ( j ω ) ≃ 0 \measuredangle H(j\omega) \simeq 0 H()0

0.1 / τ ≤ ω ≤ 10 / τ 0.1 / \tau \le \omega \le 10 / \tau 0.1/τω10/τ 的时候:

∡ H ( j ω ) ≃ − ( π / 4 ) [ log ⁡ ( ω τ ) + 1 ] \measuredangle H(j\omega) \simeq -(\pi / 4)[\log (\omega \tau) + 1] H()(π/4)[log(ωτ)+1]

ω ≥ 10 / τ \omega \ge 10 / \tau ω10/τ 的时候:

∡ H ( j ω ) ≃ − π / 2 \measuredangle H(j\omega) \simeq - \pi / 2 H()π/2

同样由三段直线构成:

一阶系统的相移
而且,在点 1 / τ 1 / \tau 1/τ 的地方,估计值等于真实值等于 − 1 4 π -\frac{1}{4}\pi 41π

一阶连续时间系统可以看做是一个非理想的低通滤波器,当 τ \tau τ 减小,通频带频率变宽,阶跃响应的上升时间缩短。

二阶连续时间系统

二阶连续时间系统表示为:

d 2 y ( t ) d t 2 + 2 ζ ω n d y ( t ) d t + ω n 2 y ( t ) = ω n 2 x ( t ) \frac{d^2 y(t)}{dt^2} + 2\zeta\omega_n \frac{d y(t)}{dt} + \omega_n^2y(t) = \omega_n^2x(t) dt2d2y(t)+2ζωndtdy(t)+ωn2y(t)=ωn2x(t)

二阶系统的频率响应为:

H ( j ω ) = ω n 2 ( j ω ) 2 + 2 ζ ω n ( j ω ) + ω n 2 H(j\omega) = \frac{\omega_n^2}{(j\omega)^2 + 2\zeta\omega_n(j\omega)+\omega_n^2} H()=()2+2ζωn()+ωn2ωn2

ζ ≠ 1 \zeta \neq 1 ζ=1 时可以将分式裂项:

H ( j ω ) = M j ω − c 1 − M j ω − c 2 H(j\omega) = \frac{M}{j\omega - c_1} - \frac{M}{j\omega - c_2} H()=c1Mc2M

其中:

M = ω n 2 ζ 2 − 1 M = \frac{\omega_n}{2\sqrt{\zeta^2 - 1}} M=2ζ21 ωn

c 1 = − ζ ω n + ω n ζ 2 − 1 c_1 = -\zeta\omega_n + \omega_n \sqrt{\zeta^2 - 1} c1=ζωn+ωnζ21

c 2 = − ζ ω n − ω n ζ 2 − 1 c_2 = -\zeta\omega_n - \omega_n \sqrt{\zeta^2 - 1} c2=ζωnωnζ21

则单位冲激响应为:

h ( t ) = M ( e c 1 t − e c 2 t ) u ( t ) h(t) = M(e^{c_1 t} - e^{c_2 t})u(t) h(t)=M(ec1tec2t)u(t)

ζ = 1 \zeta = 1 ζ=1 ,有:

H ( j ω ) = ω n 2 ( j ω + ω n ) 2 H(j\omega) = \frac{\omega_n^2}{(j\omega + \omega_n)^2} H()=(+ωn)2ωn2

此时单位冲激响应为:

h ( t ) = ω n 2 t e − ω n t u ( t ) h(t) = \omega_n^2 t e^{-\omega_n t}u(t) h(t)=ωn2teωntu(t)

参数 ζ \zeta ζ 称为 阻尼系数 ω n \omega_n ωn 称为 无阻尼的自然频率

0 < ζ < 1 0 < \zeta < 1 0<ζ<1 的时候, c 1 c_1 c1 c 2 c_2 c2 都是复数,其单位冲激响应为:

h ( t ) = ω n e − ζ ω n t 1 − ζ 2 [ sin ⁡ ( t ω n 1 − ζ 2 ) ] u ( t ) h(t) = \frac{\omega_n e^{-\zeta\omega_n t}}{\sqrt{1 - \zeta^2}}[\sin (t\omega_n\sqrt{1 - \zeta^2})]u(t) h(t)=1ζ2 ωneζωnt[sin(tωn1ζ2 )]u(t)

此时的冲激响应其实是一个指数衰减的正弦震荡,称这个系统为 欠阻尼 的。当 ζ > 1 \zeta > 1 ζ>1 则是两个指数函数相减,称为 过阻尼 的,而 ζ = 1 \zeta = 1 ζ=1 称为 临界阻尼

二阶系统冲激响应
而阶跃响应,当 ζ ≠ 1 \zeta \neq 1 ζ=1 的时候:

s ( t ) = [ 1 + M ( e c 1 t c 1 − e c 2 t c 2 ) ] u ( t ) s(t) = [1 + M(\frac{e^{c_1 t}}{c_1} - \frac{e^{c_2 t}}{c_2})]u(t) s(t)=[1+M(c1ec1tc2ec2t)]u(t)

ζ = 1 \zeta = 1 ζ=1 的时候:

s ( t ) = [ 1 − e − ω n t − ω n t e − ω n t ] u ( t ) s(t) = [1 - e^{-\omega_n t} - \omega_n t e^{-\omega_n t}]u(t) s(t)=[1eωntωnteωnt]u(t)

二阶系统阶跃响应
欠阻尼系统的阶跃响应不光有超量,还有震荡,但是上升时间最快。临界阻尼没有震荡,也没有超量,上升时间是在没有震荡,也没有超量的情况下的最快时间。过阻尼随着阻尼系数的上升,系统的响应越慢。

对于频率响应的增益:

20 log ⁡ ∣ H ( j ω ) ∣ = − 10 log ⁡ [ [ 1 − ( ω ω n ) 2 ] 2 + 4 ζ 2 ( ω ω n ) 2 ] 20\log |H(j\omega)| = -10\log[[1 - (\frac{\omega}{\omega_n})^2]^2 + 4\zeta^2(\frac{\omega}{\omega_n})^2] 20logH()=10log[[1(ωnω)2]2+4ζ2(ωnω)2]

导出高频、低频的渐近线为,当 ω ≪ ω n \omega \ll \omega_n ωωn 的时候:

20 log ⁡ ∣ H ( j ω ) ∣ ≃ 0 20\log |H(j\omega)| \simeq 0 20logH()0

ω ≫ ω n \omega \gg \omega_n ωωn 的时候:

20 log ⁡ ∣ H ( j ω ) ∣ ≃ − 40 log ⁡ ω + 40 log ⁡ ω n 20\log |H(j\omega)| \simeq -40\log \omega + 40\log \omega_n 20logH()40logω+40logωn

低频渐近线仍然是0dB线,高频线是一个 -40dB/10倍频衰减线 。其中 ω n \omega_n ωn 为转折频率:

二阶系统的增益
但是实际曲线在 ω n \omega_n ωn 附近处有一个尖峰,当 ζ < 2 2 ≃ 0.707 \zeta < 2\sqrt{2} \simeq 0.707 ζ<22 0.707 的时候,增益在 ω m a x = ω n 1 − 2 ζ 2 \omega_{max} = \omega_n \sqrt{1 - 2\zeta^2} ωmax=ωn12ζ2 的地方有最大值:

∣ H ∣ m a x = 1 2 ζ 1 − ζ 2 |H|_{max} = \frac{1}{2\zeta\sqrt{1 - \zeta^2}} Hmax=2ζ1ζ2 1

对于 ζ > 0.707 \zeta > 0.707 ζ>0.707 ,增益是一个单调递减函数。

相移响应为:

∡ H ( j ω ) = − arctan ⁡ ( 2 ζ ( ω / ω n ) 1 − ( ω / ω n ) 2 ) \measuredangle H(j\omega) = -\arctan (\frac{2\zeta(\omega/\omega_n)}{1 - (\omega/\omega_n)^2}) H()=arctan(1(ω/ωn)22ζ(ω/ωn))

可近似为,当 ω ≤ 0.1 ω n \omega \le 0.1\omega_n ω0.1ωn 的时候:

∡ H ( j ω ) ≃ 0 \measuredangle H(j\omega) \simeq 0 H()0

0.1 ω n ≤ ω ≤ 10 ω n 0.1\omega_n \le \omega \le 10\omega_n 0.1ωnω10ωn 的时候:

∡ H ( j ω ) ≃ − π 2 [ log ⁡ ( ω ω n ) + 1 ] \measuredangle H(j\omega) \simeq -\frac{\pi}{2} [\log (\frac{\omega}{\omega_n}) + 1] H()2π[log(ωnω)+1]

ω ≥ 10 ω n \omega \ge 10\omega_n ω10ωn 的时候:

∡ H ( j ω ) ≃ − π \measuredangle H(j\omega) \simeq -\pi H()π

二阶系统的相移

二阶系统的增益尖峰对于某些震荡电路、选频电路是很重要的,我们定义 品质因数 Q来衡量这个尖峰的尖锐程度:

Q = 1 2 ζ Q = \frac{1}{2\zeta} Q=2ζ1

阻尼越小,品质系数越大,尖峰越尖锐。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

浅尝Transformer和LLM

文章目录 TransformerTransformer的衍生BERTPre-trainingBERT与其他方法的关系怎么用BERT做生成式任务&#xff1f; GPTPre-trainingFine-Tuning Transformer工具开源库特点 LLM系列推理服务 大语言模型势不可挡啊。 哲学上来说&#xff0c;语言就是我们的一切&#xff0c;语言…

MySQL 高级(进阶) SQL 语句

创建两个表格 use awsl; create table location (Region char(20),Store_Name char(20)); insert into location values(East,Boston); insert into location values(East,New York); insert into location values(West,Los Angeles); insert into location values(West,Houst…

JMU20 软件工程经济学 复习总结

文章目录 碎碎念0. 基准收益率 i1. 现金流量图2. 净现值 NPV&#xff0c;内部收益率 IRR3. 单利&#xff0c;复利计算4. 等额年金NAV5. 动态回收期 P t ′ P_t Pt′​6. 固定资产折旧 [书P44]7. 增值税8. 软件行业增值税的即征即退9. 利息备付率 ICR&#xff0c;偿债备付率 DSC…

C语言之分支与循环

一、语句 什么是语句 C语言中&#xff0c;由一个分号&#xff08; &#xff1b;&#xff09;隔开的即为一条语句。 这些都是语句&#xff1a; &#xff08; 一行里只有 &#xff1b;的语句&#xff0c;我们称其为 “空语句” &#xff09; int main(void) {printf("hel…

UVM1.2究竟在UVM1.1上做了哪些升级

想必大家平时也没有很注意UVM1.1版本和UVM1.2版本的不同之处&#xff0c;只有在用一些以前UVM1.1能支持的功能&#xff0c;到了UVM1.2却出现编译报错&#xff0c;找不到对应的变量或者函数或者类的时候&#xff0c;才意识到这两个版本的差异。笔者也是遇到了1个打印问题&#x…

利用Django的视图类TemplateView将模板、视图与模板变量方便快速的整合在一起

TemplateView是Django提供的通用视图类之一&#xff0c;它允许您在不编写任何Python代码的情况下将模板与视图关联起来。下面是关于TemplateView类的一些介绍&#xff1a; 渲染模板&#xff1a;TemplateView负责渲染指定的模板并返回生成的HTML响应。您只需提供模板名称或路径即…

华为OD机试真题B卷 Java 实现【删除字符串中出现次数最少的字符】,附详细解题思路

一、题目描述 删除字符串中出现次数最少的字符&#xff0c;如果多个字符出现次数一样则都删除。 二、输入描述 一个字符串。 三、输出描述 删除字符串中出现次数最少的字符&#xff0c;如果多个字符出现次数一样则都删除&#xff0c;如果都被删除 则换为empty。 四、解题…

【安装lnmp实操】

文章目录 一、安装Nginx服务1.安装依赖包2、创建运行用户3、编译安装4、优化路径5、添加 Nginx 系统服务 二、【安装 MySQL 服务】1、安装Mysql环境依赖包2、创建运行用户3、编译安装4、修改mysql 配置文件5、更改mysql安装目录和配置文件的属主属组6、设置路径环境变量7、初始…

MySQL数据库高级SQL语句(图文详解!)

一、MySQL高级语句 1.SELECT 2.DISTINST 3.WHERE 4.AND|OR ​5.IN 6.BETWEEN 7.通配符 8.LIKE 9.ORDER BY 10.函数 &#xff08;1&#xff09;数学函数 &#xff08;2&#xff09;聚合函数 &#xff08;3&#xff09;字符串函数 11.GROUP BY 12.HAVING 13.别名 14.子查询 …

团体程序设计天梯赛-练习集L1篇③

&#x1f680;欢迎来到本文&#x1f680; &#x1f349;个人简介&#xff1a;Hello大家好呀&#xff0c;我是陈童学&#xff0c;一个与你一样正在慢慢前行的普通人。 &#x1f3c0;个人主页&#xff1a;陈童学哦CSDN &#x1f4a1;所属专栏&#xff1a;PTA &#x1f381;希望各…

插件 - 插件机制触手可及

文章目录 Pre方案流程图优点缺点Code小结Pre 插件 - 一份配置,离插件机制只有一步之遥 中是不是有依赖, 我不想依赖 ,肿么办? 方案 应用A定义服务接口,约定插件实现的功能规范。应用B,C,D等各自实现该接口,并打包成jar包,放置在应用A约定的读取目录下。应用A在运行时,读取…

MATLAB 动画的制作与保存

matlab有三种方法来创建动画&#xff1a; ①以质点运动轨迹的方式来创建动画 theta0:0.001:2*pi; %定义圆的半径 r10; %生成圆上各点的横纵坐标 xr*cos(theta); yr*sin(theta); comet(x,y); 生成的动画效果如下 &#xff08;其中的某一步&#xff09; 最终结果如下 comet(x,…

怎么将存入此电脑中的图片放入电脑D盘

先找到图片的目录&#xff0c; 目录为&#xff1a;xxx 然后 现在图片目录就移动到D盘了

算法设计 - KMP算法

字符串模式匹配问题 假设有两个字符串S&#xff0c;T&#xff0c;其中S是主串&#xff08;正文串&#xff09;&#xff0c;T为子串&#xff08;模式串&#xff09;&#xff0c; 我们需要在S中查找与T相匹配的子串&#xff0c;如果成功找到&#xff0c;则返回匹配的子串第一个…

华为OD机试真题 JavaScript 实现【太阳能板最大面积】【2022Q4 100分】,附详细解题思路

一、题目描述 给航天器一侧加装长方形或正方形的太阳能板&#xff08;图中的红色斜线区域&#xff09;&#xff0c;需要先安装两个支柱&#xff08;图中的黑色竖条&#xff09;&#xff0c;再在支柱的中间部分固定太阳能板。 但航天器不同位置的支柱长度不同&#xff0c;太阳…

logback日志框架基本知识

本文来说下logback日志框架基本知识 文章目录 概述logback简介SpringBoot对logback的支持SpringBoot的集成 概述 Spring Boot已经将logback做为默认集成的日志框架&#xff0c;全面了解学习是必然了。曾经log4j是流行的日志框架&#xff0c;现在已被它的继任者logback替代&…

第三节 折线图

文章目录 折线图1.1 numpy介绍1.2 预测趋势1.3 折线图流程工具 Pandas1.3.1 读取并生成 CSV1.3.2 输出列数据1.3.3 画折线图1.5 添加横纵坐标,标题 屏幕属性 1.4 画双折线图1.5 扩展:做三线图 折线图 1.1 numpy介绍 上节课我们学了柱状图, 通过柱状图可以了解, numpy主要是科…

部署lnmp框架nginx在上一章节

目录 一.安装mysql服务 1.下载mysql和模块boost并解压包到/opt目录下 2.创建运行用户 3.进入mysql包目录下面进行编译安装 4.创建普通用户管理mysql useradd -s /sbin/nologin mysqlchown -R mysql:mysql /usr/local/mysql/ 5.修改配置文件 6.设置环境变量&#xff0c;申…

等约束二次规划中的特征分解研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

C++——用红黑树封装map和set

目录 1. 前言 2. 红黑树模板参数的控制 3. 模板参数中仿函数的增加 4. 红黑树迭代器的实现 5. 红黑树的begin()和end() 6. 红黑树的Find查找函数 7. 红黑树封装map和set源码 7.1 map.h 7.2 set.h 7.3 test.cpp 1. 前言 我们都知道set是K模型的容器&#xff0c;而map…