设想一下一个正弦波经过模数转换器后变为离散的正弦信号以进行进一步处理。
首先要考虑的问题是以什么样的频率来采样或测量模拟信号,以准确的将信号在数字域中表示出来。采样频率是指以在数字域中表示某一事件为目的,一秒钟内对此模拟事件(比如声音)进行采样的次数。假如我们每隔T秒对信号进行一次采样,可以表示为:
采样周期(T)=1/采样频率
采样频率以赫兹(Hz)为单位。如果采样频率为8kHz,则相当于每秒采样8000次。采样周期为:
T=1/8000Hz=125us=0.000125s
这告诉我们,对于一个在此频率被采样的信号,在下一次采样之前有0.000125秒的时间来执行所有必须的处理(记住,采样是连续进行的,故对其处理不能落后)。这是实时系统的一个共同性质,随后对它进行讨论。
既然知道了这个时间限制,就能决定处理器宇采样频率保持一致所需的速度。处理器的速度不是指处理器的时钟频率有多快,而是指处理器执行指令有多快。一旦知道了处理器的指令周期时间,就能决定由多少个指令可用来处理采样:
采样周期(T)/指令周期时间=每次采样的指令数目
对于一个每个周期可以执行一条指令的100MHz的处理器,它的指令周期时间是
1/100MHz=10ns
125us/10ns=12500指令/采样
125us/5ns=25000指令/采样(对应200MHz处理器)
125us/2ns=62500指令/采样(对应500MHz处理器)
由上面的例子,处理器指令周期执行越快,每次采样就能进行更多的处理。如果它只是这样简单,就可以尽可能选择最高速的处理器并获得大量的处理空间。可惜它并非如此简单,许多其他的限制因素包括成本、精确度和功耗等也必需考虑在内。嵌入式系统很多诸如此类的限制,比如体积、重量(对便携设备很重要)。另外,我们如何知道应该用多快的采样频率把输入的模拟信号准确的转换到数字域中?如果采样频率不够高,获得的信息将不足以表示真实的信号。如果采样过多,我们可能“过度设计”了系统并过度限制了自己。