- 1、本文档共6页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
离散傅里叶级数(DFS)及FFT快速卷积5
学院:电气信息学院 专业: 电子信息工程 班级:一班 课程名称:数字信号处理
姓名 学号 实验序号 五 实验时间 2012-11-27 指导教师 成绩 实验项目名称 离散傅里叶级数(DFS)及FFT快速卷积 实验目的 加深对离散傅里叶级数(DFS)及FFT快速卷积的理解 实验内容 一、 1.循环移位
2.循环卷积
二 、1.重叠保留
2重叠相加
三、用FFT实现FIR滤波器与信号的滤波
四、用FFT重叠相加法实现FIR滤波器与信号的滤波 实验环境 MATLAB 2007下的M文件编辑器
实
验
编
程
及
运
行
结
果 1.循环移位
function y=circularshift(x,m,N)
if length(x)N
error(N must be larger or equal to length of x)
end
x=[x,zeros(1,N-length(x))];
n=0:N-1;
n=mod(n-m,N);
y=x(n+1);
2.循环卷积
function y=circulararconv(x,h,N)
Lx=length(x);
Lh=length(h);
if(LxN|LhN)
error(N must be =both of lengths of x and h)
end
x=[x,zeros(1,N-length(x))];
h=[h,zeros(1,N-length(h))];
k=0:N-1;
h=h(mod(-k,N)+1);
Z=zeros(N,N);
for n=1:N
Z(n,:)=circularshift(h,n-1,N);
end
y=Z*x
1.重叠保留
function y=ovlpsave(x,h,N)
Lx=length(x);
M=length(h);
M1=M-1; L=N-M1;
K=floor((Lx+M1)/L);
if(Lx+M1)/L==K
K=K-1;
end
x=[zero(1,M1),zeros(1,(K+1)*L-Lx)];
Y=zeros(K+1,N);
for k=0:K
xk=x(k*L+1:k*L+N);
Y(k+1,:)=circulararconv(xk,h,N);
end
Y=Y(:,M:N);
y=(Y(:));
y=y(1:Lx+M1);
2重叠相加
function [y]=ovlpadd(x,h,N)
if lengthx=length(x);
M=length(h);
Block_Nums=Block_Nums-1;
else
x=[x,zeros(1,(Block_Nums+1)*N-lengthx)];
end
Y=zeros(Block_Nums+1,N+-1);
for k=0:Block_Nums
xk=x(k*N+1:k*N+N);
Y(k+1,:)=conv(xk,h);
end
for k=1:Block_Nums+1
for m=1:M-1
y(k+1,m)=y(k+1,m)+y(k,m+N);
end
end
Y_last=Y(Block_Nums+1,:);
用FFT实现FIR滤波器与信号的滤波
h(n)=0.9^n * Rn(n) , x(n)=sin(0.4n)*Rm(n)
M=41;x=sin(0.4*[0:M-1]);
N=21;h=0.9.^(0:N-1);
tic,
y1=conv(x,h);
toc,
L=pow2(nextpow2(M+N-1));
tic,
Xk=fft(x,L); Hk=fft(h,L);
Yk=Xk.*Hk;
y2=ifft(Yk,L);
toc,
subplot(2,1,1),stem(0:M-1,x,.),
subplot(2,1,2),stem(0:N-1,h,.),
figure,subplot(2,1,1),stem(0:M+N-2,y1,.),
subplot(2,1,2),stem(0:L-1,y2,.),
firure 1
firure 2
Elapsed time is 0.000093 seconds.
Elapsed time is 0.000038 seconds.
当M=410时:
firure 1
firure 2
Elapsed time is 0.000143 seconds.
Elapsed time is 0.000090 seco
文档评论(0)