信号处理实验四离散傅里叶变换

信号处理实验四离散傅里叶变换

ID:47846444

大小:79.15 KB

页数:6页

时间:2019-11-26

信号处理实验四离散傅里叶变换_第1页
信号处理实验四离散傅里叶变换_第2页
信号处理实验四离散傅里叶变换_第3页
信号处理实验四离散傅里叶变换_第4页
信号处理实验四离散傅里叶变换_第5页
资源描述:

《信号处理实验四离散傅里叶变换》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、哈尔滨工程大学实验报告实验名称:实验四:离散傅里叶变换班级:电子信息工程4班学号:姓名:实验时间:2016年10月19日成绩:________________________________指导教师:栾晓明实验室名称:数字信号处理实验室哈尔滨工程大学实验室与资产管理处制实验四离散傅里叶变换一、实验原理1.由DFT定义式:k=0,1,…,N-1,将其写成矩阵方程表示为利用MATLAB的矩阵运算功能,可编写出计算DFT的函数文件。function[Xk]=dft(xn,N)%计算离散傅里叶变换%Xk=在0<=k<=N-1间的DFT系数数组%xn=N点有限长序列

2、%N=DFT的长度n=[0:1:N-1];%n的行向量k=[0:1:N-1];%k的行向量WN=exp(-j*2*pi/N);%Wn因子nk=n'*k;%产生一个含bk值的N乘N维矩阵WNnk=WN.^nk;%DFT矩阵Xk=xn*WNnk;%DFT系数的行向量由IDFT定义式:,n=0,1,2,…,N-1,利用MATLAB的矩阵运算功能,可编写出计算傅里叶反变换的函数文件。function[xn]=idft(Xk,N)%计算离散傅里叶反变换%-----------------%xn=在0<=n<=N-1%Xk=N点有限长序列%N=IDFT的长度k=[0:1:

3、N-1];%k的行向量n=[0:1:N-1];%n的行向量WN=exp(-j*2*pi/N);%Wn因子nk=n'*k;%产生一个含bk值的N乘N维矩阵WNnk=WN.^nk;%DFT矩阵xn=Xk*WNnk;%傅里叶反变换计算序列值DFT的快速算法FFT利用了的三个固有特性:(1)对称性,,(2)周期性,,(3)可约性,和。FFT算法基本上可以分为两大类,即按时间抽选法(DIT,Decimation-In-Time)和按频率抽选法(DIF,Decimation-In-Frequency)。MATLAB中提供了进行快速傅里叶变换的fft函数:X=fft(x),

4、基2时间抽取FFT算法,x是表示离散信号的向量;X是系数向量;X=fft(x,N),补零或截断的N点DFT,当x的长度小于N时,对x补零使其长度为N,当x的长度大于N时,对x截断使其长度为N。Ifft函数计算IDFT,其调用格式与fft函数相同,参考help文件。2.利用DFT做连续信号的频谱分析DFT(实际中用FFT计算)可用来对连续信号和数字信号进行谱分析。在实际分析过程中,要对连续信号采样和截断,由此可能引起分析误差。(1)混叠效应对连续信号进行频谱分析时,首先要对其采样,变成时域离散信号后才能用DFT(FFT)进行谱分析。采样速率fs必须满足采样定理,

5、否则会在w=π(对应模拟频率f=fs/2)附近发生频谱混叠现象。(2)截断效应处理实际信号序列x(n)时,一般总要将它截断为一有限长序列,长为N点,相当于乘以一个矩形窗形成有限长序列y(n)=x(n)w(n)。矩形窗函数其频谱有主瓣,也许许多副瓣,窗口越大,主瓣越窄,当窗口趋于无穷大时,就是一个冲击函数。时域的乘积对应于频域的卷积,所以,加窗后的频域实际是原信号频谱与矩形窗函数频谱的卷积,卷积的结果使频谱延伸到了主瓣以外,且一直延时到无穷。当窗口无穷大时,与冲击函数的卷积才是其本身,这是无需畸变。由此可见,阶段后频谱Y(ejw)与原序列频谱X(ejw)必然有差

6、别,这种差别表现在:a.频谱泄露。原来序列x(n)的频谱是离散谱线,经截断后,原来离散谱线向附近展宽,成为泄露。显然,泄露使频谱变模糊,使谱分辨率降低。b.谱间干扰。主谱线两边又很多旁谱,引起不同频率分量间干扰,这使谱分析产生较大偏差。程度与窗函数幅度谱主瓣宽度直接相关。(3)栅栏效应N点DFT是频率区间[0,2π]上对时域离散信号的频谱进行N点等间隔采样,而采样点之间的频谱函数是看不见的。这就好像从N个栅栏缝隙中观看信号的频谱情况,仅得到N个缝隙中看到的函数值。由于栅栏效应,有可能漏掉大的频谱分量。例3.1对连续的单一频率周期信号按采样频率fs=8fa采样,

7、截取长度N分别选N=20和N=16,观察其DFT结果的幅度谱。解:此时离散序列,用MATLAB计算并作图,函数fft()用于计算离散傅里叶变换DFT,程序如下:k=8;n1=[0:19];%序列点数20xa1=sin(2*pi*n1/k);subplot(221)stem(n1,xa1)xlabel('t/T');ylabel('x(n)');%图一:序列图像xk1=fft(xa1);%调用fft函数xk1=abs(xk1);%取xk1绝对值subplot(222)stem(n1,xk1)xlabel('k');ylabel('X(k)');图二:序列DFT图

8、像n2=[0:1:15];%序列点数1

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。