DSP

Sample rate 理解

2019-07-13 16:58发布

在Gnuradio中,我们可以看到很多模块中都有Sample rate 这个概念 然后看到一个说明 
Any processing block's 'Sample Rate' parameter is used for DSP calculation, not for controlling the rate at which samples are produced. This is distinct from a hardware
(or Throttle) block where it is  used to control sample flow.  任何处理模块的采样率参数只是用了为了DSP计算的,并不能控制样本的产生频率。 这与硬件或者阀门模块不同。   举个例子: 为了得到一个指定频率的正余弦信号,我们还要知道采样率。因为为了得到一个数学表达式,我们必须要计算每一个时间点的样本的幅度值。 而真实的样本频率值可以是任意的。很多时候你会再你接下来的流图中使用相同的数值,这样,所有的东西都可以保持一致。运行在相同的采样率之下。   除了在DSP的计算中,采样频率同样也指样本通过这个流图的速率。 如果没有速率控制(物理时钟或者阀门机制),样本将会尽快的通过这个流图。(速率由CPU能力决定) 如果你是想在存储数据上执行一些固定的DSP,这样做是很好的。(例如,读取一个文件,重新采样并回写) 。   只有一些代表着现实中物理硬件的模块(usrp,sound card)或者阀门模块(Throttle) 可以通过采样频率(sample rate)来设置物理时钟,因此可以用来控制流图中的样本频率。   1.Throttle 采用host-based timing 来控制产生的样本的频率。 2.hardware sink 以一个固定的频率接收样本 3.hardware source以一个固定的频率产生样本 根据节流作用  Throttle block 和 hardware sink block 将会对上游的模块产生反作用,将会限制起上游模块的频率。 一般来说,在一个流图中只需要有一个block 来控制样本流。 如果有多个、不同步的信号源时,你要特别小心,因为他们的产生和消耗频率不同,最终可能会失去同步并且造成溢出或欠载。 为了避免这种情况的产生,我们需要 改变重采样频率来调整时钟偏移。 allow non-blocking I/O, and/or tweak resampling rates to account for the clock offsets 好文要顶 关注我 收藏该文