为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

时域插零的影响

2013-11-11 4页 doc 34KB 63阅读

用户头像

is_662870

暂无简介

举报
时域插零的影响1. 频域插值的实现 -- 序列补零后的FFT DFT末尾补零效果 原来x(n)的DFT为X(k),在末尾补零rN个后成为y(n),则 Y(k) = X(k/r),在中间相当于插值,在频域插值。 然后,末尾补零x(n)的Z变换和DTFT是不会改变的仍为X(z), X(exp(jw)) % padding zero in the end, check effect to Xk clc; clear; f1=2.67; f2=3.75; f3=6.75; fs=20; N = 16; n = 0:N-1; ...
时域插零的影响
1. 频域插值的实现 -- 序列补零后的FFT DFT末尾补零效果 原来x(n)的DFT为X(k),在末尾补零rN个后成为y(n),则 Y(k) = X(k/r),在中间相当于插值,在频域插值。 然后,末尾补零x(n)的Z变换和DTFT是不会改变的仍为X(z), X(exp(jw)) % padding zero in the end, check effect to Xk clc; clear; f1=2.67; f2=3.75; f3=6.75; fs=20; N = 16; n = 0:N-1; x = sin(2*pi*f1*n/fs) + sin(2*pi*f2*n/fs) + sin(2*pi*f3*n/fs); X = fft(x, N); X = abs(X); k = fs/N * (0:N-1); %fs/N是频域分辨率 stem(k, X(1:N), 'o', 'r'); hold on % padding with rN zeros r = 2; x(N+1:r*N) = 0; X = fft(x, r*N); X = abs(X); k = fs/(r*N) * (0:r*N-1); stem(k, X(1:r*N), '*'); hold on % padding with rN zeros r = 4; x(N+1:r*N) = 0; X = fft(x, r*N); X = abs(X); k = fs/(r*N) * (0:r*N-1); stem(k, X(1:r*N), '>', 'y'); 2 时域零插值 -- 序列插值之后变化 % Interpolation 0, DFT effect clc; clear; f1=2.67; f2=3.75; fs=20; N = 16; n = 0:N-1; x = sin(2*pi*f1*n/fs) + sin(2*pi*f2*n/fs); X = fft(x, N); X = abs(X); k = fs/N * (0:N-1); %fs/N是频域分辨率 subplot(2,1,1); stem(k, X(1:N), 'o', 'r'); % 内插0,两个数之间插入1个0 xi = zeros(1, 2*N); % 看到没?MATLAB中,从大到小容易,从小到大,仍然是先构造大的 for i = 1:2:2*N xi(i) = x((i+1)/2); end X = fft(xi, 2*N); X = abs(X); k = fs/(2*N) * (0:2*N-1); %fs/N是频域分辨率 subplot(2,1,2);stem(k, X(1:2*N), 'o', 'r'); title('内插1个0后频谱'); 对采样信号的频谱,为提高计算效率,通常采用FFT算法进行计算,设数据点数为   N = T/dt = T.fs   则计算得到的离散频率点为   Xs(fi) , fi = i.fs/N , i = 0,1,2,…,N/2   这就相当于透过栅栏观赏风景,只能看到频谱的一部分,而其它频率点看不见,因此很可能使一部分有用的频率成分被漏掉,此种现象被称为栅栏效应. 不管是时域采样还是频域采样,都有相应的栅栏效应。只是当时域采样满足采样定理时,栅栏效应不会有什么影响。而频域采样的栅栏效应则影响很大,“挡住”或丢失的频率成分有可能是重要的或具有特征的成分,使信号处理失去意义。 减小栅栏效应可用提高采样间隔也就是频率分辨力的方法来解决。间隔小,频率分辨力高,被“挡住”或丢失的频率成分就会越少。但会增加采样点数,使计算工作量增加。解决此项矛盾可以采用如下方法:在满足采样定理的前提下,采用频率细化技术(ZOOM),亦可用把时域序列变换成频谱序列的方法。 例如:505Hz正弦波信号的频谱分析来说明栅栏效应所造成的频谱计算误差。 设定采样频率fs=5120Hz,软件中默认的FFT计算点数为512,其离散频率点为 fi = i.fs/N = i.5120/512=10×i , i= 0,1,2,…,N/2 位于505Hz 位置的真实谱峰被挡住看不见,看见的只是它们在相邻频率500Hz或510Hz处能量泄漏的值。 若设 fs=2560Hz,则频率间隔df=5Hz,重复上述分析步骤,这时在505位置有谱线,我们就能得到它们的精确值。从时域看,这个条件相当于对信号进行整周期采样,实际中常用此方法来提高周期信号的频谱分析精度。 频谱泄露:截断信号时域上相当于是乘以了rectangular window,于是造成了频谱泄漏的问。 在帖子上看到的解释:http://www.chinavib.com/forum/thread-51126-2-1.html 泄漏的原因来自两方面第一输入频率不是fs/n的整数倍,因为dft只能输出在fs/n的频率点上的功率,所以当输入频率不在fs/n的整数倍时,在dft的输出上就没有与输入频率相对应得点(dft输出是离散的),那么输入频率就会泄漏到所有的输出点上,具体的泄漏分布取决于所采用的窗的连续域复利叶变换,对于没有使用窗的,相当于使用了矩形窗,矩形窗在进行连续傅立叶变换在一般的信号与系统书上都有。而对于非矩形窗,窗本身就会产生一定的泄漏,是通过加大主瓣的宽度来降低旁瓣的幅度,通常主瓣的宽度变成了矩形窗的两倍,例如当我们输入一个fs/n的整数倍的输入频率时,经过非矩形窗,dft输出会在两个fs/n的频点上有功率。 见参考书:lyon的understanding DSP. 旁瓣效应: 补零对频谱的影响: 进行zero padding只是增加了数据的长度,而不是原信号的长度。就好比本来信号是一个周期的余弦信号,如果又给它补了9个周期长度的0,那么信号并不是10个周期的余弦信号,而是一个周期的余弦加一串0,补的0并没有带来新的信息。其实zero padding等价于频域的sinc函数内插,而这个sinc函数的形状(主瓣宽度)是由补0前的信号长度决定的,补0的作用只是细化了这个sinc函数,并没有改变其主瓣宽度。而频率分辨率的含义是两个频率不同的信号在频率上可分,也就要求它们不能落到一个sinc函数的主瓣上。所以,如果待分析的两个信号频率接近,而时域长度又较短,那么在频域上它们就落在一个sinc主瓣内了,补再多的0也是无济于事的。 泄露是由于非整周期采样引起的,因为FFT最精确的是将周期信号映射到一个正交函数空间上(傅立叶变换常用三角函数空间),对周期性信号,只要是整周期采样(采样周期是信号周期的整数倍数描述不对,应该说采样时间长是信号周期的整数倍),是没有谱泄露的,对于非周期信号,无法达到整周期采样,所以总会有泄露,选择合适的窗函数可以控制泄露的严重程度。 混叠是采样频率与信号最高频率的关系引起的,满足采样定理,即采样频率〉=2倍信号最高频率,即可避免混叠,实际信号都受噪声干扰,白噪声是宽带的,所以采样频率即便很高,都不可避免地存在混叠,只是混叠程度小些,满足应用。再者,采样频率不是越高越好,我另外的帖子谈过,采样点数有限的情况下,采样频率与频率分辨率是相互矛盾的。
/
本文档为【时域插零的影响】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索