从零开始傅里叶变换

article/2025/6/7 15:00:11

1.前言

    傅里叶变换是很多领域的基础工具,常用来做频域变换。但凭什么傅里叶变换可以转换至频域,又什么是频域。看门见山。
    连续傅里叶变换公式:
F ( w ) = < f ( t ) , e i w t > = ∫ − ∞ + ∞ f ( t ) e − i w t d t (1.1) F(w) = <f(t),e^{iwt}>=\int_{-\infty}^{+\infty}f(t)e^{-iwt}dt\tag{1.1} F(w)=<f(t),eiwt>=+f(t)eiwtdt(1.1)
    单单看这个公式确实让人头大。还好鲁迅说过把复杂的问题拆分成各个简单的问题,解决完简单的问题,再和起来,就解决了复杂的问题。
傅里叶公式导图
    根据上图,我们就可得出,傅里叶变换是
        原信号 f ( t ) f(t) f(t) e i w t e^{iwt} eiwt的内积= F ( w ) F(w) F(w)(即原信号在角频率w上的分量)
等价于
        原信号f(t)与 e − i w t e^{-iwt} eiwt在所有时间上的积分。
我们现在这里给出最终结论:
傅里叶变换的本质就是内积,而内积的对象是由同频三角函数组成的 e i w t e^{iwt} eiwt。通过与 e i w t e^{iwt} eiwt的内积(投影),分离出角频率为w的分量,而 ∫ − ∞ + ∞ \int_{-\infty}^{+\infty} +就是将信号每个时刻的w的分量叠加(即振幅)。
    为什么和 e i w t e^{iwt} eiwt一参合就到频域上了。我们继续一步步拆开 e i w t e^{iwt} eiwt看看它到底意味着什么?

2. e i w t e^{iwt} eiwt的秘密

2.1 从e说起

    e是自然常数,等于2.718281828459。好奇心又来了,为什么这个叫自然常数呢,这个2.71828…怎么看都不自然啊?先甩大招:
    e的定义式为:
lim ⁡ n → ∞ ( 1 + 1 n ) n = e (2.1.1) \lim\limits_{n \to \infty}(1+\frac {1} {n})^n=e \tag{2.1.1} nlim(1+n1)n=e(2.1.1)
    公式表明当n趋于无穷大的时候 ( 1 + 1 n ) n (1+\frac {1} {n})^n (1+n1)n等于e。哦吼,这有什么特殊含义嘛?
    举个栗子,我在银行存了1元钱,年利率100%数学表达式为
( 1 + 100 % 1 ) 1 = 2 元 (1+ \frac{100\%}{1})^1=2元 (1+1100%)1=2
    但是一想,好像有点亏,我放了一年就计算一次利息,如果要是每月结一次利息就好了,利滚利就更多了,那就是
( 1 + 100 % 12 ) 12 = 2.613 元 (1+ \frac{100\%}{12})^{12} =2.613元 (1+12100%)12=2.613
    让我们更贪婪一点,要是每天算一次,每小时算一次,甚至时时刻刻都算一次,那能拿多少
lim ⁡ n → ∞ ( 1 + 1 n ) n = e \lim\limits_{n \to \infty}(1+\frac {1} {n})^n=e nlim(1+n1)n=e
    哦豁,就是e了。
    从每年算一次,到每时每刻算,是从离散到连续的过程。而在大千世界中,事物都是动态连续变化的,系统的此时的变量会参与到下一时刻的变化。
    式(2.11)说明一个单位状态量的变化率是固定100%的系统,e代表了在一个单位时间内,连续的翻倍增长所能达到的极限值
    那如果变化率没那么巧,是100%呢?不妨设年利率是x,式(2.1.1)即为
lim ⁡ n → ∞ ( 1 + x n ) n = lim ⁡ n → ∞ ( ( 1 + 1 n / x ) n / x ) x = e x (2.1.2) \lim\limits_{n \to \infty}(1+\frac {x} {n})^n=\lim\limits_{n \to \infty}((1+\frac {1} {n/x})^{n/x} )^x=e^x \tag{2.1.2} nlim(1+nx)n=nlim(1+n/x1)n/x)x=ex(2.1.2)
    由上可得,一个单位状态量变化率是固定值的系统,其状态就可以用自然常数的指数函数来表示。
    前面我们考虑的都是单位时间,我们再把时间加入考虑范围,设时间为t,则:
f ( t ) = e x t (2.1.3) f(t) =e^{xt} \tag{2.1.3} f(t)=ext(2.1.3)
    哈哈哈,好了,我们发现和 e i w t e^{iwt} eiwt是令x=iw,让我们继续往下看。

2.2 i复数的几何意义

    我们都知道 1 ∗ ( − 1 ) = − 1 ; 1 ∗ ( − 1 ) ∗ ( − 1 ) = 1 1*(-1)=-1;1*(-1)*(-1)=1 1(1)=11(1)(1)=1。引入几何学,画出下图:
在这里插入图片描述
    可以发现,在上图中,*(-1)在几何中,等价于逆时针旋转180度。那好奇猫肯定要问了,如果我偏要旋转90度呢?
    旋转180度等于 ∗ ( − 1 ) *(-1) (1)为已知条件。我们设i为旋转90度需要乘的数。
即我们旋转180度,需要乘2次i,可得 1 ∗ i ∗ i = − 1 1*i*i =-1 1ii=1
    化简得
i = − 1 2 (2.2.1) i=\sqrt[2]{-1}\tag{2.2.1} i=21 (2.2.1)
    画图得
在这里插入图片描述
    如此一来,我们构建出了一个2维坐标系,好玩的就变多了。
    以前我们表达一个二维平面点需要2个数(x,y),但是现在用上i后,我们发现一个复数就可以表示一个点的位置。
在这里插入图片描述
    一个数表示原来2个数因此称这个数为复数。

2.3 e i x = c o s ( x ) + i s i n ( x ) e^{ix}=cos(x)+isin(x) eix=cos(x)+isin(x) 欧拉!

    前面的文章我们讲到e,i这两个神奇的数字,但并未说明他们有什么关联。历史告诉我们,当世界支离破碎的时候,常常就会天降猛男。同理这时候,欧拉来了,带来了欧拉公式
e i x = c o s ( x ) + i s i n ( x ) (2.3.1) e^{ix} = cos(x)+isin(x)\tag{2.3.1} eix=cos(x)+isin(x)(2.3.1)
    关于欧拉公式通过泰勒级数的推导,可以看下面的文章
                    https://baijiahao.baidu.com/s?id=1681031751212927869&wfr=spider&for=pc
    下面通过直观的图形化过程进行讲解。
e i x = lim ⁡ n → ∞ ( 1 + i x / n ) n (2.3.2) e^{i x}=\lim _{n \rightarrow \infty}(1+i x / n)^{n} \tag{2.3.2} eix=nlim(1+ix/n)n(2.3.2)
    通过matlab绘制公式2.3.2图

x = 0:10:1000;			%任意值
n = 10000000000;		%n趋于无穷大
e_ix =(1+x* i./n).^n;	%计算e_ix值
compass(e_ix);			%画出罗盘图

得到
在这里插入图片描述
    由图可得,无论x为任何值, e i x e^{i x} eix单位圆(以原点为圆心,半径为1的圆)上的一点。
由此,我们可以得出下图
复平面图
    同理可得, c o s ( x ) + i s i n ( x ) cos(x)+isin(x) cos(x)+isin(x)为复平面上的一点,或者表示为以0为起点的一个向量。
    因此,傅里叶公式中的 e i w t e^{iwt} eiwt即等价为 c o s ( w t ) + i ∗ s i n ( w t ) cos(wt)+i*sin(wt) cos(wt)+isin(wt)的向量,模长为1,相位为 w t wt wt

2.4 <>内积

    接着我们继续理解内积的意义。内积用于向量的计算,以向量 a ⃗ = ( 1 , 2 ) , b ⃗ = ( 1 , 0 ) \vec{a}=(1,2),\vec{b}=(1,0) a =(1,2),b =(1,0)为例:
< ( 1 , 2 ) , ( 1 , 0 ) > = ∣ ( 1 , 2 ) ∣ ∗ ∣ ( 1 , 0 ) ∣ ∗ c o s ( θ ) = 1 ∗ 1 + 2 ∗ 0 = 1 <(1,2),(1,0)> = |(1,2)|*|(1,0)|*cos(\theta) =1*1+2*0 = 1 <(1,2)(1,0)>=(1,2)(1,0)cos(θ)=11+20=1
    其几何含义为向量 a ⃗ \vec{a} a 在向量 b ⃗ \vec{b} b 上的投影,内积的结果即为系数。如果2个向量夹角为90度,则 c o s ( θ ) = 0 cos(\theta)=0 cos(θ)=0,其内积为0,即2个向量正交。
    同理如果将向量扩展至n维,则其内积为
< a ⃗ , b ⃗ > = a 1 ∗ b 1 + a 2 ∗ b 2 . . . + a n ∗ b n = ∑ i = 1 n ( a i ∗ b i ) <\vec{a},\vec{b}> =a_1*b_1+a_2*b_2...+a_n*b_n = \sum_{i=1}^{n}(a_i*b_i) <a ,b >=a1b1+a2b2...+anbn=i=1n(aibi)
    继续将其扩展至函数,函数是连续的,连续(即dx趋于无穷小)的累加为积分。令 a = f ( x ) , b = g ( x ) a = f(x),b = g(x) a=f(x),b=g(x)
< a , b > = ∫ − ∞ + ∞ f ( x ) ∗ g ( x ) ∗ d x (2.4.1) <a,b> =\int_{-\infty}^{+\infty}f(x)*g(x)*dx\tag{2.4.1} <a,b>=+f(x)g(x)dx(2.4.1)
    继续扩展至复函数, i = ( − 1 ) 0.5 i=(-1)^{0.5} i=(1)0.5,复平面上的向量 a = 1 + i a=1+i a=1+i
< a , a > = ∣ 1 + i ∣ ∗ ∣ 1 + 1 i ∣ ∗ c o s ( θ ) = 1 ∗ 1 − i ∗ i = 1 ∗ 1 + i ∗ ( − i ) = 2 <a,a> = |1+i|*|1+1i|*cos(\theta) =1*1 - i*i =1*1+i*(-i) =2 <a,a>=1+i1+1icos(θ)=11ii=11+i(i)=2
    由于复平面上 i = ( − 1 ) 0.5 i=(-1)^{0.5} i=(1)0.5,为了保证内积结果为正数,即保证投影的结果为正。内积计算需将虚部部分变为相减,等价于其中一个向量取共轭( a ⃗ = 1 + i \vec{a}=1+i a =1+i取共轭为 a ‾ = 1 − i \overline{a} =1-i a=1i)。

    同理,推广至复函数,设a,b为复函数,则内积计算为
< a , b > = ∫ − ∞ + ∞ f ( x ) ∗ g ( x ) ‾ ∗ d x (2.4.2) <a,b> =\int_{-\infty}^{+\infty}f(x)*\overline{g(x)}*dx\tag{2.4.2} <a,b>=+f(x)g(x)dx(2.4.2)
    因此我们设信号函数为 f ( t ) , g ( t ) ‾ = e i w t f(t),\overline{g(t)}=e^{iwt} f(t),g(t)=eiwt,则函数内积为
< f ( t ) , e i w t > = ∫ − ∞ + ∞ f ( t ) e − i w t d t (2.4.3) <f(t),e^{iwt}>=\int_{-\infty}^{+\infty}f(t)e^{-iwt}dt\tag{2.4.3} <f(t),eiwt>=+f(t)eiwtdt(2.4.3)
    式2.4.2,如果大家还记得的话,就是文章开头的公式。
    我们推导得到了傅里叶变换的含义是信号 f ( t ) f(t) f(t) e i w t e^{iwt} eiwt的内积。2.3的部分我们得到了 e i w t = c o s ( w t ) + i ∗ s i n ( w t ) e^{iwt} = cos(wt)+i*sin(wt) eiwt=cos(wt)+isin(wt) e i w t e^{iwt} eiwt是复平面上的单位向量。
    因此,傅里叶公式的直观意义就是信号 f ( t ) f(t) f(t)在复平面上任一单位向量 e i w t e^{iwt} eiwt的投影,结果为其系数。
    至此,我们关于傅里叶变换的问题变为 为什么选择在 e i w t e^{iwt} eiwt上做投影,又为什么和频域挂上钩的?

2.5 三角函数的妙用

    三角函数( s i n , c o s sin,cos sin,cos)是完备的正交函数集。什么意思呢?
    三角函数系为:
{ s i n ( 0 x ) , c o s ( 0 x ) , s i n ( x ) , c o s ( x ) , s i n ( 2 x ) , c o s ( 2 x ) , . . . . , s i n ( n x ) , c o s ( n x ) } \{sin(0x),cos(0x),sin(x),cos(x),sin(2x),cos(2x),....,sin(nx),cos(nx)\} {sin(0x),cos(0x),sin(x),cos(x),sin(2x),cos(2x),....,sin(nx),cos(nx)}
    完备的正交函数集的意思为在上述集合中,任选2个元素,其内积为0,即正交。比如:
< c o s ( 0 x ) , c o s ( x ) > = ∫ − π π c o s ( 0 x ) ∗ c o s ( x ) d x = ∫ − π π 1 d x + ∫ − π π c o s ( x ) d x = 0 <cos(0x),cos(x)> = \int_{-\pi}^{\pi}cos(0x)*cos(x) dx= \int_{-\pi}^{\pi}1dx+ \int_{-\pi}^{\pi}cos(x)dx=0 <cos(0x),cos(x)>=ππcos(0x)cos(x)dx=ππ1dx+ππcos(x)dx=0
     s i n ( w t ) , c o s ( w t ) sin(wt),cos(wt) sin(wt),cos(wt)函数随着w的变化,频率发生变化。根据上述定义,可得,不同频率的三角函数内积为0,只有频率相等的三角函数做内积时,才不为0
    通过 e i w t = c o s ( w t ) + i ∗ s i n ( w t ) e^{iwt} = cos(wt)+i*sin(wt) eiwt=cos(wt)+isin(wt)不难发现, e i w t e^{iwt} eiwt由同频率的三角函数相加组成。至此我们可以直观的看出,信号 f ( t ) f(t) f(t) e i w t e^{iwt} eiwt的内积,只有信号 f ( t ) f(t) f(t) e i w t e^{iwt} eiwt同频的分量才会有内积的结果,其余分量内积为0。

    傅里叶变换的本质就是内积,而内积的对象是由同频三角函数组成的 e i w t e^{iwt} eiwt。通过与 e i w t e^{iwt} eiwt的内积(投影),分离出角频率为w的分量,而 ∫ − ∞ + ∞ \int_{-\infty}^{+\infty} +就是将信号每个时刻的w的分量叠加(即振幅)。
    通过选择不同的 e i w t e^{iwt} eiwt便可获取信号不同的频率分量。遍历不同的频率,即形成了频谱。
    这边还有个小问题, e i w t e^{iwt} eiwt如何与真实的信号频率对应上呢,请看下文。

2.6 傅里叶变换的频率分析

    我们通过一个例子来进行讲解。假设我们有个连续信号 f ( t ) = 2 ∗ s i n ( 2 p i ∗ 66.66 ∗ t ) + 3 ∗ c o s ( 2 p i ∗ 88.88 ∗ t ) f(t) = 2*sin(2pi*66.66*t)+3*cos(2pi*88.88*t) f(t)=2sin(2pi66.66t)+3cos(2pi88.88t)
频率公式为:
f = 1 / T f = 1/T f=1/T
    以 s i n ( 2 p i ∗ 66.66 ∗ t ) sin(2pi*66.66*t) sin(2pi66.66t)为例,周期为 T = 2 p i / w = 2 p i / ( 2 p i ∗ 66.66 ) = 1 / 66.66 T = 2pi/w = 2pi/(2pi*66.66)=1/66.66 T=2pi/w=2pi/(2pi66.66)=1/66.66,因此频率为 f = 1 / T = 66.66 h z f = 1/T =66.66hz f=1/T=66.66hz。同理可得 c o s ( 2 p i ∗ 88.88 ∗ t ) cos(2pi*88.88*t) cos(2pi88.88t)的频率为 88.88 h z 88.88hz 88.88hz。因此该信号有66.66hz和88.88hz的信号。
    接下来进行信号的采集分析。
    首先需要设定采样频率,根据奈奎斯特采样定律,采样频率需至少为信号最高频率的2倍。为什么呢,可以直观的理解,根据傅里叶变换可知,获取信号频率的方法,是和 e i w t = c o s ( w t ) + i ∗ s i n ( w t ) e^{iwt} = cos(wt)+i*sin(wt) eiwt=cos(wt)+isin(wt)做内积,而在采样时,要确定信号最高频率的 c o s ( w t ) , s i n ( w t ) cos(wt),sin(wt) cos(wt)sin(wt)的信息,至少需要确定2个点的位置。如下图。同理可得,最终得到的频谱中,有效的频率区间为采样频率的一半。
在这里插入图片描述
    可以通过这个单位圆来理解采样频率,和采样点数。采样频率代表 e i w t e^{iwt} eiwt在[0,2pi]代表的频率范围,如采样频率为200HZ,即[0,2pi]对应着0-200HZ。而采样点数就是将这0-2pi分成的份数,对应的就是变换的频率。即采样频率,确定频谱的频率范围,采样点数确定频谱的刻度的精细度。比如一把10cm量程(采样频率)的尺子,最高刻度是1cm,那尺子就是将10cm等分成10份(采样点数)。
在这里插入图片描述
    至此,设定仿真参数为采样频率200HZ,采样点数设为100,matlab仿真代码如下:

%% 参数设置
fs=200;     %采样频率
N=100;      %采样总数
n=0:N-1;    %采样点
t=n/fs;     %采样时间间隔
%% 结果计算
y=2*sin(2*pi*66*t)+3*sin(2*pi*88*t);  %时域计算
x=fft(y,N); %傅里叶变换
m=abs(x);   %振幅取绝对值
f=n*(fs/N);   %实际频率换算
%% 绘制结果图
plot(f,m,'-*');  
xlabel('频率/Hz');ylabel('振幅');title('N=100');

在这里插入图片描述
    通过仿真图就可清晰的明白采样频率,和采样点数的意义。随着采样点的增多,频谱分析逐渐精细,最终成功分辨出66.66,和88.88HZ的频率。

2.7 结语

    至此,本人已完成自己的第一篇博客。由于为了尽可能的兼顾直观和严谨,难免存在一些纰漏,希望大家不吝赐教!
    如果大家需要详细的数学推导,在此推荐B站dr_can博士的相关视频。


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

相关文章

小波变换(一)

小波变换(一) 由于项目可能会用到的原因,学一下,感觉已有的通俗易懂教程不够相应的学术性. 教程:《数字信号处理》陈后金著 视频教程:中国大学mooc-数字信号处理 文章目录 小波变换(一)傅里叶变换的局限性短时傅里叶变换(STFT)时间分辨率频谱分辨率我们到底想要什么东西 信号…

360视频:旋转球面投影RSP

旋转球面投影&#xff08;Rotated sphere projection&#xff0c;RSP&#xff09;将球体分为两个相同的部分&#xff0c;然后投影到平面上&#xff0c;宽高比3&#xff1a;2。 图1 RSP投影 球面上两部分的分割线类似于图2中网球上的分割线。 图2 网球分割示意图 Frame Packin…

视频防抖技术的实现

1. 介绍 视频防抖是指用于减少摄像机运动对最终视频的影响的一系列方法。摄像机的运动可以是平移&#xff08;比如沿着x、y、z方向上的运动&#xff09;或旋转&#xff08;偏航、俯仰、翻滚&#xff09;。 对视频防抖的需求在许多领域都有。 这在消费者和专业摄像中是极其重…

音视频基础:视频的编码

本文主要参考《图像通信技术与应用》作者陈柘 陈川 记录了数字图像的模型、图像变换的数学原理、图像编码的基本思想、H.26x等视频标准、以及视频的传输模型等概念&#xff0c;只介绍思想&#xff0c;无数学推导&#xff0c;无代码实践&#xff0c;属于音视频入门知识 视频的编…

视频压缩基本概念

视频压缩基本概念 为什么需要压缩视频 首先回答why这个问题。 假设一个2小时未压缩的高清视频&#xff0c;19201080p的电影&#xff0c;我们来计算一下他的存储容量。先介绍一下帧率(frame rate或者是 FPS)概念&#xff0c;也就是每秒传输图片的帧数&#xff0c;也可以理解为…

视频压缩基本介绍与标准

视频压缩基本介绍与标准 视频压缩又称视频编码&#xff0c;所谓视频编码方式就是指通过特定的压缩技术&#xff0c;将某个视频格式的文件转换成另一种视频格式文件的方式。 一般的通用数据压缩方案如下图&#xff1a; 压缩就是一个传播的过程&#xff0c;所以在压缩与解压缩…

vr视频六面体变换

本文会对facebook的开源filter&#xff1a;vf_transform.c 做代码级分析&#xff0c;解释vr视频是如何做六面体转换的。 转换的关键其实就是输入vr视频到六面体的映射&#xff08;也就是下图中蓝色图像映射到红色图像&#xff09;&#xff1a; 假设每个正方形的像素是512x512个…

学生角度看傅里叶变换,拉普拉斯变换,z变换(一)

学生角度看傅里叶变换&#xff0c;拉普拉斯变换&#xff0c;z变换&#xff08;一&#xff09; 学生角度看傅里叶变换&#xff0c;拉普拉斯变换&#xff0c;z变换&#xff08;一&#xff09; 离散和连续信号的表示 信号的脉冲表示响应与卷积 傅里叶变换 为什么需要傅里叶变换ejw…

树莓派GPIO引脚介绍

在已经安装好GPIO库的情况下&#xff0c;命令行输出gpio readall即可列出IO引脚的定义和编号&#xff0c;显示如下&#xff08;替换为图&#xff09; 编号规则可参考树莓派GPIO控制 Python配置GPIO安装参考&#xff1a; sudo apt-get install python-dev sudo apt-get insta…

树莓派GPIO引脚控制红绿灯与轰鸣器

参考&#xff1a; https://blog.csdn.net/weixin_44415639/article/details/114600919 https://blog.csdn.net/chenbo163/article/details/78716269 https://blog.51cto.com/u_11643026/4291142 这里文章用的编程引脚是物理引擎代号BOARD 1、GPIO控制包安装 参考&#xff1…

树莓派教程 : 树莓派各版本引脚定义

树莓派Zero W/WH(Raspberry Pi Zero W/WH) GPIO针脚定义

树莓派各版本引脚及参数

一、树莓派引脚 图片来源 注&#xff1a;本表格适用于各版本&#xff0c;并且兼容26Pin的树莓派B&#xff0c;树莓派B为26Pin&#xff0c;其引脚对应于上表的前26Pin。 二、树莓派参数 1.树莓派各版本比较&#xff1a; 2.树莓派3B参数 表格来源 名称参数备注SOC博通 BCM28…

树莓派4b 引脚图

树莓派 4B 详细资料

树莓派引脚远程控制

最近和树莓派群里朋友合作想做个开源RPILINK系统满足群里一些朋友的需求,虽然不少地方还不完善至少开了个头,先记录下来功能,以后有空会陆续会完善技术方面记录。 Rpilink系统是一个将树莓派设备连接到一起的数据平台,树莓派之间可以通过用户的配置进行数据交换和命令的执行…

树莓派4B的引脚控制简单demo

淘宝上的店家提供了很多示例程序&#xff0c;这里只拿一种来演示下&#xff0c;借此熟悉下如何用c或者python环境去操作树莓派。前提配置见我的之前的系列博客 树莓派4B基础软硬件环境搭建_jiugeshao的专栏-CSDN博客 树莓派4B上多版本python切换&#xff08;一&#xff09;_j…

树莓派的GPIO端口详解

首先上一张端口图 GPIO&#xff08;GeneralPurposeI/OPorts&#xff09;意思为通用输入/输出端口&#xff0c;通俗地说&#xff0c;就是一些引脚&#xff0c;可以通过它们输出高低电平或者通过它们读入引脚的状态-是高电平或是低电平。GPIO是个比较重要的概念&#xff0c;用户可…

树莓派管脚编码c语言,树莓派IO引脚定义 | 北岛夜话

我们使用树莓派的很重要一个原因是想通过它来进行一些智能控制,比如控制舵机、LED灯、继电器或者用来进行串口、SPI通信等,这些都需要通过控制树莓派的输入输出引脚(IO引脚)来实现的。前面的文章我们说过树莓派的输入输出引脚有26针和40针的区别,今天这篇文章我们具体看看它…

树莓派GPIO引脚详解

树莓派的GPIO引脚还是小有点复杂&#xff0c;有些是共用的。需要在启动时切换不同的设备树文件来设置不同的模式。详情参考&#xff1a; UART at Raspberry Pi GPIO PinoutRaspberry Pi UART pinshttps://pinout.xyz/pinout/uart

树莓派引脚编号说明

目前&#xff0c;树莓派引脚编号方式有三种&#xff1a; 1&#xff0c;基于引脚的物理位置进行编号&#xff1b; 2&#xff0c;C语言GPIO库wiringPi约定的编号方式&#xff1b; 3&#xff0c;Python语言GPIO库RPi.GPIO约定的编号方式。 如果我们要基于wiringPi库用C语言对树…