数字信号处理第三章-FFT
X (k )
3.8.2 用DFT计算有限长序列与无限长序列 的线性卷积
用FFT计算有限长序列与无限长序列的线性卷积 问题: · h(n) 为某滤波器的单位脉冲响应,长度有限
· 输入信号 x(n)很长,h(n) 要补许多零再进行计算, 计算量有很大的浪费
解决方法:
重叠相加法 重叠保留法
重叠相加法: 将x(n)分段,每段长度为L,然后依次计算各段与h(n) 的卷积,再由各段的卷积结果得到y(n)。
3.8
DFT(FFT)应用举例
DFT因为具有快速算法FFT,应用非常广泛,限于篇幅,这里 仅介绍DFT在线性卷积和频谱分析两方面的应用。 本节主要论述:
3.8.1 用DFT(FFT)计算两个有限长序列的线性卷积 3.8.2 用DFT计算有限长序列与无限长序列的线性卷积
返回
3.8.1 用DFT(FFT)计算两个有限长序列的 线性卷积
比较截断前、后的幅度谱的差别: 泄露 定义:原来的离散谱线向两边展宽,这种将谱线展宽的现象称为频谱 泄漏。 约束因素:矩形窗的长度越长,展宽的宽度就越窄。 影响:泄漏会使频谱模糊,谱的分辨率降低。 谱间干扰 出现原因:频谱卷积以后存在着的旁瓣,引起不同频率分量干扰。旁 瓣淹没信号主谱线或者旁瓣误认为另一信号谱线。 影响:降低谱分辨率 泄漏和谱间干扰统称为信号的截断效应。 减轻截断效应的方法---提高谱分析的分辨率及精确性 。 1:增加窗时域的宽度,运算量及存贮量增大 2:其他缓变的窗,比如三角形窗等
例:设x1(n)和x2(n)都是N点的实数序列,试 用一次N点DFT运算来计算它们各自的DFT: DFT [ x1 (n)] X1 (k ) DFT [ x2 (n)] X 2 (k )
解:利用两序列构成一个复序列
w(n) x1 (n) jx2 (n)
则
W (k ) DFT [w(n)] DFT [ x1 (n) jx2 (n)] DFT [ x1 (n)] jDFT [ x2 (n)] X1 (k ) jX 2 (k )
F0 1/ T0 fs / N 提高采样频率不能提高频率分辨率 NT 提高了采样频率,虽然在相同的观察时长那的点数增多了,但与此同时 采样频率也变大了,点数增加几倍采样频率增加几倍,所以不改变观察 时长而仅仅提高采样频率并不能提高DFT谱的频率分辨率。 1
补零并不能提高频率分辨率 补零信号的谱,是通过截短信号的谱进行了推测(插值算法)得来的, 它并不能反映原信号的谱,所以虽然补零信号的谱线间隔变小了,但是 除了从截短信号的谱中取出来的谱线以外,其余的谱线都是无效的。去 掉这些无效的谱线,采样频率不变,有效的谱线数不变,所以其物理频 率分辨率自然没有改变。
公式推导及参数选择
模拟信号进行频谱分析时,有几个重要的参数要选择, 采样频率 Fs 频率分辨率F0 频谱分析范围 采样点N
信号的最高截止频率 能够分辨的两个频率分量最 小的间隔
Fs 2
与对信号的观测时间有关
T 时域采样间隔 f s 时域采样频率 T0 信号记录长度 F0 (频率分辨率)频域采样间隔 N 采样点数 f h 信号最高频率 f s 2 f h f s 1/ T
参数确定
1 (1)由采样定理, f s 2 f h , T 2 fh
(2)由频谱分辨率确定N
fs 1 N , 一般为2的整数次幂 F0 F0T
(3)确定最小记录长度
N 1 T0 =NT = f s F0
x(t ) 0.15sin(2 f1t ) sin(2 f 2t ) 0.1sin(2 f3t ) f1 1Hz, f 2 2 Hz, f3 3Hz; f s 32 Hz x(n) x(nT ) 0.15sin(2 / 32n) sin(2 / 32n) 0.1sin(2 / 32n) 32 64 point DFT F0 = 0.5Hz 64
f s NF0 T0 1/ F0
2 k k NT k fs fk k NT N
T0 NT
T0 f s N T F0
频率响应的混叠失真及参数的选择
时域抽样:f s 2 fh 频域抽样:F0 1/ T0
T0 f s N T F0
信号最高频率与频率分辨率之间的矛盾
由x1 (n) Re[w(n)]得
X1 (k ) DFT [ x1 (n)] DFT {Re[ w(n)]} Wep (k ) 1 [W ((k )) N W * (( N k )) N ]RN (k ) 2
由x2 (n) Im[w(n)]得
1 X 2 (k ) DFT [ x2 (n)] DFT {Im[ w(n)]} Wop (k ) j 1 [W ((k )) N W * (( N k )) N ]RN (k ) 2j
用DFT对模拟信号作频谱分析
信号的频谱分析:计算信号的傅里叶变换
a,b为任意常数 max( Rx , R y ) R z R min( Rx , R y )
a,b为任意常数 max( Rx , R y ) R z R min( Rx , R y )
3)最小记录点数
N fs 1 , 一般为2的整数次幂 F0 F0T
2 f h 2 4 103 N 800 F0 10
取N 2m 210 1024 800
例:有一调幅信号
xa t 1 cos 2 100t cos 2 600t
2)缓慢截短
截断效应 定义:对无限长的模拟信号进行截断而引起的误 差现象称为截断效应。 采样序列 x ( n ) ,对它用长为N的矩形窗进行截断: xN n x n RN n
矩形窗 R cos w0n , w0 4 加矩形窗前、后的幅度谱
用DFT做频谱分析,要求能分辨 xa t 的 所有频率分量,问 (1)抽样频率应为多少赫兹(Hz)? (2)抽样时间间隔应为多少秒(Sec)? (3)抽样点数应为多少点?
解:
xa t 1 cos 2 100t cos 2 600t
cos 2 600t 1 1 cos 2 700t cos 2 500t 2 2
y (n)
i i 0
yi ( n ) 的长度为N=L+M-1。用N点FFT和IFFT计算 yi ( n ) ,再按上式求和, yi (n) h(n) xi (n) 得到。
计算步骤: (1)计算H(k)=DFT[h(n)] ,N=L+M-1,i=0; (2)读入xi ( n ) 并计算 X i (k ) DFT[ xi (n)]N ; (3) Yi (k ) H (k ) X i (k ) ; (4)yi (n) IDFT[Yi (k )]N,n=0, 1, 2, …, N-1; (5) 将各段y (n)(包括重叠部分)相加,y(n)= y (n) i i
| X (k ) |
35
30
25
20
15
10
5
0
0
5
10
15
20
25
30
35
k
| X (k ) |
35
30
25
20
15
10
5
0
0
2
4
6
8
10
12
14
16
Hz
例:有一频谱分析用的FFT处理器,其抽样点数 必须是2的整数幂,假设没有采用任何的数据处理 措施,已给条件为:
1 )频率分辨率 10 Hz 2)信号最高频率 4kHz
试确定以下参量: 1 )最小记录长度T0 3)在一个记录中最少点数N
2)抽样点间的最大时间间隔T(即最小抽样频率)
解: 1)最小记录长度:
1 1 T0 0.1s F0 10
N 1 T0 =NT = f s F0
2)最大抽样间隔 (f s 2 fh
f s 1/ T)
1 1 T 0. ms 125 3 2 f h 2 4 10
(1)抽样频率应为
f s 2 700 1400Hz
(2)抽样时间间隔应为
1 1 T 0.00072Sec 0.72ms f s 1400
(3)因为频率分量分别为500、 、 600 700Hz
得 F0 100Hz
N f s / F0 1400 /100 14
最小记录点数N 14
用DFT(FFT)对周期信号进行谱分析的误差来源
1.频谱混叠 采样频率不满足采样定理 一般模拟信号的频谱函数并不是锐截止的 信号中总含有或多或少的干扰或噪声
f s 2.5 3.0 fh
2 频谱泄漏
对时域截短,使频谱变宽拖尾,称为泄漏
改善方法:
1)增加x(n)长度
3. 栅栏效应 定义:N点DFT(FFT)得到的只是N个采样点上的频谱值,两点之 间的频谱值是不知道的,就好像被栅栏遮住一样 应对策略: 增多DFT(FFT)的变换点数
在信号尾部加零的方法加大DFT(FFT)的变换点数。谱线更密。
频率分辨率
F0 1/ T0
提高频率分辨率方法: 增加信号实际记录长度
T0 f s N T F0
要增加信号最高频率f h 则f s 当N 给定 F0必 ,即分辨率
1 要提高频率分辨率,即F0 则T0 NT F0 当N 给定 则T f s 要不产生混叠,f h必
信号最高频率f h的确定
t0 Th / 2
1 1 fh Th 2t0
假设h(n)和x(n)是因果序列,对x(n)进行分段,每段长为L, 则x(n)可以表示为如下形式: