搜索
bottom↓
回复: 54

[学习笔记] 滤波器,电话拨号,西瓜和频谱分析

[复制链接]

出0入4汤圆

发表于 2011-12-9 10:32:04 | 显示全部楼层 |阅读模式
滤波器,电话拨号,西瓜和频谱分析

Atommann
Friday, July 01 2011

To see a World in a Grain of Sand    一沙一世界
And a Heaven in a Wild Flower,     一花一天堂
Hold Infinity in the palm of your hand 握无穷于掌心
And Eternity in an hour.        永恒即刹那时光

——[英国诗人]威廉·布莱克(William Blake)

滤波器
======

最近阅读《发明者电子设计宝典》[1],了解到一些滤波器方面的知识(玩业余无线电必定要涉及到这个东西),滤波器主要分下面这几种:
* 低通(low-pass),允许低于某个频率(称为截止频率,通常记作 F_cutoff)的信号通过,高于这个频率的信号将被衰减
* 高通(high-pass), 和低通相反,它允许某个频率以上的信号通过
* 带通(band-pass), 允许某个频率范围的信号通过,低于这个频率和高于这个频率都衰减(这也说明了“带”字在这里的含义,滤波器里有通带和阻带的概念,通带就是让信号通过的那个频率波段,阻带就是不让信号通过的那个波段)
* 带阻(band-stop), 和带通相反,它在某个频率范围内阻止信号通过

电话拨号与 RC 滤波
==================

说到滤波器,我为外婆制作的电话机 facephone [2]就用到了 RC 低通滤波器,它由一个电阻 R 和一个电容 C 组成,如插图 fig-01 所示。那为什么要用 RC 滤波器呢?这得从电话拨号的原理说起。

电话机的拨号方法有好几种,其中最常见的一种拨号信号就是 DTMF (即 Dual Tone Multi Frequency,双音多频)[3],它最初由贝尔实验室开发,在你打电话拨号时按下按键时发出的音就是 DTMF 信号的声音,每个数字都是由两个不同频率的正弦波相加在一起形成的,就是 Asin(f_H) + Bsin(f_L),这可以从下面的表格看出来(普通的电话没有 ABCD 键)。

表1: DTMF 键盘频率
-------------
       1209Hz 1336Hz 1477Hz 1633Hz
697Hz  1      2      3      A
770Hz  4      5      6      B
852Hz  7      8      9      C
941Hz  *      0      #      D

这种 DTMF 信号有多种方法可以生成,可以用专用的电话拨号 IC,比如 MT8880,也可以用微控制器通过软件直接生成(这样可以让电路更简单,因为少掉了 IC),facephone 是基于 AVR 单片机设计的。AVR 应用笔记 "AVR314: DTMF Generator" 就详细讲解了如何用 PWM (Pulse Width Modulation,脉冲宽度调制)[4]来生成 DTMF 信号,这个应用笔记含有 C 语言源程序,只要接好实验电路,给 AVR 烧写好程序,接一个小喇叭到 AVR 的 PWM 输出脚上,按 4x4 键盘,就可以听到电话拨号音。

说到 DTMF 信号,据说某些经过训练的人听到 DTMF 声音可以直接说出你按的是数字几。某次公司的经理告诉我一个新闻:有骗子叫别人把座机在免提模式输入银行卡的密码,过了不多久,上当者卡里的钱就被转走了。因为我正好知道 DTMF,就讲了上述的原理。解码 DTMF 很容易,电话的来电显示几乎是标准配置功能。而且可以用 IC 如 MT8870 来解码电话号码。此外,计算机软件也能直接解码。

回到那篇应用笔记,AVR 输出的 DTMF 信号是用 PWM 表示的,是数字信号,笔记中说要在输出引脚上接一个低通滤波器去掉高频信号以把 PWM 信号变成频率低一些的模拟信号,可是我并不知道怎么计算 R 和 C 的值,后来看到网友 sunge 在它的 DTMF 实验程序[5]中提到 R 和 C 的值可以通过它的截止频率 F_cutoff = 1/(2*pi*RC) 计算出来,当时我并不知道这个公式是什么意思,不知道这个公式是怎么来的,这让我很困惑(困惑并不是一件坏事),我想知道更深层的原理。

我按照 sunge 的方法取 R = 1k, C = 0.1uF,电话拨号正常。虽然 facephone 已经在外婆家良好服役了几个月,但这个 RC 电路问题一直困扰着我,直到最近看到《发明者电子设计宝典》上的讲解才差不多明白其中的一些道理。书中第 2.21 小节“用复阻抗分析正弦电路”引入了复数[6] z = x + iy 来分析正弦电路,复数应用在这里真是太神奇了,利用它,电阻,电容,电感可以用复阻抗(impedance, 这个词由 Oliver Heaviside [7] 创造)来处理。以前一直没有读这个部分是因为有点害怕复数,以为它很难,不敢去碰。应用这个方法,三种基本电子元件的阻抗可以表示如下:

电阻 R 的复阻抗 Z_R = R
电容 C 的复阻抗 Z_C = 1/(jwC)
电感 L 的复阻抗 Z_L = jwL

其中,j 是虚数单位,j^2 = -1,本来在数学上用 i 表示虚数单位,但是在电学中往往用 i 表示电流,为了不引起误会,就用 i 的后继字母 j 来表示了。 w 是正弦信号的角频率,在书上一般是用希腊字母 ω 表示,这里打字不便就用了 w.

这些公式的具体推导在一般的电工学书里都有讲述,下面来试试电容 C 的复阻抗的推导过程:

正弦电压的公式:
V = V0cos(wt)

其中,V0 是正弦电压的幅度,w 是角频率,单位是 rad/s,t 是时间,正弦电压是时间的函数。另外,这里用的 cos 而不是 sin 没有关系,只是相位差了 90 度。

引入复数来表示它,公式就变成了:
V = V0cos(wt) + jV0sin(wt)

书上说后面的虚部 jV0sin(wt) 没有物理意义,不影响实电压的表示,但是在叠加过程中要用到它。

复数可以被表示成指数形式:
V = V0e^(jwt)

其根据是欧拉公式 cos(t) + isin(t) = e^(it),随便提及,这个公式可以通过分别把 cos(t), sin(t) 和 e^t 展开成泰勒级数的形式证明[8]。

交流电压在复平面也可以被表示成一个向量,起始点在原点,这样正弦电压就很好理解,当角度 wt 随时间变化的时候,电压的幅度就跟着变化。

好,接下来我们看看电容器,电容器的数学模型是 Q = CV,其中 Q 是电量,C 是电容(也就是经常提到的 0.1uF 等等数值),V 是电压。这个公式是说:电容器上存储的电荷量与电容大小和加在其上的电压成正比,这是可以理解的,因为想象电容器的两个金属极板越大,那同样的电压,它能存储的电荷就越多,如果极板一样大,要是电压 V 越高,则存储的电荷也越多,因为电场变强了。再顺便提到电感器的数学模型 v = L(di/dt),di/dt 是电流对时间 t 的导数(就是电流变化的快慢程度),这个公式说:电流变化越快,电感两端感生的电压就越高(电磁感应),其中的 L 是就是我们常提到的电感,如 100mH,H 是纪念美国科学家 Joseph Henry.

好,回到电容器的数学模型,加个电压到电容器上,流过的电流 I_C 可以这样计算:
i =  dQ/dt (这是电流的定义,单位时间流过的电荷数量即是电流)
I_C = dCV/dt (代入 Q = CV 得到)
I_C = CdV/dt (常数 C 提到前面)
I_C = Cd(V0e^(jwt))/dt = jwCV0e^(jwt) (代入正弦电压的复数表示,并对时间 t 求导)

好,这个时候我们得到了经过电容器的电流的复数表示方法,如果用电压除以电流,会得到什么呢?(对于电阻 R 来说,V/I = R),我们来算一下:

V0e^(jwt)
------------- = 1/(jwC) = Z_C
jwCV0e^(jwt)

啊,分母和分子中的 V0e^(jwt) 都波消掉了!我们 1/(jwC) 就是上面提到的电容器的复阻抗 Z_C,电感 L 的复阻抗 Z_L = jwL 也可以相同的方法求得。

为什么能这样干(除)呢?奥秘就在于复数,因为用复数来表示电压和电流,在复平面上复数 re^(jθ) 可以看成是以原点为起始点的向量,这个向量的实部就是在 x 轴上的投影 rcos(θ),它就是电压和电流的大小,而 θ 则表示了相位关系,对于电容器来说,如果给它通上 V = V0cos(wt) 的余弦电压,通过的电流的相位就会比电压的相位超前 π/2,就是 90 度。

注意到前面提到的电流 I_C = jwCV0e^(jwt) 是个纯虚数,这个数实际上就包含了相位超前 90 度的信息,把指数表示换算成三角表示就能看出来(实际上不用换算也能看出,因为纯虚数就在虚轴上,它的相位比正实轴上的值超前 90 度):

I_C = jwCV0e^(jwt) = j[wCV0*cos(wt) + jwcV0*sin(wt)] = jwCV0*cos(wt) - wCV0*sin(wt)
= -wCV0*sin(wt) + wCV0*cos(wt)
= wCV0*cos(wt + π/2) - wCV0*sin(wt + π/2)

上面的变形利用了三角函数关系 -sin(x) = cos(x + π/2)

I_C = wCV0*cos(wt + π/2) - wCV0*sin(wt + π/2)
V = V0cos(wt) + jV0sin(wt)

把电压的复数形式和电流的复数形式进行对比,就看出来了,电流的相位超前了 90 度,因此,给电容引入复阻抗就可以直接用 Ohm 定律来计算电流了。实际上,我们可以认为对于纯电阻电路,电压和电流的相位相同,因此,电阻的复阻抗是实数。

将复数引入到电路分析中,这真是一个天才的想法!在后面我们会看到拉普拉斯变换 F(s) = ∫(0,∞) e^(-st)f(t)dt 可以把实函数变换为复变函数,然后进行分析,我猜想这两者之间存在着某种联系。

现在有趣的事情发生了,这个复阻抗 Z_C 是个复数,是频率 w 的函数(已经不是时间 t 的函数了),但是这样做有什么好处呢?

我们都知道两个电阻 R1 和 R2 串联的分压电路(voltage divider):

V_in
|
[ ]
[ ] R1
[ ]
|
o----------- V_out
|
[ ]
[ ] R2
[ ]
|
GND

            R2
V_out = ---------V_in
         R1 + R2

这是一个比例分配关系。

好,基本知识都准备就绪了,下面回到我们前面的 RC 低通滤波器电路,这个时候电路有一点改变(和电话原理图中的一样,为了方便好看变化了一下形状,变成了分压器的形式):

V_in
|
[ ]
[ ] R
[ ]
|
o----------- V_out
|
--- C
---
|
GND

和上面的电阻分压电路一样,引入了复阻抗之后这里可直接应用分压电路的计算方法即可求出电容两端的电压 V_out

            Z_C
V_out = -----------V_in
         Z_R + Z_C

V_out      1/(jwC)         1
----- = ------------ = ---------
V_in     R + 1/(jwC)    1 + jwRC

然后我们把分母表示成复数的指数形式

1 + jwRC = Ae^(ja)

基中

A = sqrt(1^2 + (wRC)^2)
a = atan(wRC/1), 角 a 是相位

V_out      1       1                  1
----- = ------- = ---e^(-ja) = -----------------e^(-jatan(wRC))
V_in    Ae^(ja)    A           sqrt(1 + (wRC)^2)

这时已经得到了输入电压 V_in 和输出电压 V_out 之间的关系,但是这个比值同样是一个复数,我们如果想知道 V_out 和 V_in 比值的幅度,这时,上面那个等式 e 前面的部分就是幅度(把虚指数项去掉,虚指数项中包含了相位的信息):

| V_out |          1
| ----- | = ---------------
| V_in  |    /------------
            / 1 + (wRC)^2

显然,这个 | V_out / V_in | 表示信号的衰减。这个公式是非常有意义的,它表示输入的电压有多少可以到达输出端,我们可以从中读出很多信息。其中的 w 是信号的角速度,如果 w = 0 那分母就为 1,这时 | V_out / V_in | = 1,这是说低频(w=0)的信号(如直流电压)完全到达输出端。如果 w 很大(信号的频率很高)如交流电,则分母会非常大,| V_out / V_in | 甚至会接近 0,表示高频信号不容易通过,这就是低通滤波器应该有的属性!当然,我们这里是从它的数学模型来考虑,从物理上可以直接看出高频信号容易通过电容到地,但是用数学模型可以进行定量分析。

好,那我们前面提到的截止频率 F_cutoff = 1/(2*pi*RC) 又是从何而来的呢?

注意,如果 w = 1/(RC) 那式子中的分母就变成了 sqrt(2),| V_out / V_in | = sqrt(2)/2 = 0.707... 这个时候输出电压就是输入电压的 0.707 倍(相当于输出电压的功率相对输入电压减半)。这个频率 w_c = 1/(RC) 就被定义为截止频率。

在实际应用中,一般是用 dB 即分贝来表示信号的衰减,根据 dB 的定义:

A_dB = 20log| V_out / V_in | = 20log(sqrt(2)/2) = -3dB

截止频率这个点就是被定义为在 -3dB 这个点,这在设计滤波器的时候经常用到。

角频率 w_c 在这里的单位是 rad/s,可以把它除以 2*pi 转换成频率 F_cutoff:

            w_c      1/(RC)       1
F_cutoff = ------ = -------- = -------
           2 * pi    2 * pi    2*pi*RC

看,我们得到了 RC 低通滤波器的截止频率,实际计算一下 facephone 中的 R=1k, C = 0.1uF 的截止频率:

F_cutoff = 10^6/(2*pi*1000*0.1) = 1592 Hz

从 DTMF 频率表格中可以看出频率最高的正弦波是 1633Hz,而我们设计出的 RC 电路的截止频率是 1592Hz,基本吻合,实际上对于普通的电话机,后面的 ABCD 这四个键是没有用到的,因此电路满足实际的应用。


Bode plot, 传递函数和拉氏变换
=============================

| V_out |          1
| ----- | = ---------------
| V_in  |    /------------
            / 1 + (wRC)^2

我试了一下用数学软件把上面这个式子的图形描绘出来,比如在 wxmaxima 中输入下面两个命令就能看到图形,如插图 fig-02 所示,从图上可以看出 -3dB 对应的频率差不多就是 1590Hz(光标那个位置,频率显示在左下角)。

log10(x) := log(x) / log(10);
plot2d(20*log10(1/(sqrt(1 + (w*2*%pi*0.0001)^2))), [w, 0, 2000]);

在网上搜索一些相关资料,在一篇文档里也讲到串联 RC 电路,oops, 原来上面的 V_out/V_in = 1/(1 + jwRC) 就是传递函数(transfer function)!以前看书略为知道有传递函数这个东西,但是具体的内容和应用却并不熟悉,它竟然出现在了这里。

查阅 Wikipedia, 得知书上的滤波器对频率的响应曲线的图形就是 Bode Plot (得名于控制领域的大牛 Hendrik Wade Bode),在 maxima 中用 bode_gain 和 bode_phase 函数可以打印传递函数的 Bode plot.

一个更强大的工具:拉氏变换
==========================

随着学习的推进(阅读 Wikipedia 可以给出很多线索),原来电路系统可以用 Laplace 变换[9]来分析,经过它变换一些系统的关系就变成了线性方程,这样就避免了求解微分方程。Laplace 变换听是听说过,可是从来没用过,因为它是一种积分变换,而且经过变换后的函数是复变函数,而自己又不懂复分析。于是我硬着头皮读了一点《控制系统基础》[10]和《信号与系统》[11],发觉只要认真看,还是可以理解一些东西的。

《控制系统基础》中提到可以把 Laplace 变换和对数算术作类比,这是非常有趣的。在我们初中学数学时都发有一本小册子,上面有个常用对数表,在我们这一代成长起来之前,电子计算器就已经开始流行,计算尺(slide rule)我是没有见过的,下面用一个实际例子来温习一下用对数表来作算术运算:

对数有如下两个基本性质(这里底是 10)
log(x*y) = log(x) + log(y)
log(x/y) = log(x) - log(y)

这样乘法和除法就变成了加法和减法来计算,例如,我们想计算 456/123。

步骤1:取对数(对运算进行对数变换)
log(456/123) = log(100*4.56) - log(100*1.23) = log(4.56) - log(1.23)

步骤2:查常用对数表( http://myhandbook.info/table_commonlog.html )
log(4.56) = 0.658965
log(1.23) = 0.089905

然后算出两个数相减的结果
log(456/123) = log(4.56) - log(1.23) = 0.658965 - 0.089905 = 0.56906

步骤3:利用这个 0.56906 查反对数表,可以知道它应对的数字是 3.707,用 PC 上的计算器算一下:
456/123 = 3.707317073

小数点后第 3 位是吻合的,从这个过程可以看到,如果一个人并不懂得乘除法的计算方法,让他用上面这套规则同样可以进行乘除法计算,计算机不也是这样吗?这让人想到了“中文房间”(Chinese room)这一思想实验。

Laplace 变换与此类似,我们回到前面那个串联 RC 电路,这回我们用插图 fig-03 来帮助分析,在电路中,记:

v_C: 电容两端的电压
v_R: 电阻两端的电压
v: 加载到电路上的电池的电压

根据基尔霍夫电压定律,电容两端的电压 + 电阻两端的电压 = 电源电压
v_C + v_R = v

根据电容的定义 Q = Cv_C, 电流 i = dQ/dt = Cdv_C/dt,因为电容和电阻串联,流过电阻的电流大小也是 i,因此 v_R = Ri,得到:

v_C + Ri = v

         dv_C
v_C + RC------ = v
         dt

这个微分方程就描述了这个电路的行为,如果直接求解这个微分方程我们就能得到电容两端电压的数学表达式 v_C = v(1 - e^(-t/RC)),v_C 是时间 t 的函数,其图形是一条上升的曲线,当电容被充满电之后(即时间 t 达到 +∞ 时,e 的指数项会变成 0, v_C = V),v_C 最终会等于电源电压 v.

不用分析的方法同样可以解出这个微分方程,那就是利用 Laplace 变换,《控制系统基础》和《信号与系统》中都讲到了 Laplace 变换的一些基本性质和常用变换表,我们来试试这个方法。

步骤1:对这个微分方程两端进行 Laplace 变换

            dv_C
L[ v_C + RC------ ] = L[v]
            dt

其中,符号 L 表示对函数进行 Laplace 变换,如 L[f(t)] = F(s), F(s) 就是变换的结果,这种变换相当于一个处理函数的机器,它吃进一个函数,吐出另一个函数,只不过这个函数现在是复变函数了。这让人想到一个笑话:A 和 B 吹牛,A 说:“我有一台机器,你把活猪从机器的一端赶进去,另一端就会直接出香肠。” B 说:“你这算啥,我也有一台机器,你把香肠从机器的一端塞进去,活猪就会从另一端蹦出来!”嗯,在我看来,他们俩在这里说的是“香肠变换”和“香肠逆变换”,Laplace 变换与此类似,也有相应的 Laplace 逆变换,就是说 F(s) 可以变回 f(t),当然,Laplace 变换机器吃进的是函数,而不是活猪。另外,A 说的机器实际上是存在的,香肠工厂就可以看成是这样的一个机器,只不过我们一般认为的机器都比较小,B 说的机器就有点难度了。

因为 v_C, v 实际上都是 t 的函数 v_C(t) 和 v(t),上面的方程实际上可以写成:

               dv_C(t)
L[ v_C(t) + RC-------- ] = L[v(t)]
               dt

应用线性叠加规则:
                    dv_C(t)
L[ v_C(t) ] + L[ RC-------- ] = L[v(t)]
                    dt

步骤2:查 Laplace 变换表,并利用 Laplace 变换规则处理一下:

V_C(s) + RCsV_C(s) = V(s)

其中
V_C(s) = L[v_C(t)]
V(s) = L[v(t)]
RCsV_C(s) = L[RCdv_C(t)/dt]

最后一顶是利用了函数的一阶导数变换规则 L[df(t)/dt] = sF(s) - f(0),对上面的电容电压 v_C(t) 而言,V_C(0) = 0,因为一开始时电容上电压为 0,这是初始条件。

提取公因式,并求出我们感兴趣的 V_C(s) 的表达式:

V_C(s)(RCs + 1) = V(s)

这样立即就求出了电容上的电压的表达式,它是个复变函数:

               1
V_C(s) = -------------V(s)
            RCs + 1

输出/输入,这就是这个电路的传递函数:

V_C(s)       1        output
------ = --------- = --------
V(s)      RCs + 1     input

上面式子中 s 是一个复数,s = σ + jw

回想前面用复阻抗推出的公式:

V_out       1
----- =  --------
V_in     1 + jwRC

如果 s = σ + jw 中的 σ = 0,那 s = jw(纯虚数),在这种情况下

  1           1
------- = --------
1 + sRC   1 + jwRC

有资料上讲当 v(t) 是正弦信号时 σ = 0,此时  σ 为什么为 0,这个我还不懂,资料上说 σ 在这里是 exponential decay constant,我也还不懂。

步骤3:对结果进行 Laplace 逆变换,可以得到

v_C(t) = v(1 - e^(-t/RC))

哇,通过运用 Laplace 变换,微分方程变成了多项式,利用简单的代数方法就解出来了。

我们来考查一下刚才得到的电容电压的公式,它包含着一些信息。

               1
V_C(s) = -------------V(s)
            RCs + 1

Laplace 变换有一个 Final value theorem (终值定理),它说 f(∞) = lim(s->0)sF(s),就是函数 f(t) 在 t 为正无穷时的值等于经过 sF(s) 在 s->0 时的极限值,Wikipedia 上说这个可以预测系统的长期表现(因为时间 t->∞),好像也看到说 Laplace 变换可以用来分析控制系统的稳定性,这个目前我还不懂。好,我们把这个定理应用到我们上面的公式中。

在我们闭合串联 RC 电路开关的一瞬间,实际上我们是执行了一个输入,也就是一个函数,即 V0*u(t),V0 是电池的电压,u(t) 是单位阶跃函数(即 Heaviside step function, 赫维赛德阶跃函数,前面提到过他),这个函数在 t<0 时为 0,t>0 时其值 1,t=0 时的值和具体情况有关,它的 Laplace 变换 L[u(t)] = 1/s,想象这个函数在实数轴上,在 0 点一下子跳到 1,这就是阶跃,我们闭合开关正是干了这样的事情,因为 u(t) 在 t>0 时值为 1,因此要乘上电池电压 V0.

因此

V(s) = L[V0*u(t)] = V0*L[u(t)] = V0/s

代入前面的 V_C(s) 表达式中

               1
V_C(s) = -------------V0
          (RCs + 1)s

应用终值定理求 v_C(∞)

                              1              1
v_C(∞) = sV_C(s){s->0} = s-----------V0 = ---------V0 = V0
                           (RCs + 1)s      RCs + 1

和前面的电容电压的解析表达式一样,它告诉我们,当充电时间很长,电容器被充满时,电容器两端的电压就等于电池电压 V0,这也就达到了一个稳定状态,因为电容器极板上的电场被建立起来了。作为对比,我们来看一下 RL 电路,这个电路由一个电阻 R 和一个电感 L 构成,如下图所示。

              /
             /
  +---------o   --------/\/\/\/\------+
  |                                   |
  |       Switch        Resistor      |
---                                  B
-----                                 B Inductor
---  Battery                         B
-----                                 B
  |                                   |
  |                                   |
  +-----------------------------------+

我们来求一下流经电路的电流 i(t),这是一个串联电路,串联阻抗是 R + sL,电压除以阻抗就是电流:

         V(s)
I(s) = --------
        R + sL

I(s) = L[i(t)]
V(s) = L[V0*u(t)] = V0/s

应用终值定理求时间 t->∞ 时的电流 i(∞)

                           V0        V0
i(∞) = sI(s) {s->0} = s---------- = ---
                        s(R + sL)    R

完全正确!我们想象一下这个电路的物理过程,当闭合开关时,电感器会阻止电流变化(这是它是本性),慢慢地,电流会变大,当一旦电感器上建立起磁场时,电流就稳定了,它的值就是 V0/R,此时电感器相当于一条导线。这个电路也达到了一个稳定状态。

从这两个例子可以看出 Laplace 变换确实是非常强大的工具。


西瓜和频谱分析
==============

某天在去公司的路上想到时域(time domain)和频域(frequency domain)的概念,一个信号它是时间 t 的函数就是时域,如果某个量是频率 f 的函数,那它就是频域。我粗略知道时域和频域之间可以通过傅立叶变换来转换(但具体细节我并不懂得)。比如一个声音信号,从时域变换到频域后就可以知道哪个频率的声音要强一些。可以把声音和光作类比(“音色”这个词中的“色”字用得非常好),为什么我们听声音就可以分辨出不同的人说话呢?因为不同的人发出的音的频率成分不一样。

光也是一样,光谱分析仪可以用来分析光谱,看看哪个频率的光的成分多一些等等(我一直在想,要是自己有台质谱分析仪就好了,可以方便地分析出食品中各种化学元素的含量,因为现在吃的东西让人很不放心,我知道北京的张轩中是做质谱仪的,希望他能早点研制出便宜的质谱仪)

不懂傅立叶变换,那怎样来体验一下频谱分析实验呢?Linux 上一定是有这样的软件,我想到了以前录音用过的软件 Audacity,回到家我就试了一试,果然很好玩。

有次买东西商家送了一个 54 键的玩具电子琴,我想,要是自己都不会弹奏,以后怎么教女儿玩呢?我的音乐感觉不行,找了半天没有找到中央 C 在哪里,我决定用 Audacity 来找出中央 C 那个键,于是弹奏一个音并录下来查看频谱,最后还是没有找出中央 C :(

这时正好看到墙角有个西瓜,以前我们在 SZDIY Lab 讨论过如何制作一种电子设备来分辨西瓜好坏的问题,嗯,西瓜正好是一个不错的实验对象。我把西瓜放到电脑旁边拍了几下,然后把声音录了下来(以后每次买西瓜我都准备录个音,看个波形),波形如 fig-04 所示,fig-05 是频谱,说实话,从这个图中我看不出什么名堂,切开西瓜才给了我更多信息:瓜有点生 :)

前面提到电话拨号的 DTMF 信号是两个不同频率的正弦波的叠加,真的是这样吗,我们来看一下它的频谱吧!同样,把手机键盘音打开,按键时对着电脑录音,然后查看频谱,如 fig-06 所示,中间那两个高峰的频率分别是 767Hz 和 1335Hz,再对照前面的 DTMF 频率表格,表格中 770Hz 和 1336Hz 相交处的数字是 5,完全正确,我就是按的数字 5.

后记
====

拍完西瓜录完音后决定写下这篇学习笔记,算是对我近段时间学习的一个总结。越来越觉得这些东西实在是非常有趣,但是又感觉到自己的基础还太差:不懂复变函数,控制理论、信号与系统,傅立叶变换,拉普拉斯变换。有时感觉一个很简单的问题想了很久也不明白。然而,那又怎样呢?古埃及谚语说:这个世界上只有两种生物可以越过金字塔的顶端,一个是老鹰,一个是蜗牛。大自然的美它一直在那里,等待我们去了解。

参考资料,链接及注释
====================

[1] Paul Scherz 著,蔡声镇等译,《发明者电子设计宝典》,(福建科学技术出版社,2004)
http://book.douban.com/subject/1191080/

作者 Paul Scherz 是个物理学家,本书写作风格不同于一般的电子学教科书,它涵盖了电子学各个领域的基础知识,讲解清晰明了,用水路模拟电子器件的工作行为,书中有大量作者手绘的精美电路图,另外书中很多电路是直接能用的(标有参数)。

第 8 章则详细介绍了各种滤波器的概念和怎样一步一步设计各种滤波器(例如归一化方法)。

[2] facephone
http://www.atommann.com/make/facephone/index.html

[3] DTMF (双音多频)
http://en.wikipedia.org/wiki/Dual-tone_multi-frequency_signaling

[4] PWM (脉冲宽度调制)
http://en.wikipedia.org/wiki/Pulse-width_modulation
这是一种非常有趣的技术,很多场合都会用到,是一种简易的 D/A 转换方法。

[5] sunge 的 DTMF 实验硬件说明
http://sunge.awardspace.com/dtmf-en-de/node3.html

[6] 复数
下面这两本书讲到了复数引入的精彩历史
保罗·J·纳欣著,朱惠霖译,《虚数的故事》,(上海教育出版社, 2008)
http://book.douban.com/subject/3535356/
本书里讲了英国的瑞利勋爵用复数分析电路的内容(解释天空为何是蓝色的那个瑞利)。

William Dunham, 《天才引导的历程》,(科学与人译丛)
http://book.douban.com/subject/1030974/
作者用精彩的笔墨讲述了卡尔达诺和塔塔利亚的解三次方程挑战赛,非常有趣,虚数单位 sqrt(-1) 在解三次方程时不可避免地出现。

[7] Oliver Heaviside (奥利弗·赫维赛德)
http://en.wikipedia.org/wiki/Oliver_Heaviside
传奇的英国自学成才的通才,物理学家。他发展了 operator calculus 来求解微分方程,而且有张表格,后来发现他的方法和 Laplace 变换等效。当别人说他的方法不严谨时,他说了一句有名的话: I do not refuse my dinner simply because I do not understand the process of digestion.

[8] 欧拉公式
http://en.wikipedia.org/wiki/Euler's_formula#Using_power_series

[9] 拉普拉斯变换
http://en.wikipedia.org/wiki/Laplace_transform
在这个词条中列出了电子学里的例子。

[10] Sudhir K. Gupta, 《控制系统基础》,(机械工业出版社,2004)
http://book.douban.com/subject/1189942/

[11] Alan V. Oppenheim, Alan S. Willsky, S. Hamid, 《信号与系统》(第二版)
http://book.douban.com/subject/3759690/

[12] James Ward Brown, Ruel V. Churchill, 《复变函数及应用》(第7版),(机械工业出版社, 2005)
http://book.douban.com/subject/1231386/

[13] RC电路
http://en.wikipedia.org/wiki/RC_circuit


(原文件名:fig-01_facephone-dtmf.png)


(原文件名:fig-02_rc-plot.png)


(原文件名:fig-03_rc-circuit.png)


(原文件名:fig-04_watermelon-waveform.png)


(原文件名:fig-05_watermelon-spectrum.png)


(原文件名:fig-06_dtmf-5-spectrum.png)

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

发表于 2011-12-9 11:43:23 | 显示全部楼层
跟着学习。。。

出0入0汤圆

发表于 2011-12-9 12:05:21 | 显示全部楼层
跟在花生哥后面mark一下

出0入0汤圆

发表于 2011-12-9 12:19:38 | 显示全部楼层
楼主这是论文。 不错的论文了。

出0入0汤圆

发表于 2011-12-9 12:21:36 | 显示全部楼层
跟着~~

出0入0汤圆

发表于 2011-12-9 12:22:04 | 显示全部楼层
超级牛人,顶!话说我这个期末就考信号与系统,傅里叶变换,拉普拉斯变换,Z变换........跟楼主学习怎么把这些和实际联系在一块!

出0入0汤圆

发表于 2011-12-9 12:29:41 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-12-9 12:31:21 | 显示全部楼层
坐下学习…z变化计算很麻烦…

出0入0汤圆

发表于 2011-12-9 12:40:25 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-12-9 12:52:24 | 显示全部楼层
0ar2,
mark.

出0入0汤圆

发表于 2011-12-9 13:40:18 | 显示全部楼层
OrZ
[学习笔记] 滤波器,电话拨号,西瓜和频谱分析
MARK

出0入0汤圆

发表于 2011-12-9 15:16:01 | 显示全部楼层
谢谢LZ
受教。

出0入0汤圆

发表于 2011-12-9 15:19:01 | 显示全部楼层
mark

出0入4汤圆

 楼主| 发表于 2011-12-9 15:33:41 | 显示全部楼层
回复【5楼】binaimei2007  兵仔
超级牛人,顶!话说我这个期末就考信号与系统,傅里叶变换,拉普拉斯变换,z变换........跟楼主学习怎么把这些和实际联系在一块!
-----------------------------------------------------------------------

这些知识挺有趣的,我是先实践之后觉得不懂再学习理论。

出0入0汤圆

发表于 2011-12-9 15:43:46 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-12-9 15:50:20 | 显示全部楼层
mark!!!!!

出0入0汤圆

发表于 2011-12-9 18:05:23 | 显示全部楼层
好文!mark!!!

出0入0汤圆

发表于 2011-12-9 18:25:01 | 显示全部楼层
好东西!

出0入0汤圆

发表于 2011-12-9 18:26:23 | 显示全部楼层
好好学习!

出0入0汤圆

发表于 2011-12-9 18:29:12 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-12-9 19:44:16 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-12-9 21:19:48 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-12-13 22:49:20 | 显示全部楼层
罕见的精品,LZ理论知识和实践能力是一流的~,感谢LZ分享这么好的一片文章。。。
—————————————————————————————————————
Mark~

出0入0汤圆

发表于 2011-12-14 00:06:33 | 显示全部楼层
好贴啊,谢谢分享

出0入0汤圆

发表于 2011-12-14 08:38:28 | 显示全部楼层
mark学习

出0入42汤圆

发表于 2011-12-14 09:16:37 | 显示全部楼层
這麼高質量的東西少見那,文筆也還可以。

出0入4汤圆

发表于 2011-12-14 10:10:39 | 显示全部楼层
回复【楼主位】atommann  
最近阅读《发明者电子设计宝典》[1],了解到一些滤波器方面的知识(玩业余无线电必定要涉及到这个东西),滤波器主要分下面这几种:
* 低通(low-pass),允许低于某个频率(称为截止频率,通常记作 f_cutoff)的信号通过,高于这个频率的信号将被衰减
* 高通(high-pas......
-----------------------------------------------------------------------

《发明者电子设计宝典》,我也买了纸版的,是我当时的入门好书之一。

出0入0汤圆

发表于 2011-12-15 23:02:11 | 显示全部楼层
马瑞卡

出0入0汤圆

发表于 2011-12-15 23:46:13 | 显示全部楼层
MARK

出0入0汤圆

发表于 2011-12-16 00:04:22 | 显示全部楼层
精品好书

出0入0汤圆

发表于 2011-12-16 00:04:38 | 显示全部楼层
精品

出0入0汤圆

发表于 2011-12-16 00:05:24 | 显示全部楼层
擦,我下载的 发明者宝典 躺在硬盘里很长时间了,看来有必要拿出晒晒。

出0入0汤圆

发表于 2011-12-16 15:53:58 | 显示全部楼层
必须顶

出0入0汤圆

发表于 2011-12-16 17:22:41 | 显示全部楼层
好帖,这是难得的好帖。

出0入0汤圆

发表于 2011-12-16 17:32:57 | 显示全部楼层
mark 滤波

出0入0汤圆

发表于 2011-12-16 17:49:53 | 显示全部楼层
mark!

出0入8汤圆

发表于 2011-12-16 18:51:19 | 显示全部楼层
貌似不错~记号...

出0入0汤圆

发表于 2011-12-16 19:21:45 | 显示全部楼层
哎呀我日,这个得必须马克,佩服!

出0入0汤圆

发表于 2011-12-16 19:49:08 | 显示全部楼层
说的挺辛苦, 顶

出0入24汤圆

发表于 2011-12-16 20:27:27 | 显示全部楼层
Mark!

出0入0汤圆

发表于 2011-12-16 20:35:24 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-12-16 20:46:24 | 显示全部楼层
好贴,难得的学以致用

出675入8汤圆

发表于 2011-12-26 22:29:30 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-12-26 23:58:31 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-12-27 08:40:46 | 显示全部楼层
跟着学习。。。

出0入0汤圆

发表于 2011-12-27 10:06:25 | 显示全部楼层
美文,学习了。

出0入0汤圆

发表于 2011-12-27 10:46:19 | 显示全部楼层
西瓜

出0入0汤圆

发表于 2012-5-20 17:23:41 | 显示全部楼层
不错!很棒的帖子!!!

出0入0汤圆

发表于 2016-3-4 19:26:34 来自手机 | 显示全部楼层
传递函数,好帖子!

出0入0汤圆

发表于 2016-3-4 20:05:52 来自手机 | 显示全部楼层
数学功底不错

出0入0汤圆

发表于 2016-3-4 22:33:27 | 显示全部楼层
仔细看了,分析的不错,这么多公式,不容易

出0入0汤圆

发表于 2016-3-5 21:28:48 | 显示全部楼层
厉害。。。。。。。。。

出0入0汤圆

发表于 2018-6-15 13:21:56 | 显示全部楼层
不错!  今天拜读了一下

出0入0汤圆

发表于 2018-6-15 13:29:04 | 显示全部楼层
数学学的很好啊,厉害...

出0入0汤圆

发表于 2018-6-15 13:34:28 | 显示全部楼层
收藏一个,感觉不错
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-3-29 17:37

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表