Chinaunix首页 | 论坛 | 博客
  • 博客访问: 211951
  • 博文数量: 87
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 798
  • 用 户 组: 普通用户
  • 注册时间: 2015-01-14 14:54
文章分类

全部博文(87)

文章存档

2015年(87)

我的朋友

分类: 信息化

2015-07-30 10:11:21


奈奎斯特采样定理

      fs >= 2fH

根据奈奎斯特采样定理,需要数字化的模拟信号的带宽必须被限制在采样频率fs的一半以下,否则将会产生混叠效应,信号将不能被完全恢复。这就从理论上要求一个理想的截频为fs/2的低通滤波器。实际中采用的通频带为0~fs/2的低通滤波器不可能既完全滤掉高于的fs/2的分量又不衰减接近于fs/2的有用分量。因此实际的采样结果也必然与理论上的有差别。如果采用高于fs的采样频率,如图1中为2fs,则可以很容易用模拟滤波器先滤掉高于1.5fs的分量,同时完整保留有用分量。采样后混入的界于0.5fs~1.5fs之间的分量可以很容易用数字滤波器来滤掉。这样输入模拟滤波器的设计将比抗混叠滤波器简单的多。

 

降采样

2048HZ对信号来说是过采样了,事实上只要信号不混叠就好(满足奈奎斯特采样定理),所以可以对过采样的信号作抽取,即是所谓的“降采样”。

 

“采样频率从2048HZ到32HZ 每隔64个样本,“??意思呢?
降采样的频率怎么是变化的啊?我对降采样的原理不太熟悉。

把过采样的数据,再间隔一定数再采一次的意思。过采样了,频谱分辨率比较低。

 

那为什么还过采样啊,别使用2048HZ ,直接采样频率取为300HZ,不就免了降采样了吗?

在现场中采样往往受具体条件的限止,或者不存在300HZ的采样率,或调试非常困难等等。若R>>1,则Rfs/2就远大于音频信号的最高频率fm,这使得量化噪声大部分分布在音频频带之外的高频区域,而分布在音频频带之内的量化噪声就会相应的减少,于是,通过低通滤波器滤掉fm以上的噪声分量,就可以提高系统的信噪比。

 

原采样频率为2048HZ,这时信号允许的最高频率是1024HZ(满足尼奎斯特采样定理),但当通过滤波器后使信号的最高频率为16HZ,这时采样频率就可以用到32HZ(满足尼奎斯特采样定理,最低为32HZ,比32HZ高都可以)。从2048HZ降到32HZ,便是每隔64个样本取1个样本。这种把采样频率降下来,就是降采样(downsample)。这样做的好处是减少数据样点,也就是减少运算时间,在实时处理时常采用的方法。

 

过采样:

过采样定义:就是用高于nyquist频率进行采样,好处是可以提高信噪比,缺点是处理数据量大 

过采样概述: 过采样是使用远大于奈奎斯特采样频率的频率对输入信号进行采样。设数字音频系统原来的采样频率为fs,通常为44.1kHz或48kHz。若将采样频率提高到R×fs,R称为过采样比率,并且R>1。在这种采样的数字信号中,由于量化比特数没有改变,故总的量化噪声功率也不变,但这时量化噪声的频谱分布发生了变化,即将原来均匀分布在0 ~ fs/2频带内的量化噪声分散到了0 ~ Rfs/2的频带上。下图表示的是过采样时的量化噪声功率谱。

若R>>1,则Rfs/2就远大于音频信号的最高频率fm,这使得量化噪声大部分分布在音频频带之外的高频区域,而分布在音频频带之内的量化噪声就会相应的减少,于是,通过低通滤波器滤掉fm以上的噪声分量,就可以提高系统的信噪比。这时,过采样系统的最大量化信噪比为公式如下图.

式中fm为音频信号的最高频率,Rfs为过采样频率,n为量化比特数。从上式可以看出,在过采样时,采样频率每提高一倍,则系统的信噪比提高3dB,换言之,相当于量化比特数增加了0.5个比特。由此可看出提高过采样比率可提高A/D转换器的精度。

但是单靠这种过采样方式来提高信噪比的效果并不明显,所以,还得结合噪声整形技术。

过采样技术原理介绍

假定环境条件: 10位ADC最小分辨电压1LSB 为 1mv

假定没有噪声引入的时候, ADC采样上的电压真实反映输入的电压, 那么小于1mv的话,如ADC在0.5mv是数据输出为0

我们现在用4倍过采样来, 提高1位的分辨率,

当我们引入较大幅值的白噪声: 1.2mv振幅(大于1LSB), 并在白噪声的不断变化的情况下, 多次采样, 那么我们得到的结果有

真实被测电压  白噪声叠加电压  叠加后电压  ADC输出  ADC代表电压

0.5mv        1.2mv       1.7mv     1      1mv

0.5mv        0.6mv       1.1mv     1      1mv

0.5mv        0.6mv       0.1mv     0      0mv

0.5mv        1.2mv       0.7mv     0      0mv

ADC的和为2mv, 那么平均值为: 2mv/4=0.5mv!!! 0.5mv就是我们想要得到的

这里请留意, 我们平时做滤波的时候, 也是一样的操作喔! 那么为什么没有提高分辨率?是因为, 我们做滑动滤波的时候, 把有用的小数部分扔掉了, 因为超出了字长啊, 那么0.5取整后就是 0 了, 结果和没有过采样的时候一样是 0 ,而过采样的方法时候是需要保留小数部分的, 所以用4个样本的值, 但最后除的不是4, 而是2! 那么就保留了部分小数部分, 而提高了分辨率!

从另一角度来说, 变相把ADC的结果放大了2倍(0.5*2=1mv), 并用更长的字长表示新的ADC值,这时候, 1LSB(ADC输出的位0)就不是表示1mv了, 而是表示0.5mv, 而(ADC输出的位1)才是原来表示1mv的数据位,

下面来看看一下数据的变化:

ADC值相应位 9 8 7 6 5 4 3 2 1 0

0.5mv测量值 0 0 0 0 0 0 0 0 0 0 0mv(10位ADC的分辨率1mv,小于1mv无法分辨,所以输出值为0)

叠加白噪声的4次过采样值的和 0 0 0 0 0 0 0 0 1 0 2mv

滑动平均滤波2mv/4次 0 0 0 0 0 0 0 0 0 0 0mv(平均数, 对改善分辨率没作用)

过采样插值2mv/2 0 0 0 0 0 0 0 0 0 0 1 2mv/2=0.5mv, 将这个数作为11位ADC值, 那么代表就是0.5mv 这里我们提高了1位的ADC分辨率 。

这样说应该就很简单明白了吧, 其实多出来的位上的数据, 是通过统计输入量的分布, 计算出来的,而不是硬件真正分辨率出来的, 引入噪声并大于1LSB, 目的就是要使微小的输入信号叠加到ADC能识别的程度(原ADC最小分辨率).

理论来说, 如果ADC速度够快, 可以无限提高ADC的分辨率, 这是概率和统计的结果

但是ADC的采样速度限制, 过采样令到最后能被采样的信号频率越来越低,就拿stm32的ADC来说, 12ADC, 过采样带来的提高和局限

   分辨率   采样次数   每秒采样次数

   12ADC      1         1M

  13ADC      4         250K

  14ADC      16        62.5K

  15ADC      64        15.6K

  16ADC 256 3.9K

  17DC 1024 976

  18ADC 4096 244

  19ADC 16384 61

  20ADC 65536 15

要记住, 这些采样次数, 还未包括我们要做的滑动滤波。

直观上讲:采样后的信号是原来的信号频域延拓叠加,限带信号通常是离中心频率越远,幅度越低,因此采样率越高混叠的情况越小

过采样目的就是要改变的噪声的分布,减少噪声在有用信号的带宽内,然后在通过低通滤波器滤除掉噪声,达到较好的信噪比,一般用在sigma-deltaDAC 或者ADC里面。 
过采样作用:能将噪声扩展到更高的频率,通过低通滤波器后,可使得基带内的SNR提高 
过采样意义:

1.提高时域分辨力从而获得更好的时域波形; 
2.提高滤波器的处理增益,当在频域上滤波时,滤波器的设计变得更容易; 
3.提高信噪比,匹配滤波时更好地收集波形能量; 
4.抑制镜像,使上变频更容易,降低对后级DA转换的保持时间要求; 
5.需要fractional sampling timing时是必需的. 
过采样应用:D/A转换,但不一定非要过采样,过采样的技术一般用在低速(几十K到数M)高精度(如16bit 18bit .....)的情况。DA过采样可以用线性插值实现。 

相关讨论:OFDM系统IFFT插零的相关讨论
对s/p之后的OFDM符号,在进行IFFT时一般都进行中间插零操作,如有效载波是64个,插零后变成128个。 
这样造成的直观问题是N增大,1/NT减小,对doppler频移的抵抗能力减弱?? 
是否可以这样理解呢? 

补零有几种: 
1、头上的是zero-pad,一种prefix 
2、空闲的子载波补齐2的整数次幂 
3、中间补零从时域上看是过采样 
《OFDM技术原理与应用》一书中,讲到OFDM的采样问题,有如下的解释: 
以T为采样间隔得到的时域采样信号的傅立叶变换是由时域连续信号的傅立叶变化周期重复构成的,其重复周期是1/T。如果对时域信号实施p倍过采样,即采样间隔变为T/p,则其相位的傅立叶变换的重复周期就会变为p/T,而时域连续信号的频谱宽度又保持不变,因此从频域来看,也相当于在连续信号的带宽之外补零,而在IFFT运算中,相当于在频域数据中间插入零。 

这个问题实际上应该倒过来理解. 
首先,假定系统的的带宽为1M,子载波间隔为100k,因此子载波个数为10个,采用10长度IFFT后需要采用一个较好的低通滤波器将1M之外的信号旁瓣过滤,成本较高. 因此在实际系统中通常将子载波数增加到20个,但是将1M之外的子载波信号置零,这样可以使用一个低成本的低通滤波器得到1M带宽的传输信号了.对于MATLAB的IFFT变换而言,将高频段信号置零等效于将序列中间部分补零哦 


1、插0是为了过采样 
2、插0后,每个子载波的带宽将减小(如果不是这样,插0将没有任何意义)。 
“ 首先,假定系统的的带宽为1M,子载波间隔为100k,因此子载波个数为10个,采用10长度IFFT后需要采用一个较好的低通滤波器将1M之外的信号旁 瓣过滤,成本较高. 因此在实际系统中通常将子载波数增加到20个,但是将1M之外的子载波信号置零,这样可以使用一个低成本的低通滤波器得到1M带宽的传输信号了.对于 MATLAB的IFFT变换而言,将高频段信号置零等效于将序列中间部分补零哦!” 

低成本的低通滤波器得到1M带宽的传输信号?较好的低通滤波器将1M之外的信号旁瓣过滤? 
只要需过滤的信号带宽相同,所需要的滤波器的要求就是相同的。 
插0的目的就是把1M的信号压缩,使之带宽小于1M,使得信号收到相邻带宽信号的干扰程度降低,当然这样做得结果就是受多普勒频移影响较大。插零值处理,可以使得ifft后的D/A转换具有更良好的频域特性,这也就是过采样技术带来的好处。 
在仿真中这样处理,也可以对数字信号的估计量更准确地逼近连续信号的估计量,比如信号功率,比如峰均比。

阅读(13586) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~