理解锁相环PLL

目前我见到的所有芯片中都含有PLL模块,而且一直不知道如何利用PLL对晶振进行倍频的,这次利用维基百科好好的学习了下PLL的原理。

1. 时钟与振荡电路

在芯片中,最重要的就是时钟,时钟就像是心脏的脉冲,如果心脏停止了跳动,那人也就死亡了,对于芯片也一样。了解了时钟的重要性,那时钟是怎么来的呢?时钟可以看成周期性的0与1信号变化,而这种周期性的变化可以看成振荡。因此,振荡电路成为了时钟的来源

振荡电路的形成可以分两类:

  1. 石英晶体的压电效应:电导致晶片的机械变形,而晶片两侧施加机械压力又会产生电,形成振荡。它的谐振频率与晶片的切割方式、几何形状、尺寸有关,可以做得精确,因此其振荡电路可以获得很高的频率稳定度。
  2. 电容Capacity的充电放电:能够存储电能,而充放电的电流方向是反的,形成振荡。可通过电压等控制振荡电路的频率。

2. PLL与倍频

由上面可以知道,晶振由于其频率的稳定性,一般作为系统的外部时钟源。但是晶振的频率虽然稳定,但是频率无法做到很高(成本与工艺限制),因此芯片中高频时钟就需要一种叫做压控振荡器(Voltage Controlled Oscillator)的东西生成了(顾名思义,VCO就是根据电压来调整输出频率的不同)。可压控振荡器也有问题,其频率不够稳定,而且变化时很难快速稳定频率。哇偶,看到这种现象是不是很熟悉?嘿嘿,这就是标准开环系统所出现的问题,解决办法就是接入反馈,使开环系统变成闭环系统,并且加入稳定的基准信号,与反馈比较,以便生成正确的控制。

PLL

因此,为了将频率锁定在一个固定的期望值,锁相环PLL出现了!一个锁相环PLL电路通常由以下模块组成:

  • 鉴相鉴频器PFD(Phase Frequency Detector):对输入的基准信号(来自频率稳定的晶振)和反馈回路的信号进行频率的比较,输出一个代表两者差异的信号
  • 低通滤波器LPF(Low-Pass Filter):将PFD中生成的差异信号的高频成分滤除,保留直流部分
  • 压控振荡器VCO(Voltage Controlled Oscillator):根据输入电压,输出对应频率的周期信号。利用变容二极管(偏置电压的变化会改变耗尽层的厚度,从而影响电容大小)与电感构成的LC谐振电路构成,提高变容二极管的逆向偏压,二极管内耗尽层变大,电容变小,LC电路的谐振频率提高,反之,降低逆向偏压时,二极管内电容变大,频率降低
  • 反馈回路FL(Feedback Loop):通常由一个分频器实现。将VCO的输出降低到与基准信号相同级别的频率才能在PFD中比较

PLL工作的基本原理就是将压控振荡器的输出经过分频后与基准信号输入PFD,PFD通过比较这两个信号的频率差,输出一个代表两者差异的信号,再经过低通滤波器转变成一个直流脉冲电压去控制VCO使它的频率改变。这样经过一个很短的时间,VCO的输出就会稳定下来。所以:

PLL并不是直接对晶振进行倍频,而是将频率稳定的晶振作为基准信号,与PLL内部振荡电路生成的信号分频后进行比较,使PLL输出的信号频率稳定

最后,根据原理,理解一下锁相环(Phase Locked Loop)的名称

  • 为了对基准信号与反馈信号进行频率比较,二者的相位必须相同且锁住,任何时间都不能改变,这样才能方便的比较频率,所以叫锁相(Phase Locked)
  • 为了快速稳定输出系统,整个系统加入反馈成为闭环,所以叫环(Loop)

参考文档

理解傅立叶变换

什么是傅立叶变换

关于傅立叶变换,可以用果汁牛奶打一个比方:

  • 什么是傅立叶变换:对于一杯果汁牛奶,能分析出其食谱(recipe)
  • 如何进行傅立叶变换:运行果汁牛奶的过滤器(filters),将各类成分(ingredient)分离(extract)出来
  • 为什么要进行傅立叶变换:食谱要比果汁牛奶要容易分析、比较、修改得多
  • 如何再变换回去:根据食谱将成分再混合到一起,就又得到果汁牛奶了

Smoothie to recipe

总之,对果汁牛奶进行傅立叶变换后,我们的视角(perspective)从消费者变成了生产者,从“What did i see”变成了“How was it made”,Recipe比Object本身更容易进行分析、比较、修改。

所谓“变换”,就是换个领域看问题(A Change Of Perspective),将某种情况下不易分析处理的领域换成易分析处理的领域

好,让我们看看真正的傅立叶变换,维基百科上的一张GIF图清晰明了,可以看出:

fft

  1. 任何连续周期信号都可以由一组适当的正弦曲线组合而成(这些正弦曲线通过叠加逼近,直至误差可以忽略)
  2. 连续周期信号的表象是时域(time domain)波形,从时域上,我们很难进行分析、处理,因此我们需要从另外一个维度去分析信号,而傅立叶变换就是将信号从时域(Observations In The Time Domain)转换到频域(Ingredients In The Frequency Domain)。为什么要到频域呢?频率只是信号的一个特征,但是它可以用来识别信号,在频域可以得到信号的成分(ingredients),就像果汁牛奶一样,Recipe比Object本身更容易分析、比较、修改

分离信号与傅立叶变换的应用

从上面可以看出,傅立叶变换说到底就是分离信号,可为什么要分离信号呢?其实信号只是信息的载体,信息无处不在且多种多样,因此信号的类型也多种多样,但是在传输的方式却比较少(每一种的容量非常大),例如声音、光线、电磁等等。由于同一种传输方式的容量非常大,将信道分成不同区域同时使用,信道的利用率大大的提高了。

但是问题来了:虽然对信道进行划分,但是信号在相同的信道中传输时,大自然不管你如何划分,都是按同样的方式传输,不同类型的信号被合在一起进行传输,就像上面的果汁牛奶,不管你把各类成分划分得如何清晰,果汁机出来就是混合过的果汁。这时,接受端就需要对信号进行分离,识别出不同的信号,进行分析处理。分离信号是我们最常见的事情,我们无时无刻不在进行,以至于根本没有注意到。例如,看到不同的颜色,尝到不同的味道,听到不同的声音(对于振动产生的声音,在传播时不管高低音,是缠在一起在介质中传输的,但是人耳可以分辨出)。

傅立叶变换只是分离信号方法中的一种(靠频率分离),由此可以想到傅立叶变换的一些应用有:

  • 滤波:将不需要的频率对应的信号过滤掉,只留下需要的信号
  • 调频:基于滤波,只专注于特定频率的信号进行接受
  • 去噪:通过分离,把噪声对应频率的信号处理掉,增强核心的信号
  • 压缩:将那些不太重要的部分忽略掉,保留主要部分(有损压缩)。例如,JPEG对.bmp压缩,MP3对.wav压缩都是这种方式

参考资料

我喜欢那种深入浅出,生动有趣的资料,而不是死板的公式与定理,所以下面的资料都非常有趣,看完能很快对傅立叶变换有初步的理解: