武汉工程大学毕业设计(论文)说明书
4.2 FFT计算离散信号的线性卷积
已知两个离散时间信号x[n](n?0,1,2,M?1)与y[n](n?0,1,2,N?1),取
L?M?N?1,对x[n]和y[n]右端补零,使得
x[n]?0,n?M?1,M?2, y[n]?0,n?N?1,N?2,,L?1
,L?1 (4-9)
利用FFT算法可以求得x[n]和y[n]的L点DFT,分别是X[k]和Y[k],利用DTFT卷积性质,卷积x[n]*y[n]等于乘积X[k]Y[k]的L点DFT反变换,这也可以通过FFT算法得到。
例4-2 利用FFT计算线性卷积
已知x[n]?0.8nu[n],其中u[n]为单位阶跃序列,信号y[n]如图4-4所示。由于当n?16时,x[n]很小,故M可以取为17;N取10,L?M?N?1?26。
利用下面的Matlab命令,可得到x[n]、y[n]的卷积图形如图4-4所示。 subplot(3,1,1); n=0:16; x=0.8.^n; stem(n,x);
xlabel('n');ylabel('x[n]'); subplot(3,1,2); n=0:15;
y=[ones(1,10) zeros(1,6)]; stem(n,y);
xlabel('n');ylabel('y[n]') subplot(3,1,3); L=26;n=0:L-1;
X=fft(x,L);Y=fft(y,L); Z=X.*Y;z=ifft(Z,L);
17
武汉工程大学毕业设计(论文)说明书
stem(n,z);
xlabel('n');ylabel('z[n]')
图4-4 信号x[n]、y[n]及其卷积z[n]=x[n]*y[n]
利用下面的Matlab命令,可得到信号x[n]、y[n]的幅度谱与相位谱如图4-5所示。
subplot(2,2,1); L=26;k=0:L-1;
n=0:16;x=0.8.^n;X=fft(x,L); stem(k,abs(X)); axis([0 25 0 5]);
xlabel('k');ylabel('|X[k]|') subplot(2,2,2); stem(k,angle(X)); axis([0 25 -1 1]);
xlabel('k');ylabel('Angle(X[k])(弧度)') subplot(2,2,3);
y=ones(1,10);Y=fft(y,L);
18
武汉工程大学毕业设计(论文)说明书
stem(k,abs(Y)); axis([0 25 0 10]);
xlabel('k');ylabel('|Y[k]|') subplot(2,2,4); stem(k,angle(Y)); axis([0 25 -3 3]);
xlabel('k');ylabel('Angle(Y[k])(弧度)')
图4-5 信号x[n]、y[n]的幅度谱与相位谱
4.3 FFT进行离散信号压缩
利用FFT算法对离散信号进行压缩的步骤如下:1)通过采样将信号离散化;2)对离散化信号进行傅里叶变换;3)对变换后的系数进行处理,将绝对值小于某一阈值的系数置为0,保留剩余的系数;4)利用IFFT算法对处理后的信号进行逆傅里叶变换[13]。
例4-3 对单位区间上的下列连续信号
1f(t)?t?cos(4?t)?sin(8?t)
2以fs?256Hz采样频率进行采样,将其离散化为28个采样值
f[n]?f(t)|t?nT?f(nT)?f(n/256),n?0,1,2,,255
用FFT分解信号,对信号进行小波压缩,然后重构信号。令绝对值最小的80%系数为0,得到重构信号图形如图4-6a)所示,均方差为0.0429,相对误差
19
武汉工程大学毕业设计(论文)说明书
为0.0449;令绝对值最小的90%系数为0,得到重构信号图形如图4-6b)所示,均方差为0.0610,相对误差为0.0638。
a) 绝对值最小的80%系数为0的重构信号(FFT) b) 绝对值最小的90%系数为0的重构信号(FFT)
图4-6 用FFT压缩后的重构信号
相关Matlab程序如下: function wc=compress(w,r) %压缩函数compress.m %输入信号数据w,压缩率r %输出压缩后的信号数据 if(r<0)|(r>1)
error('r 应该介于0和1之间!'); end;
N=length(w); Nr=floor(N*r); ww=sort(abs(w)); tol=abs(ww(Nr+1)); wc=(abs(w)>=tol).*w;
function [unbiased_variance,error]=fftcomp(t,y,r)
%利用FFT做离散信号压缩
%输入时间t,原信号y,以及压缩率r if(r<0)|(r>1)
error('r 应该介于0和1之间!');
20
武汉工程大学毕业设计(论文)说明书
end; fy=fft(y);
fyc=compress(fy,r); %调用压缩函数compress.m yc=ifft(fyc);
plot(t,y,'r',t,yc,'b'); legend('原信号','重构信号');
unbiased_variance=norm(y-yc)/sqrt(length(t)); error=norm(y-yc)/norm(y); 输入以下Matlab命令: t=(0:255)/256;
f=t+cos(4*pi*t)+1/2*sin(8*pi*t);
[unbiased_variance,error]=fftcomp(t,f,0.8) unbiased_variance = 0.0429 error = 0.0449
如果用Harr尺度函数和Harr小波分解信号,对信号进行小波压缩,然后重构信号。令绝对值最小的80%系数为0,得到重构信号图形如图4-7a)所示,均方差为0.0584,相对误差为0.0611;令绝对值最小的90%系数为0,得到重构信号图形如图4-7b)所示,均方差为0.1136,相对误差为0.1190。
a) 绝对值最小的80%系数为0的重构信号(Harr) b) 绝对值最小的90%系数为0的重构信号(Harr)
图4-7 用Harr小波压缩后的重构信号
21
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库毕业论文-快速傅里叶变换算法及其在信号处理中的应用(5)在线全文阅读。
相关推荐: