1樓:愛告狀
基於matlab的時間抽取基2fft演算法。
function y=myditfft(x)
本程式對輸入序列實現dit-fft基2演算法,點數取大於等於長度的2的冪次。
leo's fft program(改編網上的乙個程式)
m=log2(2^nextpow2(length(x)))求的x長度對應的2的最低冪次m
n=2^m;
if length(x)x=[x,zeros(1,n-length(x))]若長度不是2的冪,補0到2的整數冪。endx;
對輸入序列進行倒序。
如果輸入序列的自然順序號i用二進位數(例如n2n1n0)表示。
則其倒位序j對應的二進位數就是(n0n1n2),這樣,在原來自然順序時應該放x(i)的。
單元,現在倒位序後應放x(j)。
以下程式相當於以下程式:
nxd=bin2dec(fliplr(dec2bin([1:n]-1,m)))1; %求1:2^m數列的倒序。
y=x(nxd); 將倒序排列作為初始值。
nv2=n/2;
nm1=n-1;
i=0;j=0;
while iif it=x(j+1);
x(j+1)=x(i+1);
x(i+1)=t;
endk=nv2;
while k<=j
j=j-k;
k=k/2;
endj=j+k;
i=i+1;
end x;
以下程式解釋:
第一級從x(0)開始,跨接一階蝶形,再取每條對稱。
第二級從x(0)開始,跨接兩階蝶形,再取每條對稱。
第m級從x(0)開始,跨接2^(m-1)階蝶形,再取每條對稱。
for mm=1:m %將dft做m次基2分解,從左到右,對每次分解作dft運算。
nmr=2^mm;
u=1; %旋轉因子u初始化。
wn=exp(-j*2*pi/nmr); 本次分解的基本dft因子wn=exp(-i*2*pi/nmr)
for n=1:nmr/2 %本次跨越間隔內的各次碟形運算。
for k=n:nmr:n %本次碟形運算的跨越間隔為nmr=2^mm
kp=k+nmr/2; %確定碟形運算的對應單元下標(對稱性)
t=x(kp)*u; %碟形運算的乘積項。
x(kp)=x(k)-t; %碟形運算的加法項。
x(k)=x(k)+t;
endu=u*wn; %修改旋轉因子,多乘乙個基本dft因子wn
endend
y=x; %輸出。
2樓:網友
一種演算法:基2快速離散傅立葉變換演算法。
sp2是什麼意思,SP2是什麼意思?
windows xp的最新補丁包service pack 2釋出之後,雖然多次傳出跟amd的a64處理器又或是intel的prescott處理器有衝突的訊息,而且也一如既往的被大家發現仍然有不少問題。但是對於一般使用者來說,windows xp service pack 2的不少功能都是有相當的針對...
a2b2abab什麼意思
平方差公式是數復學公式制的一種,它屬於乘法公式 因式分解及恆等式,被普遍使用。平方差指一個平方數或正方形,減去另一個平方數或正方形得來的乘法公式 a2 b2 a b a b 平方差公式常用於解決因式分解的數學問題,是常用公式之一。公式推出過程 a2 b2 a2 ab ab b2 a a b b a ...
2n1是什麼意思,2n1是什麼意思
那是兩個歎號,表示連續奇數的乘積1 3 5 2n 1 雙階乘嘛,就是 2n 1 的再階乘。題目中肯定還有其他的因子可以和它對消的吧?2n 1 表示什麼意思?是印錯了還是?2n 1 2n 1 2n 3 2n 5 5 3 1 雙階乘m 表示 當m是自然數時,表示不超過m且與m有相同奇偶性的所有正整數的乘...