数字信号处理实验-用DFT计算连续信号的谱.docVIP

  • 11
  • 0
  • 约2.14千字
  • 约 5页
  • 2023-10-15 发布于湖北
  • 举报

数字信号处理实验-用DFT计算连续信号的谱.doc

西安交通大学实验报告 成绩 第 页 共 页 课 程 数字信号处理 系 别 实 验 日 期 年 月 日 专业班级 组别 交报告 日 期 年 月 日 姓 名 学号 报 告 退 发 (订正、重做) 同 组 者 教师审批签字 实验名称 用DFT计算连续信号的谱 一、实验目的: 1.学习用Matlab完成信号的DFT计算。 2.了解用DFT对连续周期信号进行谱分析可能产生的误差。 二、实验内容及要求: 1. 有一单频信号x(t)=sin(2πft) 若 ①f=f1=15Hz ②f=f2=2Hz 分别用DFT求x(t)的谱。 要求:①抽样频率fs以不发生混叠为宜。 ②记录长度tp应取整数周期。 ③用stem语句绘出幅度谱,横坐标为模拟频率f。用plot画出时域波形。 有一复频信号x(t)=sin(2πf1t)+ sin(2πf2t) 其中 f1=15Hz ,f2=2Hz 当 T=0.01s时,求: ① N=100时x(t)的幅度谱并图示;(用stem语句绘出幅度谱) ② N=50时x(t)的幅度谱并图示。(用stem语句绘出幅度谱) 请分别预测①与②是否逼近真实的谱?如有误差,请分析原因。 三、实验内容程序及结果 1、运行程序如下: n=0:5; n1=0:0.01:6; n1=n1./45; fs1=45;T1=1/fs1; x=sin(2*pi*15*n.*T1); x1=sin(2*pi*15*n1); subplot(221);plot(n1,x1) xlabel(时间);ylabel(信号); y=abs(fft(x)); y=y(1:4); f=(0:3)*15/2; subplot(222);stem(f,y) xlabel(频率(Hz));ylabel(幅值); n=0:5; n1=(0:0.01:6)/6; fs2=6;T2=1/fs2; x=sin(2*pi*2*n.*T2); x1=sin(2*pi*2*n1); subplot(223);plot(n1,x1) xlabel(时间);ylabel(信号); y=abs(fft(x)); y=y(1:4); f=(0:3)*2/2; subplot(224);stem(f,y) xlabel(频率(Hz));ylabel(幅值); 运行结果如下图所示: 实验结果分析: ①要使得在抽样过程中不发生混叠现象,那么根据抽样定理,抽样频率fs应大于2*f,故取fs=3*f,即fs1=45 Hz ,fs2=6 Hz,这样抽样后就不会发生混叠的问题。 ② 记录长度tp取了2个整周期,因取抽样频率为原始频率的3倍,因此每个周期应该含有3个点,2个周期含有6个点,故设置n=0:5。如果tp不为整数个周期,则会出现频谱泄漏现象。 ③ 要求横坐标为模拟频率f,因为由DFT运算出来的结果为时域、频域都是离散周期的序列,所以要求把频域横坐标化为模拟频率。设计算出来的模拟频率里每个样点间的间隔为f0,取的样点个数为N, 则有:2*pi*f/fs=2*pi*k/N, 可得:f= fs* k/N,其中N=6,fs=3f0,所以f=k* f0/2 运行程序如下: N1=0:99; N2=0:49; T=0.01; f1=15; f2=2; x=sin(2*pi*f1*T*N1)+sin(2*pi*f2*T*N1); y=fft(x); y=abs(y); subplot(121);stem(N1,y) xlabel(频率);ylabel(幅值); x=sin(2*pi*f1*T*N2)+sin(2*pi*f2*T*N2); y=fft(x); y=abs(y); subplot(122);stem(N2,y) xlabel(频率);ylabel(幅值) 运行结果如下图所示: 问题:请分别预测①与②是否逼近真实的谱?如有误差,请分析原因。 答:由已知的时域t轴上的最小间隔T和采样点数N,即可确定抽样频率和记录长度。由实验结果可得,①与②之间有较大的区别,其中①更符合真真实的谱子。因为当N=100时,取的为复频信号的整数个周期,而当N=50时不为整数周期,因此会产生频谱泄漏现象,所以①的结果逼近真实的谱,而②则不逼近真实情况。 实验结果分析:这道题目很直观的表现出频谱泄漏的现象,让我明白了这种现象出现的原因,和应该避免的措施。 实验心得体会 通过本次实验,我熟悉了进行DFT运算中的常用指令,掌握了运用MATLAB语言快速实现信号的

文档评论(0)

1亿VIP精品文档

相关文档