首页
|
登录
|
注册
|
职吧
|
我的职脉
职位关键字
工作地点
工作名称
公司名称
校园招聘
中国最好的工作搜索引擎!
回复留言
请教高手:如何用Matlab自己编写基2的fft函数
作者: wthsunny
01-01 08:00
回复
按时间抽取以及按频率抽取
即不使用matlab提供的fft函数,自己独立编写一个
回复:请教高手:如何用Matlab自己编写基2的fft函数
作者: wadahana
01-01 08:00
回复
按时间抽取 我有
function ret_val = fft1(vector)
%======================================
%ret_val 为fft变换后返回的频域序列
%N 为点数
%vector 为变换前的序列
%======================================
vector_size = size(vector);
N = vector_size(2);
c = zeros(1,N);
%
%变址运算
%
j1 = 0;
for i = 1 : N
if i < j1 + 1
tmp = vector(j1 + 1);
vector(j1 + 1) = vector(i);
vector(i) =tmp;
end
k = N / 2;
while k <= j1
j1 = j1 - k;
k = k / 2;
end
j1 = j1 + k;
end
%
%蝶形运算
%
%%%%%%%计算 N 的
dig = 0;
k = N;
while k > 1
dig = dig + 1;
k = k / 2;
end
%%%%%%
% m 为级; dist 为蝶形运两点的距离; n 为蝶形运算组数
%
n = N / 2;
for m = 1 : dig
dist = 2 ^ (m - 1);
idx = 1;
for i = 1 : n
idx1 = idx;
for j1 = 1 : N / (2 * n)
r = (idx - 1) * 2 ^ (dig - m);
coef = exp(j * (-2 * pi * r / N));
tmp = vector(idx);
vector(idx) = tmp + vector(idx + dist) * coef;
vector(idx + dist) = tmp - vector(idx + dist) * coef;
idx = idx + 1;
end
idx = idx1 + 2 * dist;
end
n = n / 2;
end
ret_val = vector;
标 题:
内 容:
用户名:
游客
关于我们
┊
职脉新闻
┊
联盟合作
┊
联系我们
┊
友情链接
┊
隐私条款
Copyright©2005-2007, 版权所有 WWW.JOBMET.COM
ICP证:京ICP备06019556号