傅里叶分析概述

信号分析与处理(一)关于傅里叶分析的详细分析及探讨 学习任何一门学科,我大致遵循两条路线,,看知识点的正向梳理,构建由基础问题到复杂应用的路线。,从分析复杂庞大的问题的角度,去拆分并逐一击破,构架以问题为中心的稳定框架。 阅读详情

目录

1概述

2周期信号的频谱

2.1周期信号

2.2复数

2.3欧拉公式

2.4傅里叶级数

2.5幅值频谱

2.6相位频谱

2.7双边频谱

小结

3非周期信号的频谱

3.1非周期信号

3.2傅里叶变换

3.3频谱图

小结

4常用性质

4.1频移性

4.2卷积定理

5单位脉冲信号

特性

6周期函数的傅里叶变换

7周期单位脉冲信号

8采样与复原

8.1采样

8.2采样定理

8.3混频

8.4复原

8.5泄漏

9离散傅里叶变换(DFT)

10二维傅里叶变换

10.1性质

10.2频谱与相角

频谱

相角

10.3二维离散卷积定理

10.4 DFT的卷积混叠

结语

参考文章


1概述

        法国数学家 Jean Baptiste Joseph Fourier(吉恩.巴普提斯.约瑟夫.傅里叶)在1807年发表的传记和1822年出版的《热分析理论》一书中指出:无论函数多么复杂,只要它是周期的,并且满足某些适度的条件,都可以表示为不同频率的正弦和(或)余弦函数之和的形式,每个正弦和(或)余弦函数都乘以不同的系数(现称之为傅里叶级数)。

        如图1所示,多个正余弦信号叠加,即可得到方波信号,而通过傅里叶级数即可逆向将方波信号分解为多个正余弦信号之和。

方波信号
图1 方波信号

        甚至是非周期函数(曲线下的面积有限)也可以用正弦和(或)余弦函数乘以加权函数的积分来表示(傅里叶变换)。用傅里叶级数或变换表示的函数特征完全可以通过傅里叶反变换来重建,且不会丢失任何信息。

2周期信号的频谱

2.1周期信号

                                            periodic\ signal \left\{\begin{matrix} sines\ and\ cosines\ signal \\ \\ complex\ periodic\ signal \end{matrix}\right.

        周期信号是按一定时间间隔周而复始,无始无终的信号,其数学表达式为:

                                          x(t)=x(t+nT)\ \ \ \ \ \ \ \ \ \ \ \ (n=\pm 1,\pm 2\ ...)  

式中,T 表示周期。

        周期信号可进一步分为简单周期信号,即正余弦信号(也称为简谐信号或谐波),和复杂周期信号,如方波。两者最大的不同在于频率结构上分别为单频和多频。

        如图2.1.1即为一个f=400MHz的正弦波,其表示为做圆周运动的点在直线上的投影。

f=400MHz的正弦波
图2.1.1 f=400MHz的正弦波

        常见的周期信号是正余弦信号,两者可以相互转化。其中正弦信号的数学表达式为:x(t)=Asin(\omega _0t+\theta )

正余弦信号
图2.1.2 正余弦信号

        由于正余弦信号只含有一个频率成分 {\color{Red} \omega _0} ,从这点看,上式不仅是其时域描述也是其频域描述,无需进行变换,可时域与频域是合二为一的,因此适合将其做为合成其他任意信号的基本信号。而对于复杂周期信号,由于其是多频结构,无法直接观察其频率构成,故需要先将其转换为多个不同频率的正余弦信号之和,而这个工具就是“傅里叶级数”。

【注】:信号不仅能分解为正余弦信号,也可以分解为其他信号,如幂级数展开、泰勒展开,但在工程应用中为了简化问题的需要,故将其分解为正余弦信号。

2.2复数

        复数C的定义如下:

                                                                        C=R+jI

        其中,R 和 I 皆为实数,分别表示复数C的实部(Real part)和虚部(Imaginary part),而 j 则表示等于 -1 平方根的虚数,即 j=\sqrt{-1},复数C的共轭复数 \bar{C} 表示为

                                                                         \bar{C}=R-jI   

        从几何角度来看,复数可视为复平面上的一个点,横坐标为实轴(R的值),纵坐标为虚轴(I 的值),即点 (R,I)。同时,在极坐标下,复数C可表示为:

                                                                          C=\left | C \right |(cos\theta + jsin\theta)

        同时,由欧拉公式可得:

                                                                          C=\left | C \right |e^{j\theta}

        其中 \left | C \right |=\sqrt{R^2+I^2}是复平面的原点到点 (R,I) 的向量的长度,\theta=arctan(\frac{I}{R}) 是该向量与实轴的夹角,以图2.2.1和图2.2.2为例,分别表示 \left | C \right |=1 时和 \left | C \right |=a 时复数 C 在复平面上的点。

|C|=1时,复平面表示
图2.2.1 |C|=1时,复平面表示
|C|=a时,复平面上的点
图2.2.2 |C|=a时,复平面上的点

 

注意:计算 \theta时,因为 arctan函数 的值域为 [-\frac{\pi}{2},\frac{\pi}{2}],且 R 和 I 可独立地为正或负,因此需要追踪 R 和 I 的符号来进行计算,得到全域 [-\pi},\pi] 的解,如在python中,可通过调用函数:atan2(Imag, Real) 来实现。例如,复数 1+1j 得极坐标是 \sqrt{2}e^{j\theta},其中 \theta=45^{\circ}。

import math

c1 = 1 + 1j                                     # 定义复数 1+1j
c2 = c1.conjugate(c1)                         # 得到复数c1的共轭复数 1-1j
c3 = -c1                                      # 得到复数c1的相反数  -1-1j
math.degrees(math.atan2(c1.imag, c1.real))    # atan2函数的返回值为弧度,转为角度后为45.0度
math.degrees(math.atan2(c3.imag, c3.real))    # -135.0

        以上公式还可应用于复函数,如变量 u 的复函数 F(u) 可以表示为 F(u)=R(u)+jI(u),共轭复函数 F^*(u)=R(u)-jI(u),幅值 \left | F(u) \right |=\sqrt{R(u)^2+I(u)^2} ,角度 \theta=arctan[\frac{I(u)}{R(u)}]。

2.3欧拉公式

                                                 e^{\pm j\omega t}=cos(\omega t) \pm jsin(\omega t)

                                                 cos(\omega t)=\frac{1}{2}(e^{-j\omega t}+e^{j\omega t})

                                                 \sin(\omega t)=\frac{1}{2}j(e^{-j\omega t}-e^{j\omega t})=\frac{1}{2j}(e^{j\omega t}-e^{-j\omega t})

        欧拉公式所描绘的,是一个随着时间变化,在复平面上做圆周运动的点,随着时间的改变,在时间轴上就成了一条螺旋线。如果只看它的实数部分,也就是螺旋线在左侧的投影,就是一个最基础的余弦函数。而右侧的投影则是一个正弦函数。如图2.3所示。

欧拉公式
图2.3 欧拉公式

【推导】(准确说是验证):

        先对如下三个函数进行幂级数展开:

                  e^x=1+x+\frac{x^2}{2!}+...+\frac{x^n}{n!}+... \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ n=0,1,...

                 cosx=1-x+\frac{x^2}{2!}+...+\frac{(-1)^nx^{2n}}{(2n)!}+... \ \ \ \ \ \ \ \ n=1,2,...

                 sinx=x-\frac{x^3}{3!}+...+\frac{(-1)^{n-1}x^{2n-1}}{(2n-1)!}+... \ \ \ \ \ \ \ \ n=1,2,...

        将 x=j\theta 带入上式可得:

                   e^{j\theta}=1+(j\theta)+\frac{(j\theta)^2}{2!}+\frac{(j\theta)^3}{3!}+\frac{(j\theta)^4}{4!}+\frac{(j\theta)^5}{5!}+... \ \ \ \ \ \ \ \ \ n=0,1,... \\ =1+j\theta-\frac{\theta^2}{2!}-\frac{j\theta^3}{3!}+\frac{\theta^4}{4!}+\frac{j\theta^5}{5!}+... \\=(1-\frac{\theta^2}{2!}+\frac{\theta^4}{4!}-...)+j(\theta-\frac{\theta^3}{3!}+\frac{\theta^5}{5!}-...)

                   =cos\theta+jsin\theta

        即可推广至出欧拉公式的一般形式

2.4傅里叶级数

        一个周期为T的信号,如果满足狄里赫利条件,即在一个周期内:

  1. 处处连续或存在有限个间断点
  2. 有限个极值点
  3. 绝对可积

则此信号 x(t) 可以展开为傅里叶级数,其有三个等价公式:

       {\color{Red} x(t)=a_0 + \sum_{n=1}^{\infty }[a_ncos(n\omega _0t)+b_nsin(n\omega _0t)]\ \ \ \ \ n=1,2, ...}                          (1-1)

       x(t)=a_0+\sum_{n=1}^{\infty }A_ncos(n\omega _0t+\theta )\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ n=\pm 1,\pm 2, ...                    (1-2)

       x(t)=\sum_{n=-\infty}^{\infty }C_ne^{jn\omega _0t}\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ n=\pm 1,\pm 2, ...                    (1-3)

式(1-1) 主要用于数学展开,其中:\omega_0=\frac{2\pi }{T},a_0=\frac{1}{T}\int_{-\frac{T}{2}}^{\frac{T}{2}}x(t)dt,a_n=\frac{2}{T}\int_{-\frac{T}{2}}^{\frac{T}{2}}x(t)cos(n\omega _0t)dt,b_n=\frac{2}{T}\int_{-\frac{T}{2}}^{\frac{T}{2}}x(t)sin(n\omega _0t)dt。

式(1-2)主要用于作频谱图,由式(1-1)中的正、余弦项合并而成,其中:A_n=\sqrt{a_n^2+b_n^2},\theta _n=-arctan(\frac{b_n}{a_n})。

式(1-3)主要用于数学推导,由式(1-1)结合欧拉公式得到,其中:C_n=\frac{1}{T}\int_{-\frac{T}{2}}^{\frac{T}{2}}x(t)e^{-jn\omega _0t}dt=\frac{1}{2}(a_n-jb_n)。

        a_0 是一个常数,不随时间变化的静态量(或称直流分量)。当 n=1 时,所对应的正、余弦项称为基波,频率 \omega_0 称为基频,其次依次为二次谐波(n=2,频率为 2\omega_0),三次谐波,...,n次谐波(频率为 n\omega_0),也就是说:频域轴的基本单位就是 {\color{Red} \omega_0}。

【注意】:在作幅值频谱图和相位频谱图时,式(1-2)和(1-3)皆以 n\omega_0 为横坐标,不过在幅值频谱图中,式(1-2)中以 A_n 为纵坐标,式(1-3)则以 \left | C_n \right | 为纵坐标。在相位频谱图中,式(1-2)以 \theta_n 为纵坐标 。

        如图2.4.1所示,橙色圆表示 \frac{4}{\pi}sin\theta的正弦波形,绿色圆表示 \frac{4}{3\pi}sin(3\theta)的正弦波,蓝色圆表示 \frac{4}{5\pi}sin(5\theta)的正弦波形,红色圆表示 \frac{4}{7\pi}sin(7\theta)的正弦波形。将橙色圆与绿色圆相叠加,即 \frac{4}{\pi}sin\theta+\frac{4}{3\pi}sin(3\theta) ,即可组成右侧的绿色的波形,将这四个正弦波全部叠加,即 \frac{4}{\pi}sin\theta+\frac{4}{3\pi}sin(3\theta)+\frac{4}{5\pi}sin(5\theta)+\frac{4}{7\pi}sin(7\theta),即可组成右下角的红色波形,已越来越接近方波了,其实依此规律继续叠加,最终将得到周期方波的图像。

不同正弦分量的叠加
图2.4.1 不同正弦分量的叠加

        如图2.4.2所示,最前面(左边)的黑色的近似矩形的线,就是后面各种颜色波形的叠加状态,而后面依不同颜色排列而成的正弦波就是组合为矩形波的各个分量。这些正弦波按照频率从低到高从前向后排列开来,不同颜色则代表着不同振幅、频率及相位的不同波形。当然,上图每两个正弦波之间都还有一条直线,这代表着振幅为 0 的正弦波,也就是说,为了组成特殊的曲线,有些正弦波成分是不需要的。

傅里叶级数1
图2.4.2 傅里叶级数

注意:振幅为0的正弦波不一定存在,根据实际波形而定,如周期方波的仅包含奇数次正弦波,偶数次正弦波和余弦波皆为0。

注意:静态量a_0 可以理解为频率为0时的波,其是一个常数,在图中也就是一条直线,所以也称为直流分量,其仅仅影响全部波形相对于数轴整体向上或是向下但不改变波的形状

        定量地看,式(1-2)中的两个随整数 n 变化的函数序列 A_n 和 \theta_n分别代表各次谐波分量的幅值和初相角,当谐波频率 n\omega_0 作离散变化时,A_n 和 \theta_n 都有确定的值与之相对应,这两个对应关系分别称为 “幅值频谱” 和 “相位频谱”,共同来反应周期信号的频率结构。

2.5幅值频谱

        以下图为例,幅值频谱即为从该图像的侧面看过去,不同颜色的正弦波所投影到侧边平面上的图像。其中波形的频率即对应幅值频谱的横轴,波形的幅值对应了幅值频谱图的纵轴。

空间表述
图2.5.1 空间表述

        投影后的幅值频谱图如下图所示:

幅值频谱
图2.5.2 幅值频谱

2.6相位频谱

        幅值频谱投影到了侧面,而相位谱即为波形在下方的投影,但此处为间接投影。

相位频谱
图2.6.1 相位频谱

        如下图所示,对于正弦分量来说,小红点(一个周期内,导数>0的曲线与横坐标的交点)与纵坐标的距离即为正弦信号所移动的时间差,记为 \Delta t,而 \frac{\Delta t}{T}*2\pi即为相位。故波形在下侧的投影并不能直接表示为相位频谱,还需要对其时间差进行转换,得到相位值,进而得到相位频谱。同理,对于余弦分量来说,小红点(一个周期内,距离频率轴最近的波峰)在横坐标上的投影点用橘黄色点表示,其与纵坐标的距离即为余弦分量所移动的时间差,进而再转换为相位。

正余弦函数
图2.6.2 正余弦函数

2.7双边频谱

        除了根据式(1-2)来描绘频谱图外,还可以使用式复数指数函数(1-3)来进行描述。但根据欧拉公式,三角式中的的一项对应到指数式中就变为了两项,多了一个频率为 -n\omega_0 的分量,但同时因为 \left | C_n \right |=\frac{1}{2}\sqrt{a_n^2+b_n^2}=\frac{1}{2}A_n,故幅度值也会减为原来的一半。即图像变为了以纵轴对称的形式。以某一正弦分量为例:

                                              Asin(n\omega_0t)=j\frac{A}{2}(e^{-jn\omega_0t}-e^{jn\omega_0t})

        对上式作频谱图,如图2.7.1所示,左边按三角式 Asin(n\omega_0t) 所作的称为单变频谱,右边按指数式 j\frac{A}{2}(e^{-jn\omega_0t}-e^{jn\omega_0t}) 所作的称为双边频谱。

单变与双边频谱
图2.7.1 单变与双边频谱

【注意】:两个频谱在理论上是等效的,只不过双边频谱中的 “负频率” 在实际工程中并不存在,近视数学处理的结果。

【实例】:如图2.7.2所示,求周期方波的傅里叶级数及其频谱图

                                     x(t)=\left\{\begin{matrix} 1, \ \ 0\leq t\leq \frac{T}{2}& \\ -1, \ \ -\frac{T}{2}\leq t \leq 0& \end{matrix}\right.   

周期方波信号
图2.7.2 周期方波信号

解:(1) 一个周期内,波形在横轴上下所围成的面积相等,故 a_0=\frac{1}{T}\int_{-\frac{T}{2}}^{\frac{T}{2}}x(t)dt=0

(2) x(t) 是奇函数,cosn\omega_0t是偶函数,所以 x(t)cosn\omega_0t 为奇函数(奇函数在一个对称区间内的积分值为零),因此

                                                                 a_n=\frac{2}{T}\int_{-\frac{T}{2}}^{\frac{T}{2}}x(t)cos(n\omega_0t)dt=0

(3) 故此周期方波信号仅有正弦分量构成,其各次正弦波的幅值:

           b_n=\frac{2}{T}\int_{-\frac{T}{2}}^{\frac{T}{2}}x(t)sin(n\omega_0t)dt=\frac{2}{T}\int_{-\frac{T}{2}}^0\ -1\ sin(n\omega_0t)dt+\frac{2}{T}\int_{0}^{\frac{T}{2}}\ 1\ sin(n\omega_0t)dt

                =\frac{2}{n\pi}[-cos(n\pi)+1]=\frac{2}{n\pi}[-(-1)^n+1]=\left\{\begin{matrix} 0, \ \ \ n=2,4,...& \\ \frac{4}{n\pi}, \ \ n=1,3,...& \end{matrix}\right.

(4) 故最终此周期方波信号的傅里叶级数如下,不含静态分量,仅含奇次谐波。

          x(t)=a_0 + \sum_{n=1}^{\infty }[a_ncos(n\omega _0t)+b_nsin(n\omega _0t)]\ \ \ \ \ n=1,2, ...

                       ={\color{Red} \frac{4}{\pi}(sin(\omega_0t)+\frac{1}{3}sin(3\omega_0t)+\frac{1}{5}sin(5\omega_0t)+...)}

(5) 其幅值和相角分别为:           {\color{Red} A_n=\sqrt{a_n^2+b_n^2}=\left | b_n \right |=\frac{4}{n\pi}}

傅里叶分析 在简书上翻到一篇关于傅里叶分析的文章,觉得写的真的是浅显易懂,尤其是其图生动形象,在这里写下一些读完的理解。 阅读详情

相关推荐

傅里叶分析和小波分析

从傅里叶变换到小波变换,并不是一个完全抽象的东西,可以讲得很形象。小波变换有着明确的物理意义,如果我们从它的提出时所面对的问题看起,可以整理出非常清晰的思路。下面我就按照傅里叶-->短时傅里叶变换-->小波变换的顺序,讲一下为什么会出现小波这个东西、小波究竟是怎样的思路。

二十年蝉电子学习博客 3932

傅里叶分析(通俗解释)

傅里叶分析(通俗解释)

学习笔记 1万+

1、应用数学方法与MATLAB概述

本文概述了应用数学中基于傅里叶分析的核心方法及其在工程与数学物理中的广泛应用。内容涵盖傅里叶级数、拉普拉斯与傅里叶变换、复变函数、高维边值问题及离散变量变换等主题,并结合MATLAB进行计算与可视化实践。文章还介绍了不同课程设置下的学习路径,强调理论理解与实际应用的结合,帮助读者掌握数学工具的适用范围与假设前提,避免错误计算。通过丰富的应用实例和编程支持,提升解决实际问题的能力。

defi6farmer的博客 34

# 附录3 傅立叶分析应用

傅立叶分析不仅限于理论研究,它在金融、信号处理、环境科学、医疗、机械维护等众多领域具有广泛的实际应用。在Excel中,傅立叶分析工具为用户提供了简单而高效的频域分析手段,帮助发现数据中的周期性特征,识别异常频率,从而做出有针对性的决策。

学习,输出==》再学习再输出 2098

【17】 傅立叶分析

傅立叶变换的主要目的是将一个复杂的时域信号分解为多个频率分量的叠加。通过分析这些频率成分,用户可以了解数据的周期性、频率成分及其相对强度。Xf∫−∞∞xte−2πjftdtXf∫−∞∞​xte−2πjftdtx(t)表示时间序列中的信号。f 是频率。j 是虚数单位。X(f)是傅立叶变换的结果,即频率域的信号。在Excel中,我们并不需要手动计算这个公式,而是通过FFT(快速傅立叶变换)自动进行计算。

学习,输出==》再学习再输出 2148

实战避坑:示波器测量非隔离开关电源的炸机风险与隔离方案

本文详细分析了使用示波器测量非隔离开关电源时的炸机风险,揭示了地线环路导致的短路问题,并对比了四种防炸机解决方案,包括示波器隔离供电、拔掉电源地线、使用差分探头和被测板隔离供电。重点推荐使用隔离变压器方案,确保测量安全与精度,同时提供了实操建议与经验分享,帮助工程师避免常见测量事故。

weixin_29224309的博客 556

COCO2017数据集类别分布深度解析

本文深入解析了COCO2017数据集的类别分布情况,包括80个常见物体的分类统计和样本数量分析。通过对比训练集与验证集的分布一致性,探讨了数据均衡性问题,并针对高频和低频类别提出了实用的数据预处理和模型训练建议,帮助优化计算机视觉任务的性能。

weixin_42533751的博客 370

用Python搞定超效率SBM模型:从数据清洗到结果可视化全流程指南

本文详细介绍了如何使用Python实现超效率SBM模型,从数据清洗到结果可视化的全流程指南。超效率SBM模型作为传统DEA的进化版本,能有效处理非期望产出(如环境污染)并对高效单元进行精细排序。通过实战案例和代码示例,帮助读者掌握这一先进模型的Python实现技巧,提升效率评估的准确性和可视化效果。

silver的专栏 650

DeepLearningTool-深度学习分类-和HALCON的详细过程

损失函数:衡量预测误差,用于模型优化。混淆矩阵:评估分类模型性能,提供详细预测结果分析。两者结合使用,可以全面评估和优化模型。过拟合:模型过于复杂,捕捉了噪声,表现为训练集误差低,测试集误差高。欠拟合:模型过于简单,无法捕捉数据模式,表现为训练集和测试集误差都高。调整参数过拟合:简化模型、增加数据、使用正则化、早停、Dropout。欠拟合:增加模型复杂度、特征工程、增加训练时间、调整学习率、使用集成方法。通过合理调整参数和方法,可以有效避免过拟合和欠拟合,提升模型性能。

weixin_36672036的博客 6183

手把手教你为RK3588开发板适配RTL8211F网卡:设备树配置与PHY驱动匹配全流程

本文详细介绍了在RK3588开发板上适配RTL8211F千兆以太网PHY芯片的全流程,包括硬件原理图确认、设备树配置与PHY驱动匹配。通过实战案例和调试技巧,帮助开发者解决常见问题并优化网络性能,适用于嵌入式Linux开发中的Ethernet网络功能实现。

weixin_29184075的博客 526

Openclaw错误分析与解决方案之:Agent couldn’t generate a response.

Openclaw错误分析与解决方案之:Agent couldn't generate a response. Note: some tool actions may have already been executed — please verify before retrying.

多媒体编程、网络编程、系统编程、网络安全编程、驱动编程 1316

【100%通过率】2023华为od机试C卷【电脑病毒感染】C++ 实现

一个局域网内有很多台电脑,分别标注为 0 ~ N-1 的数字。相连接的电脑距离不一样,所以感染时间不一样,感染时间用t 表示。其中网络内一台电脑被病毒感染,求其感染网络内所有的电脑最少需要多长时间。如果最后有电脑不会感染,则返回-1.

MISAYAONE的博客 1727

【数据集】米级别热红外卫星合集:SDGSAT-1、HotSat-1等

米级别热红外卫星合集:SDGSAT-1、HotSat-1等

WW、forever的博客 1250

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

上一篇: 卷积神经网络概述
下一篇: C/C++语言笔记
且听风吟0618
博客等级 码龄11年 149粉丝 25原创
评论 6
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值