预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共18页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

信号分析与处理实验报告-- . 华北电力大学 实验报告 | | 实验名称FFT的软件实现实验(Matlab) IIR数字滤波器的设计 课程名称 信号分析与处理 | | 专业班级:电气化1308学生姓名:袁拉麻加 学号:2成绩: 指导教师:杨光实验日期:2015-12-17 '. 信号分析与处理实验报告-- 信号分析与处理实验报告-- . 快速傅里叶变换实验 一、实验目的及要求 通过编写程序,深入理解快速傅里叶变换算法(FFT)的含义,完成FFT和 IFFT算法的软件实现。 二、实验内容 利用时间抽取算法,编写基2点的快速傅立叶变换(FFT)程序;并在FFT 程序基础上编写快速傅里叶反变换(IFFT)的程序。 三:实验要求 1、FFT和IFFT子程序相对独立、具有一般性,并加详细注释; 2、验证例6-4,并能得到正确结果。 3、理解应用离散傅里叶变换(DFT)分析连续时间信号频谱的数学物理基础。 四、实验原理: a.算法原理 1、程序输入序列的元素数目必须为2的整数次幂,即N=2M,整个运算需要M 级蝶形运算; 2、输入序列应该按二进制的码位倒置排列,输出序列按自然序列排列; 3、每个蝶形运算的输出数据军官占用其他输入数据的存储单元,实现“即位 运算”; 4、每一级包括N/2个基本蝶形运算,共有M*N/2个基本蝶形运算; 5、第L级中有N/2L个群,群与群的间隔为2L。 6、处于同一级的各个群的系数W分布相同,第L级的群中有2L-1个系数; 7、处于第L级的群的系数是(p=1,2,3,…….,2L-1)而对于第L级的蝶形 '. 信号分析与处理实验报告-- 信号分析与处理实验报告-- . 运算,两个输入数据的间隔为2L-1。 b.码位倒置程序流程图 开始 检测A序列长度n k=0 j=1 x1(j)=bitget(k,j); j=j+1 Y j<m? N x1=num2str(x1); y(k+1)=bin2dec(x1); clearx1 k=k+1 '. 信号分析与处理实验报告-- 信号分析与处理实验报告-- . Y k<n? N 按新序号生产输入 序列B(过程略) c.蝶形运算程序流程图 '. 信号分析与处理实验报告-- 信号分析与处理实验报告-- . 接码位倒置程序 L=1 LE=2L LE1=LE/2 W=1 W1=exp(-jπ/LE1) R=0 P=R Q=P+LE1 T=A[Q]*W A[Q]=A[P]-T A[P]=A[Q]+T P=P+LE No P>N-1? Yes W=W*W1 R=R+1 No R>LE1-1? Yes L=L+1 No L>M? Yes 结束 五、程序代码与实验结果 '. 信号分析与处理实验报告-- 信号分析与处理实验报告-- . a.FFT 程序: %% clearall;closeall;clc; %输入数据% A=input('输入x(n)序列','s'); A=str2num(A); %A=[1,2,-1,4];%测试数据% %% %校验序列,% n=length(A); m=log2(n); if(fix(m)~=m) disp('输入序列长度错误,请重新输入!'); A=input('输入x(n)序列','s'); A=str2num(A); else disp('输入正确,请运行下一步') end %% %码位倒置% fork=0:n-1 forj=1:m%取M位的二进制数% x1(j)=bitget(k,j);%倒取出二进制数% end x1=num2str(x1);%将数字序列转化为字符串% y(k+1)=bin2dec(x1);%二进制序列转化为十进制数% clearx1 end fork=1:n B(k)=A(y(k)+1);%时间抽取序列% end clearA %% %计算% forL=1:m%分解为M级进行运算% LE=2^L;%第L级群间隔为2^L% LE1=2^(L-1);%第L级中共有2^(L-1)个Wn乘数,进行运算蝶运算的两数序号 相隔LE1% W=1; W1=exp(-1i*pi/LE1); forR=1:LE1%针对第R个Wn系数进行一轮蝶运算,共进行LE1次% '. 信号分析与处理实验报告-- 信号分析与处理实验报告-- . forP=R:LE:n%每个蝶的大小为LE% Q=P+LE1; T=B(Q)*W; B(Q)=B(P)-T; B(