运算注意事项
在 DSP 运算中,经常需要把输入时域信号在频域进行处理之后,再还原为时域
信号,这样就需要进行 FFT 和 IFFT 运算:
x(n) -> FFT -> X(f) -> 频域处理-> Y(f) -> IFFT -> y(n)
而一般的 DSP 芯片只支持整数运算,也就是说只能进行定点小数计算。
N 点 FFT 计算出 0… N-1,N 个复数:0,A,N/2,A*,A 为(N/2-1)个复数,
A*为 A 的共轭复数。
FFT 的公式为:
N
X(k) = sum x(n)*exp(-j*2*pi*(k-1)*(n-1)/N)、1 < = k < = N.
n = 1
IFFT 的公式为:
N
x(n) = (1/N) sum X(k)*exp( j*2*pi*(k-1)*(n-1)/N)、1 < = n <
= N.
k = 1
假设我们对 ADC 转换器转换的数字信号进行 FFT 运算,若输入数据为 16bit
的短整型数,我们可以把它看作 Q15 的从-1 到 1 之间的小数。根据 FFT 的公
式我们可以知道,FFT 变换之后的结果将超出这个范围。
例如在 matlab 中输入 ,t(sin([1:8]*0.5)),可以看到结果:
评论0
最新资源