- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
FFT算法与离散时间信号的频域分析
数字信号处理
随堂实验报告
学院 计算机与电子信息学院
专业 电子信息工程 班级
姓名 学号
指导教师 肖明
实验报告评分:_______
实验3 FFT算法与离散时间信号的频域分析
实验目的1、加深对离散信号的DFT的理解;
2、熟练使用FFT函数并对信号进行幅频和相频分析。
二、实验原理
在MATLAB中,可以用函数X=fft(x,N)和x=ifft(X,N)计算N点序列的DFT正、反变换。N点序列的DFT和IDFT变换定义式如下:
,
,
利用旋转因子具有周期性,可以得到快速算法(FFT)。
在频域中,,幅度为,相位为。
三、实验内容
1、实序列。分别用一个64点和128点的fft函数计算幅度为,相位为,并绘出的图形。
2、已知某序列x(n)在单位圆上的N=64点傅立叶变换为:
用N点ifft程序计算。
3. 在噪声信号中寻找频率信号,考虑抽样频率1000Hz,信号为频率 50 Hz幅度0.7和频率120 Hz幅度1的两个正弦波之和,它被零均值的随机噪声污染,程序如下:
Fs = 1000; % 抽样频率
T = 1/Fs; % 抽样间隔
L = 1000; % 信号的长度
t = (0:L-1)*T; % 时间矢量
% 50 Hz 和120 Hz正弦波相加
x = 0.7*sin(2*pi*50*t) + sin(2*pi*120*t);
y = x + 2*randn(size(t)); % 加噪声
plot(Fs*t(1:50),y(1:50))
title(被噪声污染的信号)
xlabel(时间 (ms))
NFFT = 500;
Y = fft(y,NFFT)/L;
f = Fs/2*linspace(0,1,NFFT/2+1);
% 绘制单边幅度谱
plot(f,2*abs(Y(1:NFFT/2+1)))
title(信号y(t)的单边幅度谱)
xlabel(频率(Hz))
ylabel(|Y(f)|)
4. 对连续的单一频率周期信号按采样频率采样,截取长度N分别选N =20和N =16,观察其DFT结果的幅度谱。此时离散序列,即k=8。用MATLAB计算并作图,函数fft用于计算离散傅里叶变换DFT,程序如下:
k=8;n1=[0:1:19];xa1=sin(2*pi*n1/k);subplot(2,2,1)plot(n1,xa1)xlabel(t/T);ylabel(x(n));xk1=fft(xa1);xk1=abs(xk1);subplot(2,2,2)stem(n1,xk1)xlabel(k);ylabel(X(k));n2=[0:1:15];xa2=sin(2*pi*n2/k);subplot(2,2,3)plot(n2,xa2)xlabel(t/T);ylabel(x(n));xk2=fft(xa2);xk2=abs(xk2);subplot(2,2,4)stem(n2,xk2)xlabel(k);ylabel(X(k));
程序运行结果:
计算结果示于图1,(a)和(b)分别是N=20时的截取信号和DFT结果,由于截取了两个半周期,频谱出现泄漏;(c) 和(d) 分别是N=16时的截取信号和DFT结果,由于截取了两个整周期,得到单一谱线的频谱。上述频谱的误差主要是由于时域中对信号的非整周期截断产生的频谱泄漏。
实验心得:
经过这次的实验使我加深对离散信号的DFT的理解;熟练使用FFT函数并对信号进行幅频和相频分析。在MATLAB中,熟悉函数fft、ifft的使用;阅读扩展练习中的实例,学习在MATLAB中的实现FFT算法的实现;利用MATLAB编程完成计算,绘出相应图形。
原创力文档


文档评论(0)