哈工大数字信号处理实验报告讲解.docx
- 文档编号:7433195
- 上传时间:2023-01-23
- 格式:DOCX
- 页数:24
- 大小:367.06KB
哈工大数字信号处理实验报告讲解.docx
《哈工大数字信号处理实验报告讲解.docx》由会员分享,可在线阅读,更多相关《哈工大数字信号处理实验报告讲解.docx(24页珍藏版)》请在冰豆网上搜索。
哈工大数字信号处理实验报告讲解
HarbinInstituteofTechnology
数字信号处理
实验报告
学生姓名:
江世凯
学号:
1122110307
班级:
1221103
专业:
电子科学与技术
任课教师:
李杨
所在单位:
电子工程系
2014年11月
实验一、用FFT作谱分析
一、实验目的
(1)进一步加深DFT算法原理和基本性质的理解(因为FFT只是DFT的一种快速算法,所以FFT的运算结果必然满足DFT的基本性质)。
(2)熟悉FFT算法原理和FFT子程序的应用。
(3)学习用FFT对连续信号和时域离散信号进行谱分析的方法,了解可能出现的分析误差及其原因,以便在实际中正确应用FFT。
二、实验内容
(1)编制信号产生子程序,产生以下典型信号供谱分析用:
(2)画出1中所给出的信号,并逐个进行谱分析。
下面给出针对各信号的FFT变换区间N以及对连续信号x6(t)的采样频率fs,供实验时参考。
x1(n),x2(n),x3(n),x4(n),x5(n):
N=8,16
x6(t):
fs=64(Hz),N=16,32,64(n=0:
1:
69)
(3)令x(n)=x4(n)+x5(n),用FFT计算8点和16点离散傅里叶变换,
X(k)=DFT[x(n)]
(4)令x(n)=x4(n)+jx5(n),重复
(2)。
三、程序框图
图1.实验程序框图
四、实验过程
(1)复习DFT的定义、性质和用DFT作谱分析的有关内容。
(2)复习FFT算法原理与编程思想,并对照DIT-FFT运算流图和程序框图,读懂本实验提供的FFT子程序。
(3)编制信号产生子程序,产生以下典型信号供谱分析用:
(4)编写主程序。
(5)按实验内容要求,上机实验,并写出实验报告。
五、实验结果及分析
1.实验结果
(1)对x1(n)进行FFT变换(N=8和N=16)
图2x1(n)进行FFT变换结果
(2)对x2(n)进行FFT变换(N=8和N=16)
图3x2(n)FFT变换结果
(3)对x3(n)进行FFT变换(N=8和N=16)
图4x3(n)FFT变换结果
(4)对x4(n)进行FFT变换(N=8和N=16)
图5x4(n)FFT变换结果
(5)对x5(n)进行FFT变换(N=8和N=16)
图6x5(n)FFT变换结果
(6)对x6(n)进行FFT变换(N=16、N=32和N=64)
图7x6(n)FFT变换结果
(7)对x(n)=x4(n)+x5(n)进行FFT变换(N=8和N=16)
图8x4(n)+x5(n)FFT变换结果
(8)对x(n)=x4(n)+jx5(n)进行FFT变换(N=8和N=16)
图9x4(n)+jx5(n)FFT变换结果
(9)GUI设计结果
2.分析:
(1)在N=8时,x2(n)和x3(n)的幅频特性会相同吗?
为什么?
N=16呢?
答:
在N=8的时候,x3(n)只是x2(n)以它的长度8为周期,将其延拓成周期序列然后加以移位,最后截取主值区间(n=0到8)的序列值,因此x3(n)是x2(n)进行循环位移后的结果。
由于序列的循环位移性质,因此,循环位移只影响到DFT后的相频特性,而不影响幅频特性,因此x2(n)和x3(n)的幅频特性会相同。
若N=16,此时,x2(n)和x3(n)做DFT即为它们分别进行末尾补零后再进行的DFT,则此时两个经过补零以后的序列就不满足循环位移的性质,因此x2(n)和x3(n)的幅频特性就会发生变化。
(2)如果周期信号的周期预先不知道,如何用FFT进行谱分析
答:
在用FFT对信号进行频谱分析时,首先要对信号进行采样,使之变成离散信号,然后就可按照前面的方法用FFT对离散信号进行频谱分析。
按照采样定理,采样频率fs应当大于信号最高频率的2倍。
若预先不知道周期信号的周期,应先适当截取M点进行FFT,再将截取的长度扩大1倍重新截取,比较二者结果,若二者的差别满足分析误差的要求,就可以近似得到该信号的频谱,假若不满足误差要求则继续加倍截取的长度进行FFT,直到结果满足误差要求为止。
(3)结合实验中所得给定典型序列幅频特性曲线,与理论结果比较,并分析说明误差产生的原因以及用FFT作谱分析时有关参数的选择方法。
答:
1.误差分析:
1)对于x1(n)理论FFT频谱为一个抽样信号,由图2可以看出,随着采样率的提高,得到的FFT频谱分辨率就越高,当N趋于无限时频谱包络接近理论的抽样函数。
2)序列x2(n)理论FFT频谱为一个抽样函数平方的信号,由图3看出,随着采样率的提高,得到的FFT频谱分辨率就越高,当N趋于无限时频谱包络接近理论的抽样函数。
3)对于x3(n),由图4看出,随着采样率的提高,得到的FFT频谱分辨率就越高,但对于这个函数来说,N仍然过小,因此幅频特性曲线与理论结果有较大差距。
4)序列x4(n)的理论FFT抽样频谱为单位冲激函数,因此只要满足抽样定理,FFT都可以与理论图形一样的曲线。
由图5可以看出,当N=8,16时,满足抽样定理,能够得到与理论一致的曲线。
5)序列x5(n)的理论FFT抽样频谱为单位冲激函数,因此只要满足抽样定理,FFT都可以与理论图形一样的曲线。
由图6可知,当N=8时,不满足抽样定理,因此产生了混叠失真,当N=8时,满足抽样定理,因此可得到与理论曲线一致的图形。
6)序列x6(n)的理论FFT抽样频谱为有三个不同频率分量的单位冲激函数,因此只要满足抽样定理,FFT都可以与理论图形一样的曲线。
当N=16时,不满足抽样定理,因此产生了混叠失真,当N=32,64时,满足抽样定理,因此可得到与理论曲线一致的图形,如图7所示。
7)函数x4(n)+x5(n)理论FFT抽样频谱为有两个不同频率分量的单位冲激函数,因此只要满足抽样定理,FFT都可以与理论图形一样的曲线。
当N=8时,不满足抽样定理,因此产生了混叠失真,当N=16时,满足抽样定理,因此可得到与理论曲线一致的图形,如图8所示。
8)序列x4(n)+jx5(n)理论FFT抽样频谱为有两个不同频率分量的单位冲激函数,因此只要满足抽样定理,FFT都可以与理论图形一样的曲线。
如图9所示,当N=8时,不满足抽样定理,因此产生了混叠失真,当N=16时,满足抽样定理,因此可得到与理论曲线一致的图形。
2.参数选择;
对时间序列做FFT变换时,抽样频率要要一些,从而提高分辨率减小误差,同时抽样频率的选取必须满足抽样定理才能得到与理论相符的曲线。
六、实验源程序
1.对x1(n)进行FFT变换(N=8和N=16)
function[output_args]=Untitled1(input_args)
%UNTITLED1Summaryofthisfunctiongoeshere
%Detailedexplanationgoeshere
clearall;
N=4;
x=[1,1,1,1];
n=0:
N-1;
subplot(3,1,1);
stem(n,abs(x),'g','LineWidth',1.3);
title('x1(n)时间序列');
N=8;
y1=fft(x,N);
n=0:
N-1;subplot(3,1,2);
stem(n,fftshift(abs(y1)),'r','LineWidth',1.3);
holdon;
plot(n,fftshift(abs(y1)),'c','LineWidth',1.3);
title('FFT[x1(n)]:
N=8');
N=16;
y2=fft(x,N);
n=0:
N-1;subplot(3,1,3);
stem(n,fftshift(abs(y2)),'m','LineWidth',1.3);
holdon;
plot(n,fftshift(abs(y2)),'y','LineWidth',1.3);
title('FFT[x1(n)]:
N=16');
2.对x2(n)进行FFT变换(N=8和N=16)
function[output_args]=Untitled2(input_args)
%UNTITLED2Summaryofthisfunctiongoeshere
%Detailedexplanationgoeshere
clearall;
x=[1,2,3,4,4,3,2,1];
N=8;
n=0:
N-1;subplot(3,1,1);
stem(n,abs(x),'k','LineWidth',1.3);
title('x2(n)时间序列');
N=8;
y1=fft(x,N);
n=0:
N-1;subplot(3,1,2);
stem(n,fftshift(abs(y1)),'r','LineWidth',1.3);
holdon;
plot(n,fftshift(abs(y1)),'c--');
title('FFT[x2(n)]:
N=8');
N=16;
y2=fft(x,N);
n=0:
N-1;subplot(3,1,3);
stem(n,fftshift(abs(y2)),'m','LineWidth',1.3);
holdon;
plot(n,fftshift(abs(y2)),'g--');
title('FFT[x2(n)]:
N=16');
3.对x3(n)进行FFT变换(N=8和N=16)
function[output_args]=Untitled3(input_args)
%UNTITLED3Summaryofthisfunctiongoeshere
%Detailedexplanationgoeshere
clearall;
x=[4,3,2,1,1,2,3,4];
N=8;
n=0:
N-1;subplot(3,1,1);
stem(n,abs(x),'k','LineWidth',1.3);
title('x3(n)时间序列');
N=8;
y1=fft(x,N);
n=0:
N-1;subplot(3,1,2);
stem(n,fftshift(abs(y1)),'r','LineWidth',1.3);
holdon;
plot(n,fftshift(abs(y1)),'c--');
title('FFT[x3(n)]:
N=8');
N=16;
y2=fft(x,N);
n=0:
N-1;subplot(3,1,3);
stem(n,fftshift(abs(y2)),'m','LineWidth',1.3);
holdon;
plot(n,fftshift(abs(y2)),'g--');
title('FFT[x3(n)]:
N=16');
4.对x4(n)进行FFT变换(N=8和N=16)
function[output_args]=Untitled3(input_args)
%UNTITLED3Summaryofthisfunctiongoeshere
%Detailedexplanationgoeshere
clearall;
n=0:
15;%读入长度
x=cos(pi/4*n);
subplot(3,1,1);
stem(n,abs(x),'k','LineWidth',1.3);
title('x4(n)时间序列');
N=8;
y1=fft(x,N);
n=0:
N-1;subplot(3,1,2);
stem(n,fftshift(abs(y1)),'r','LineWidth',1.3);
holdon;
plot(n,fftshift(abs(y1)),'c--');
title('FFT[x4(n)]:
N=8');
N=16;
y2=fft(x,N);
n=0:
N-1;subplot(3,1,3);
stem(n,fftshift(abs(y2)),'m','LineWidth',1.3);
holdon;
plot(n,fftshift(abs(y2)),'g--');
title('FFT[x4(n)]:
N=16');
5.对x5(n)进行FFT变换(N=8和N=16)
function[output_args]=Untitled3(input_args)
%UNTITLED3Summaryofthisfunctiongoeshere
%Detailedexplanationgoeshere
clearall;
n=0:
15;%读入长度
x=sin(pi/8*n);;
subplot(3,1,1);
stem(n,abs(x),'k','LineWidth',1.3);
title('x5(n)时间序列');
N=8;
y1=fft(x,N);
n=0:
N-1;subplot(3,1,2);
stem(n,fftshift(abs(y1)),'r','LineWidth',1.3);
holdon;
plot(n,fftshift(abs(y1)),'c--');
title('FFT[x5(n)]:
N=8');
N=16;
y2=fft(x,N);
n=0:
N-1;subplot(3,1,3);
stem(n,fftshift(abs(y2)),'m','LineWidth',1.3);
holdon;
plot(n,fftshift(abs(y2)),'g--');
title('FFT[x5(n)]:
N=16');
6.对x6(n)进行FFT变换(N=16、N=32和N=64)
function[output_args]=Untitled3(input_args)
%UNTITLED3Summaryofthisfunctiongoeshere
%Detailedexplanationgoeshere
clearall;
n=0:
64;%读入长度
x=cos(pi*8/64*n)+cos(pi*16/64*n)+cos(pi*20/64*n);
subplot(4,1,1);
stem(n,abs(x),'k','LineWidth',1.3);
%plot(n,abs(x),'b');
title('x6(t)抽样得x6(n)');
N=16;
y1=fft(x,N);
n=0:
N-1;subplot(4,1,2);
stem(n,fftshift(abs(y1)),'r','LineWidth',1.3);
holdon;
plot(n,fftshift(abs(y1)),'y--');
title('FFT[x6(n)]:
N=16');
N=32;
y2=fft(x,N);
n=0:
N-1;subplot(4,1,3);
stem(n,fftshift(abs(y2)),'m','LineWidth',1.3);
holdon;
plot(n,fftshift(abs(y2)),'c--');
title('FFT[x6(n)]:
N=32');
N=64;
y3=fft(x,N);
n=0:
N-1;subplot(4,1,4);
stem(n,fftshift(abs(y3)),'b','LineWidth',1.3);
holdon;
plot(n,fftshift(abs(y3)),'g--');
title('FFT[x6(n)]:
N=64');
7.对x(n)=x4(n)+x5(n)进行FFT变换(N=8和N=16)
function[output_args]=Untitled2(input_args)
%UNTITLED2Summaryofthisfunctiongoeshere
%Detailedexplanationgoeshere
clearall;
n=0:
15
x4=cos(pi/4*n);
x5=sin(pi/8*n);
x=x4+x5;
subplot(3,1,1);stem(n,abs(x));holdon;plot(n,abs(x),'y--');
title('cos(pi/4*n)+sin(pi/8*n)时间序列');
N=8;
y1=fft(x,N);
n=0:
N-1;subplot(3,1,2);stem(n,fftshift(abs(y1)),'m');holdon;plot(n,fftshift(abs(y1)),'c--');
title('FFT[x4+x5]:
N=8');
N=16;
y2=fft(x,N);
n=0:
N-1;subplot(3,1,3);stem(n,fftshift(abs(y2)),'r');holdon;plot(n,fftshift(abs(y2)),'g--');
title('FFT[x4+x5]:
N=16');
8.对x(n)=x4(n)+jx5(n)进行FFT变换(N=8和N=16)
function[output_args]=Untitled2(input_args)
%UNTITLED2Summaryofthisfunctiongoeshere
%Detailedexplanationgoeshere
clearall;
n=0:
15
x4=cos(pi/4*n);
x5=j*sin(pi/8*n);
x=x4+x5;
subplot(3,1,1);stem(n,abs(x));holdon;plot(n,abs(x),'y--');
title('cos(pi/4*n)+jsin(pi/8*n)时间序列');
N=8;
y1=fft(x,N);
n=0:
N-1;subplot(3,1,2);stem(n,fftshift(abs(y1)),'m');holdon;plot(n,fftshift(abs(y1)),'c--');
title('FFT[x4+x5]:
N=8');
N=16;
y2=fft(x,N);
n=0:
N-1;subplot(3,1,3);stem(n,fftshift(abs(y2)),'r');holdon;plot(n,fftshift(abs(y2)),'g--');
title('FFT[x4+x5]:
N=16');
9.GUI设计源程序
functionvarargout=untitled3(varargin)
%UNTITLED3M-fileforuntitled3.fig
%UNTITLED3,byitself,createsanewUNTITLED3orraisestheexisting
%singleton*.
%
%H=UNTITLED3returnsthehandletoanewUNTITLED3orthehandleto
%theexistingsingleton*.
%
%UNTITLED3('CALLBACK',hObject,eventData,handles,...)callsthelocal
%functionnamedCALLBACKinUNTITLED3.Mwiththegiveninputarguments.
%
%UNTITLED3('Property','Value',...)createsanewUNTITLED3orraisesthe
%existingsingleton*.Startingfromtheleft,propertyvaluepairsare
%appliedtotheGUIbeforeuntitled3_OpeningFunctiongetscalled.An
%unrecognizedpropertynameorinvalidvaluemakespropertyapplication
%stop.Allinputsarepassedtountitled3_OpeningFcnviavarargin.
%
%*SeeGUIOptionsonGUIDE'sToolsmenu.Choose"GUIallowsonlyone
%instancetorun(singleton)".
%
%Seealso:
GUIDE,GUIDATA,GUIHANDLES
%Copyright2002-2003TheMathWorks,Inc.
%Edittheabovetexttomodifytheresponsetohelpuntitled3
%LastModifiedbyGUIDEv2.523-Nov-201411:
53:
18
%Begininitializationcode-DONOTEDIT
gui_Singleton=1;
gui_State=struct('gui_Name',mfilename,...
'gui_Singleton',gui_Singleton,...
'gui_OpeningFcn',@untitled3_OpeningFcn,...
'gui_OutputFcn',@untitled3_OutputFcn,...
'gui_LayoutFcn',[],...
'gui_Callback',[]);
ifnargin&&ischar(varargin{1})
gui_State.gui_Callback=str2func(varargin{1});
end
ifnargout
[varargout{1:
nargout}]=gui_mainfcn(gui_State,varargin{:
});
else
gui_mainfcn(gui_State,varargin{:
});
end
%Endinitializationcode-DONOTEDIT
%---Executesjustbeforeuntitled3ismadevisible.
functionuntitled3_OpeningFcn(hObject,eventdata,handles,varargin)
%Thisfunctionhasnooutputargs,seeOutputFcn.
%hObjecthandletofigure
%e
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 哈工大 数字信号 处理 实验 报告 讲解