IDFT的运算怎么用FFT实现,在软件中怎样进行设置?

IDFT的运算怎么用FFT实现,在软件中怎样进行设置?,第1张

IDFT就是Inverse Discrete Fourier Transform 离散傅里叶逆变换。

FFT就是Fast Fourier Transform 快速傅里叶变换。

两者的应用都是将时域中难以处理的信号转换成易于复处理的频域信号,分析完成后进行傅里叶反变换即得到原始的时域信号。

两者的异同是:我们知道在数学上用级数来无限逼进某个函数,以便简化计算过程而又不致使误差过大,这样工程上才能应用,否则一些数学模型是无法实现快速求解的。

IDFT:对于有限长的序列我们可以使用离散傅立叶变换,IDFT是对制序列傅立叶变换的等距采样。zhidao

FFT:并不是与IDFT不相同的另一种变换(即原理是一样的),而是为了减少IDFT运算次数的一种快速算法。它是对IDFT变换式进行一次次的分解,使其成为若干小点数IDFT的组合,从而减小运算量。常用的FFT是以2为基数,它的运算效率高,程序比较简单,使用也十分地方便。

下面的代码是用来按照频率取样法设计FIR高通数字滤波器的,你可以参考一下

close all

clear all

clc

N1=23

wc=pi/3

Hk=[zeros(1,5) ones(1,N1) zeros(1,5)]

Y=0.2501

Hk(5)=Y

Hk(5+N1+1)=Y

N=length(Hk)

wk=0:2*pi/N:2*pi-2*pi/N

thetak=-pi*(N-1)*(0:N-1)/N%相位采样向量θ(k)=-(N-1)*pi*k/N, 0≤k≤N-1

Hdk=Hk.*exp(j*thetak)%构造频率采样向量Hd(k)

hn=real(ifft(Hdk))%hn=IDFT[H(k)],real只取实部,忽略计算误差引起的虚部

figure

plot(wk/pi*N/2,Hk)

hold on

scatter(wk/pi*N/2,Hk,'*')

grid

[H,w]=freqz(hn,1)

figure

AH=abs(H)

maxAH=max(AH)

subplot(211)

plot(w/pi,20*log10(abs(H)/maxAH))

axis([0 1 -80 5])

grid

subplot(212)

plot(w/pi,abs(H)/maxAH)

axis([0 1 -0.1 1.1])

grid


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11410111.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存