資源簡介
分數(shù)階Fourier變換是信號在時頻平面內(nèi)坐標軸繞原點逆時針旋轉(zhuǎn)任意角度后構(gòu)成的分數(shù)階Fourier域上的表示方法,是一種廣義的Fourier變換。

代碼片段和文件信息
function?Faf?=?frft(f?a)
%?The?fast?Fractional?Fourier?Transform
%?input:?f?=?samples?of?the?signal
%????????a?=?fractional?power
%?output:?Faf?=?fast?Fractional?Fourier?transform
error(nargchk(2?2?nargin));
f?=?f(:);
N?=?length(f);
shft?=?rem((0:N-1)+fix(N/2)N)+1;%rem()取余數(shù);fix()取整數(shù)部分;總體是右邊的一半數(shù)移到左邊;
sN?=?sqrt(N);
a?=?mod(a4);
%?do?special?cases
if?(a==0)?Faf?=?f;?return;?end;
if?(a==2)?Faf?=?flipud(f);?return;?end;%flipud?turn?oppsite
if?(a==1)?Faf(shft1)?=?fft(f(shft))/sN;?return;?end?
if?(a==3)?Faf(shft1)?=?ifft(f(shft))*sN;?return;?end
%?reduce?to?interval?0.5?if?(a>2.0)?a?=?a-2;?f?=?flipud(f);?end
if?(a>1.5)?a?=?a-1;?f(shft1)?=?fft(f(shft))/sN;?end
if?(a<0.5)?a?=?a+1;?f(shft1)?=?ifft(f(shft))*sN;?end
%?the?general?case?for?0.5?alpha?=?a*pi/2;
tana2?=?tan(alpha/2);
sina?=?sin(alpha);
f?=?[zeros(N-11)?;?interp(f)?;?zeros(N-11)];%increase?sampling?rate
%?chirp?premultiplication
chrp?=?exp(-i*pi/N*tana2/4*(-2*N+2:2*N-2)‘.^2);
f?=?chrp.*f;
%?chirp?convolution
c?=?pi/N/sina/4;
Faf?=?fconv(exp(i*c*(-(4*N-4):4*N-4)‘.^2)f);
Faf?=?Faf(4*N-3:8*N-7)*sqrt(c/pi);
%?chirp?post?multiplication
Faf?=?chrp.*Faf;
%?normalizing?constant
Faf?=?exp(-i*(1-a)*pi/4)*Faf(N:2:end-N+1);
function?xint=interp(x)
%?sinc?interpolation
N?=?length(x);
y?=?zeros(2*N-11);
y(1:2:2*N-1)?=?x;
xint?=?fconv(y(1:2*N-1)?sinc([-(2*N-3):(2*N-3)]‘/2));
xint?=?xint(2*N-2:end-2*N+3);
function?z?=?fconv(xy)
%?convolution?by?fft
N?=?length([x(:);y(:)])-1;
P?=?2^nextpow2(N);
z?=?ifft(?fft(xP)?.*?fft(yP));
z?=?z(1:N);?
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????1620??2010-04-19?16:40??frft.m
?????文件?????????192??2010-04-19?16:21??interp.m
- 上一篇:I2C代碼 Verilog
- 下一篇:微機原理課程設(shè)計——電子時鐘
評論
共有 條評論