1、信息工程概论窗口傅里叶变换 信息工程概论作业 窗口傅里叶变换姓名:白子轩 学号:2130602008 班级:信计311、传统的傅里叶变换我们都知道,信号分析中最重要的两个参数是时间和频率,而我们一般所得到的信号表示形式都是的形式,而我们可以通过传统的傅里叶变换,可以把信号变为频域表示。但是,传统的傅里叶变换只对平稳的信号有用。对于非平稳的信号需要用时间和品率的联合函数来表示信号。因此,我们需要短时傅里叶变换,也就是窗口傅里叶变换。2、窗口傅里叶变换对于信号的频率是随时间变化的信号。为了获得它的随时间变化的频谱,最采用的处理办法是加窗技术对信号截取,然后对截取的局部信号作Fourier变换。然后
2、不断地移动窗口函数中心的位置,就可以得到信号的局部区域的瞬时频率,因此,对于连续的信号,它的窗口傅里叶变换为:窗口傅里叶逆变换为:而对于离散的信号,它的窗口傅里叶变换为:窗口傅里叶逆变换为:3、窗口函数要进行窗口傅里叶变换,首先要要选择窗口函数,窗口函数有很多,例如高斯窗、hamming窗和Hanning窗等等。其中高斯窗函数被设计为了分析瞬态信号,Hamming和Hann窗函数被设计为了分析窄带信号,Kaiser-Bessel窗函数可用于更好地分离两个频率成分非常接近但振幅完全不同的信号。在matlab中我们也可以直接调用一些窗口函数,调用的方法如下:4、实验实验1:题目:在这里我先做了一下
3、书上的例子,对线性调频信号进行频谱分析。题目分析:这个例子有两种做法,第一种方法是直接调用matlab中的spectrogram函数,第二种方法是按照定义选取窗口函数,然后对每一小段的做快速傅里叶变换就可以了。方法一:源程序:cleart=0:0.001:10;t1=t;f1=sin(2*pi*2*power(t,2);subplot(2,2,1);plot(t,f1);subplot(2,2,2);g=1/6*exp(-0.5*power(t,2).*(t=-3 & t3 | t=-3 & t3 | t=-3 & t3 | t=-3 & t3 | t-3);plot(t,g1);N=leng
4、th(f1);Nw=20; %窗函数长 window lengthL=19; %窗函数每次移动的样点数,重叠宽度Ts=round(N-Nw)/L)+1; %计算把数据x共分成多少段nfft=2ceil(log2(Nw) ; %FFT的长度TF=zeros(Ts,nfft); %将存放三维谱图,先清零%for i=1:Tsi=0;flag=0;while flag=0; i=i+1; if (i-1)*Nw+NwN %y(i-1)*L+1:i*L+L) %hamming(Nw) xw=f1(i-1)*L+1:i*L+L)*hamming(2*L); %取一段数据 temp=fft(xw,nfft
5、); %FFT变换 temp=fftshift(abs(temp); %频谱以0频为中心 %TF(i,:); TF(i,:)=temp; %把谱图存放在TF中 else flag=1; end endsubplot(3,2,3);%mesh(abs(TF); %view(0,90);%axis tight%imagesc(TF);contour(abs(TF);xlabel(时间); ylabel(频率)subplot(3,2,4);mesh(abs(TF); %三维绘图axis tighttitle(STFT); xlabel(时间); ylabel(频率); %短时傅里叶变换X=fft(f
6、1);X=fftshift(X);%重构x1=ifftshift(X);x1=ifft(x1);subplot(3,2,5);plot(t1,x1);xlabel(时间); %x轴ylabel(振幅); %y轴%误差e=x1-f1;subplot(3,2,6);plot(t1,abs(e);xlabel(时间); %x轴ylabel(振幅); %y轴得到结果:结果分析:我们发现得到的结果非常不理想,经过多次试验,我并没有找到是哪里出的问题,因此在接下来的实验中将要放弃这种方法。实验2:题目:录一段自己的声音,对这段声音进行频谱分析。实验分析:这个题目和实验1类似,只不过一个用的是连续的窗口傅里
7、叶变换,一个用的是离散的窗口傅里叶变换,所以在这里我们仍然运用matlab中的spectrogram函数即可。在这里我们需要注意一下,mp3是双音轨的,所以数字化后是一个是一个二维数组,而我们只需要分析其中的一组即可。于是我就录了自己的一段笑声,并抽取其中的一组数组,进行分析。源程序:clearx,fs=audioread(C:UserslenovoDesktop小波分析笑.mp3);y=x(:,1);subplot(3,2,1);plot(y);title(信号波形图); %图名xlabel(时间); %x轴ylabel(振幅); %y轴hold on N=length(y);Nw=600;
8、 %窗函数长 window lengthL=Nw/2; %窗函数每次移动的样点数,重叠宽度%窗口函数subplot(3,2,2);g=hamming(Nw);j=-Nw/2;for i=1:Nw t(i)=j; j=j+1;endplot(t,g,.); subplot(3,2,3);S,F,T,P = spectrogram(y,hamming(600),580,600,1E3);surf(T,F,10*log10(P),edgecolor,none); axis tightview(0,90);xlabel(Time (Seconds);ylabel(Hz);subplot(3,2,4);
9、surf(T,F,10*log10(P),edgecolor,none); axis tightxlabel(Time (Seconds);ylabel(Hz);zlabel(enargy) Y=fft(y);X=fftshift(Y);%重构x1=ifftshift(X);x1=ifft(x1);subplot(3,2,5);plot(x1);xlabel(时间); %x轴ylabel(振幅); %y轴%误差e=x1-y;subplot(3,2,6);plot(abs(e);xlabel(时间); %x轴ylabel(振幅); %y轴得到结果: 结果分析: 我们可以看到得到了一个比较比较清晰地频谱图,但是它的3D图并不是太清晰。结果不是太理想。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1