下载此文档

利用MATLAB编写FFT快速傅里叶变换.docx


文档分类:通信/电子 | 页数:约4页 举报非法文档有奖
1/4
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/4 下载此文档
文档列表 文档介绍
利用MATLAB编写FFT迅速傅里叶变换
利用MATLAB编写FFT迅速傅里叶变换
利用MATLAB编写FFT迅速傅里叶变换
一、实验目的
MATLAB 编写 FFT 迅速傅里叶变换。
函数 rader ,纠正输出序列的输出次序。
function y=rader(x,N)
n=[0:N-1];
bn=dec2bin(n);
rbn=fliplr(bn);
rn=bin2dec(rbn);
y=x(rn+1);
myfft ,程序中套了两个循环。
利用MATLAB编写FFT迅速傅里叶变换
利用MATLAB编写FFT迅速傅里叶变换
利用MATLAB编写FFT迅速傅里叶变换
function X=myfft(x)
N=length(x);
h=log2(N); %h=3
for i=1:h %第一次
s=[];
for j=1:2^(i-1);
M=2^(h-i+1);
xj=x([1:M]+(j-1)*M);

i=1; 第二次 i=2
%i=1 时, j=1;i=2 时 ,j=1:2
%M:M=8 ; M=4
%xj=x([1:8]+(1-1)*8)=x(1)+x(2)...+x(8);
%j=1:xj=x([1:4]);j=2:xj=x([1:4]+4)
利用MATLAB编写FFT迅速傅里叶变换
利用MATLAB编写FFT迅速傅里叶变换
利用MATLAB编写FFT迅速傅里叶变换
[y,z]=disbutterfly(xj);
s=[s,y,z];
end
x=s;
利用MATLAB编写FFT迅速傅里叶变换
利用MATLAB编写FFT迅速傅里叶变换
利用MATLAB编写FFT迅速傅里叶变换
end
X=rader(x,N);
,将 myfft
与 fft 相减,比较之间的偏差。
a=[1,2,3,4,5,6,7,8];
X=fft(a);
X1=myfft(a);
X0=fft(a)-myfft(a);
subplot(4,1,1);
stem(a);
title(
'a 序列 ' );
subplot(4,1,2);
stem(X);
title(
'a 序列的 fft'
);
subplot(4,1,3);
stem(X1);
title(
'a 序列的 myfft'
);
subplot(4,1,4);
stem(X0);
title(
'fft(a)-myfft(a)'
);
图中可看出 fft 与 myfft
的图几乎如出一辙,且 fft-myfft
所获得的值几乎为零(虽
然在 4 时有不等于零

利用MATLAB编写FFT快速傅里叶变换 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数4
  • 收藏数0 收藏
  • 顶次数0
  • 上传人大笑大甜
  • 文件大小38 KB
  • 时间2022-05-20