基4-FFT算法编程

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

%第一级蝶形运算
for k=0:3
%第二级蝶形运算
t=W4*[X0(k+1);(W^k)*X1(k+1);(W^(2*k))*X2(k+1);(W^(3*k))*X3(k+1)]; X(k+1)=t(1); X(k+4+1)=t(2); X(k+2*4+1)=t(3); X(k+3*4+1)=t(4);
(注:文档可能无法思考全面,请浏览后下载,供参考。可复制、编制,期待你的好评与关 注)
x=[1,9,9,5,0,3,2,5,3,0,1,0,4,7,2,3]; X=fft4_16(x); X1=fft(x); n=1:1:16; figure(1) stem(n,x,'filled'); title('Input Sequence'); axis([0 17 0 10]); figure(2) stem(n,X,'filled'); title('Output Sequence');
axis([0 17 -20 60]);
figure(3) stem(n,X1,'filled'); title('Output FFT Sequence'); axis([0 17 -20 60]); function [X]=fft4_16(x) X=zeros(1,16); N=16; W=exp(-1j*2*pi/N); W4=dftmtx(4);
调整
形复合
形复合
... Xl-1(k) 第l级蝶 xl(k) 形复合
... Xm-1(k) 第m级蝶 Xm(k) 形复合
5.2 16 点基 4-FFT 算法的流图绘出如下(后面省略了系数-1,-j,j,具体系数对应项见上一蝶 形图)
-j -1 j
-1 -1
j -1
-j
5.3 16 点基 4-FFT 算法的 MATLAB 程序(studentname.m)列出如下
-6.0000 - 6.0000i -2.0207 - 0.1231i -1.4142 + 8.8284i -6.2545 - 3.4765i -10.0000 - 0.0000i -6.2545 + 3.4765i -1.4142 - 8.8284i -2.0207 + 0.1231i -6.0000 + 6.0000i -13.2930 +19.4368i 1.4142 + 3.1716i 13.5682 + 6.7903i}
end
5.4 用自己的学号构成的输入序列为(列出数值,插入图形) x1=[1,9,9,5,0,3,2,5,3,0,1,0,4,7,2,3];
5.5 对应的输出频谱序列为(列出数值,插入图形) X = {54.0000 + 0.0000i 13.5682 - 6.7903i 1.4142 - 3.1716i -13.2930 -19.4368i
X,用 stem(X)显示频谱图形。
三、主要仪器设备 用 MATLAB。
四、操作方法和实验步骤 (参见“二、实验内容和步骤”)
五、实验数据记录和处理 5.1 基 4-FFT 算法思路、流图结构简述如下 5.1.1. 算法思路:
在时域上按 n 的特点对序列 x(n)进行不断的以 4 为基数的分组以及位序调整,进而通过 逐级的蝶形复合处理,间接地完成高点数 DFT 的计算,由此达到降低运算量以及节省存储空 间的目的。
实验报告
课程名称: 数字信号处理
指导老师: 刘英
成绩:__________________
实验名称: 基 4-FFT 算法编程 实验类型:_____设计______ 同组学生姓名:__——____
一、实验目的和要求 FFT 是快速计算 DFT 的一类算法的总称。通过序列分解,用短序列的 DFT 代替长序列的
%初始化输出的频谱序列 %求出蝶形运算的系数矩阵
x0=[x(1);x(5);x(9);x(13)]; x1=[x(2);x(6);x(10);x(14)]; x2=[x(3);x(7);x(11);x(15)]; x3=[x(4);x(8);x(12);x(16)];
%先对原序列进行位序调整
X0=W4*x0; X1=W4*x1; X2=W4*x2; X3=W4*x3;
六、实验结果与分析
1. 基 4-FFT 计算结果与 matlab 自带 fft 函数计算结果对比 以下是 matlab 自带 fft 函数的计算结果
由上述序列和图像比较可以看到,matlab 自带的函数 fft 所得结果与我的基于 4-FFT 算法 和代码所得结果是一直的,说明我的基于 4-FFT 算法和代码是正确的,此外可以看出,基于 4 与基于 2(matlab)的 FFT 算法的运算结果是一致,即其本质是一致的。
Fra Baidu bibliotek
令序列 x(n)的 N 点 DFT 结果为 X(k),且有
,按 的结果对序列 x(n)分组如下:
则有: 5.1.2 蝶形图如下:
对于 N/4 个点继续进行分组和蝶形复合处理,由原序列 x(n)出发,完成位序调整后,经过 m 级蝶形复合便可求得序列 X(k)。总体过程如下图:
x(n)
位序 x0(k) 第1级蝶 x1(k) 第2级蝶 x2(k)
DFT,使得计算量大大下降。基 4-FFT 是混合基 FFT 的一个特例。 通过编写基 4-FFT 算法程序,加深对 FFT 思路、算法结构的理解。
二、实验内容和步骤 编写 16 点基 4-FFT 算法的 MATLAB 程序(studentname.m 文件)。 产生 16 点输入序列 x,出生年月日(8 位)+自己学号后八位产生。算出 16 点频谱序列
相关文档
最新文档