找回密码
 注册
关于网站域名变更的通知
查看: 344|回复: 1
打印 上一主题 下一主题

FRFT程序运行时说Not enough input arguments. 是怎么回事呢

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-8-14 17:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x

function Faf = fRFt(f, a)! t0 K% ~" X" \1 }: t
% The fast Fractional Fourier Transform
3 ?! A$ [6 _. W8 w1 e) a% I1 d% input: f = samples of the signal2 i( _  `7 P% M! T
% a = fractional power2 S' X. s4 j+ V% m" z# I7 J
% output: Faf = fast Fractional Fourier transform

error(nargchk(2, 2, nargin));

f = f(;
  }2 {2 f2 k1 l6 y  d. jN = length(f);" p4 t! \' M; X9 v. q5 A* Z
shft = rem((0:N-1)+fix(N/2),N)+1;- O3 k7 D9 {, y8 d, H) k" L
sN = sqrt(N);/ k  X8 c  O3 ^* O! ^
a = mod(a,4);

% do special cases0 U/ i  |- T+ O6 {
if (a==0), Faf = f; return; end;/ h1 j: [. }& ?
if (a==2), Faf = flipud(f); return; end;
# r4 b5 X' ?6 @5 r4 Oif (a==1), Faf(shft,1) = fft(f(shft))/sN; return; end
6 R9 V* v1 N: k0 P7 Tif (a==3), Faf(shft,1) = ifft(f(shft))*sN; return; end

% reduce to interval 0.5 < a < 1.5
' O9 Y$ A. P2 G+ {if (a>2.0), a = a-2; f = flipud(f); end5 R: A0 V& n% l, n: C5 S
if (a>1.5), a = a-1; f(shft,1) = fft(f(shft))/sN; end( _. y9 e. h' y! Q" O4 e8 t1 I
if (a<0.5), a = a+1; f(shft,1) = ifft(f(shft))*sN; end

% the general case for 0.5 < a < 1.55 y- `7 @& w& ~
alpha = a*pi/2;
+ ]; M* @! g7 T/ ytana2 = tan(alpha/2);
; N+ Y8 R4 d* i! Y5 H9 rsina = sin(alpha);
4 m5 Y' P5 n- ^& D. ]: {6 m! V" gf = [zeros(N-1,1) ; interp(f) ; zeros(N-1,1)];

% chirp premultiplication
( g3 U: h& z1 M* _# ]! Ochrp = exp(-i*pi/N*tana2/4*(-2*N+2:2*N-2)'.^2);( L( `8 h  M1 U5 R* i* J) ^
f = chrp.*f;

% chirp convolution' j; A$ D+ I" x4 r4 A1 B
c = pi/N/sina/4;. q# ^7 h/ R# k3 w
Faf = fconv(exp(i*c*(-(4*N-4):4*N-4)'.^2),f);* B5 G* t0 S2 J! w' b$ [  v+ H4 R
Faf = Faf(4*N-3:8*N-7)*sqrt(c/pi);

% chirp post multiplication
( w# ~/ s1 m! p' Z! Z3 IFaf = chrp.*Faf;

% normalizing constant0 Q' W& W) C. f2 d8 r* O
Faf = exp(-i*(1-a)*pi/4)*Faf(N:2:end-N+1);

%%%%%%%%%%%%%%%%%%%%%%%%%8 a& w; F: Z" u, o7 }5 a
function xint=interp(x)6 I! `2 J+ Y+ T
% sinc interpolation

N = length(x);# o9 B$ C9 U( k) Q" O* H( U
y = zeros(2*N-1,1);. X* B* A5 B8 C! U% Q& q: \6 f0 e
y(1:2:2*N-1) = x;
9 F0 O; \. U, {  \xint = fconv(y(1:2*N-1), sinc([-(2*N-3)2*N-3)]'/2));0 t  c8 b, Z$ H5 f$ l
xint = xint(2*N-2:end-2*N+3);

%%%%%%%%%%%%%%%%%%%%%%%%%
, t: x+ @3 U* O/ S  _6 }1 wfunction z = fconv(x,y)
( i( G& u3 t. l* A# P$ L% convolution by fft

N = length([x(;y(])-1;
! K; o9 U) K% x0 M: sP = 2^nextpow2(N);1 _8 \  e2 ]$ K4 |  [. N
z = ifft( fft(x,P) .* fft(y,P));
9 H/ Q2 z: K4 v# f" a+ fz = z(1:N);

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-11-24 21:32 , Processed in 0.156250 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表