700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > matlab中xtem 快速傅里叶变换_蝶形运算_按频率抽取基2-fft算法_MATLAB代码

matlab中xtem 快速傅里叶变换_蝶形运算_按频率抽取基2-fft算法_MATLAB代码

时间:2021-08-07 16:34:44

相关推荐

matlab中xtem 快速傅里叶变换_蝶形运算_按频率抽取基2-fft算法_MATLAB代码

function y=MyFFT_FB(x,n)

%MYFFT_TB:My Fast Fourier Transform Frequency Based

%按频率抽取基2-fft算法

%input:

% x -- 输入的一维样本

% n -- 变换长度,缺省时 n=length(x) 当n小于x数据长度时,x数据被截断到第n个数据 % 当n大于时,x数据在尾部补0直到 x 含n个数据

%output:

% y -- 1*n的向量,快速傅里叶变换结果

%variable define:

% N -- 一维数据x的长度

% xtem -- 临时储存x数据用

% m,M -- 对N进行分解 N=2^m*M,M为不能被2整除的整数

% two_m -- 2^m

% adr -- 变址,1*N的向量

% l -- 当前蝶形运算的级数

% W -- 长为 N/2的向量,记录 W(0,N),W(1,N),...W(N/2-1,N)

% d -- 蝶形运算两点间距离

% t -- 第l级蝶形运算含有的奇偶数组的个数

% mul -- 标量,乘数

% ind1,ind2 -- 标量,下标

% tem -- 标量,用于临时储存

%参考文献:

% /view/fea1e985b9d528ea81c779ee.html

%% 输入参数个数检查

msg=nargchk(1,2,nargin);

error(msg);

%% 输入数据截断或加0

N=length(x);

if nargin==2

if N

xtem=x;

x=zeros(1,n);

x(1:N)=xtem;

N=n;

else % 截断

xtem=x;

x=xtem(1:n);

N=n;

end

end

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。