热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

利用dft对连续信号进行频谱分析_实验4用DFT(FFT)对连续信号进行频谱分析 

电子信息工程系实验报告课程名称:数字信号处理成绩:实验项目名称:实验4用DFT(FFT)对连续信号进行频谱分析时间:2012

电子信息工程系实验报告

课程名称: 数字信号处理

成 绩: 实验项目名称:实验4 用DFT(FFT)对连续信号进行频谱分析 时间:2012-5-5

指导教师(签名): 班级:电信092 姓名:XXX 学号:910706201

实 验 目 的:

1、掌握用DFT(FFT)对模拟信号进行谱分析的方法,理解可能出现的分析误差及其原因, 以便在实际中正

确应用FFT。

2、熟悉应用FFT实现两个序列的线性卷积的方法。

实 验 环 境:

计算机、MATLAB软件

实 验 原 理:

1.用DFT(FFT)对连续信号进行频谱分析

首先一般的模拟信号(周期信号除外)的频谱是连续谱,而用FFT做谱分析得到的是数字谱,因此应该取FFT的点数多一些,用它的包络作为模拟信号的近似谱。另外,如果模拟信号不是严格的带限信号,会因为频谱混叠现象引起谱分析的误差,这种情况下可以预先将模拟信号进行预滤,或者尽量将采样频率取高一些。最后要注意一般的模拟信号是无限长的,分析时要截断,截断的长度与对模拟信号进行频谱分析的分辨率有关。如果要进行谱分析的模拟信号是周期信号,最好选择观测时间是信号周期的整数倍,并要尽量选择观测时间长一些,以减少截断效应的影响。在运用DFT(FFT)对模拟信号进行谱分析的过程中主要可能产生以下三种误差:混叠现象、截断效应、栅栏效应。

2.用FFT计算线性卷积

用FFT可以实现两个序列的圆周卷积。在一定的条件下,可以使圆周卷积等于线性卷积。一般情况,设两个序列的长度分别为N1和N2,要使圆周卷积等于线性卷积的充要条件是FFT的长度N(N≥N1+N2 ) 对于长度不足N的两个序列,分别将他们补零延长到N。当两个序列中有一个序列比较长的时候,我们可以采用分段卷积的方法。有两种方法:重叠相加法、重叠保留法。

实 验 内 容 和 步 骤:

x1(t)?R?(t) ?=1.5ms1、 用MATLAB编制程序产生以下实验信号: x2(t)?sin(2?ft??/8) 频率f自己选择

x3(t)?cos8?t?cos16?t?cos20?t

fs=64000; tp1=1.5/1000; t10=0:1/fs:tp1;

x1=ones(1,length(t10)); t11=(tp1+1/fs):1/fs:2*tp1;

x2=zeros(1,length(t11)); t1=[t10,t11]; x1t=[x1,x2];

subplot(3,1,1);plot(t1,x1t);axis([0,3/1000,0,1.5]);

f=201; fs=64000; tp2=1/10; t2=0:1/fs:tp2;

x2t=sin(2*pi*f*t2+pi/8); subplot(3,1,2);plot(t2,x2t);

fs=64000; tp3=1;

t3=0:1/fs:tp3;

x3t=cos(8*pi*t3)+cos(16*pi*t3)+cos(20*pi*t3);

subplot(3,1,3);plot(t3,x3t);

图1 x1(t)、x2(t)和x3(T)的信号波形图 2、

<1>fs&#61;64000; tp1&#61;3/1000; t1&#61;0:1/fs:tp1; gao&#61;1.5/1000;

qian&#61;ones(1,gao*fs); hou&#61;zeros(1,fs*(tp1-gao)); x1t0&#61;[qian,hou]; fs1&#61;4000;

x1t&#61;x1t0(1:fs/fs1:tp1*fs);

subplot(3,1,1);stem(0:1/fs1:(tp1*fs1-1)

/fs1,x1t);

fs2&#61;8000;

x1t&#61;x1t0(1:fs/fs2:tp1*fs);

subplot(3,1,2);stem(0:1/fs2:(tp1*fs2-1)/fs2,x1t); fs3&#61;16000;

x1t&#61;x1t0(1:fs/fs3:tp1*fs);

subplot(3,1,3);stem(0:1/fs3:(tp1*fs3-1)/fs3,x1t);

图2 对x1(t)选择不同采样频率的波形图

<2>

fs&#61;64000; f&#61;201; T&#61;1/f; fs2&#61;4*f; tp2&#61;0.5*T; t2&#61;0:1/fs:tp2;

x2t0&#61;sin(2*pi*f*t2&#43;pi/8); x2t&#61;x2t0(1:fs/fs2:tp2*fs); subplot(3,1,1);

stem(0:1/fs2:(tp2*fs2-1)/fs2,x2t); tp2&#61;T;

t2&#61;0:1/fs:tp2;

x2t0&#61;sin(2*pi*f*t2&#43;pi/8); x2t&#61;x2t0(1:fs/fs2:tp2*fs); subplot(3,1,2);

stem(0:1/fs2:(tp2*fs2-1)/fs2,x2t); tp2&#61;2*T;

t2&#61;0:1/fs:tp2;

x2t0&#61;sin(2*pi*f*t2&#43;pi/8); x2t&#61;x2t0(1:fs/fs2:tp2*fs); subplot(3,1,3);

stem(0:1/fs2:(tp2*fs2-1)/fs2,x2t);

图3 对x2(t)选择不同观测时间的波形图 <3>Fs&#61;64;T&#61;1/Fs;N&#61;16;n&#61;0:N-1;

x6nT&#61;cos(8*pi*n*T)&#43;cos(16*pi*n*T)&#43;cos(20*pi*n*T); X6k16&#61;fft(x6nT);X6k16&#61;fftshift(X6k16);

Tp&#61;N*T;F&#61;1/Tp; k&#61;-N/2:N/2-1;fk&#61;k*F;

subplot(3,1,1);stem(fk,abs(X6k16),&#39;.&#39;);box on

title(&#39;16点|DFT[x_6(nT)]|&#39;);xlabel(&#39;f(Hz)&#39;);ylabel(&#39;幅度&#39;); axis([-N*F/2-1,N*F/2-1,0,1.2*max(abs(X6k16))]) N&#61;32;n&#61;0:N-1;

x6nT&#61;cos(8*pi*n*T)&#43;cos(16*pi*n*T)&#43;cos(20*pi*n*T); X6k32&#61;fft(x6nT);X6k32&#61;fftshift(X6k32); Tp&#61;N*T;F&#61;1/Tp;k&#61;-N/2:N/2-1;fk&#61;k*F;

subplot(3,1,2);stem(fk,abs(X6k32),&#39;.&#39;);box on

title(&#39;32点|DFT[x_6(nT)]|&#39;);xlabel(&#39;f(Hz)&#39;);ylabel(&#39;幅度&#39;); axis([-N*F/2-1,N*F/2-1,0,1.2*max(abs(X6k32))]) N&#61;64;n&#61;0:N-1;

x6nT&#61;cos(8*pi*n*T)&#43;cos(16*pi*n*T)&#43;cos(20*pi*n*T);

X6k64&#61;fft(x6nT);X6k64&#61;fftshift(X6k64); Tp&#61;N*T;F&#61;1/Tp;k&#61;-N/2:N/2-1;fk&#61;k*F;

subplot(3,1,3);stem(fk,abs(X6k64),&#39;.&#39;); box on

title(&#39;64点|DFT[x_6(nT)]|&#39;);xlabel(&#39;f(Hz)&#39;);ylabel(&#39;幅度&#39;); axis([-N*F/2-1,N*F/2-1,0,1.2*max(abs(X6k64))])

图4 对x3(t)选择不同采样频率的幅频曲线图 3、利用DFT的方式计算下面两序列的线性卷积&#xff1a;

x(n)??1&#xff0c;2&#xff0c;1&#xff0c;1&#xff0c;2&#xff0c;1&#xff0c;1&#xff0c;2?(n?0)xn&#61;[1,2,1,1,2,1,1,2];hn&#61;[0,1,3,2,0];

L&#61;length(xn)&#43;length(hn);

XN&#61;fft(xn,L);HN&#61;fft(hn,L);YN&#61;XN.*HN;

&#xff0c;

h(n)??0&#xff0c;1&#xff0c;3&#xff0c;2&#xff0c;0?。 (n?0)yn1&#61;ifft(YN,L);

subplot(2,1,1);stem(0:L-1,yn1);axis([0,L&#43;1,0,10]); yn2&#61;conv(xn,hn);

subplot(2,1,2);stem(0:L-2,yn2);axis([0,L&#43;1,0,10]);

图5 DFT变换波形图 图6 matlab函数验证



推荐阅读
  • 清华大学出版社 | 杨丹:基于MATLAB机器视觉的黑色素瘤皮肤癌检测技术及源代码分析(第1689期)
    清华大学出版社 | 杨丹:基于MATLAB机器视觉的黑色素瘤皮肤癌检测技术及源代码分析(第1689期) ... [详细]
  • ButterKnife 是一款用于 Android 开发的注解库,主要用于简化视图和事件绑定。本文详细介绍了 ButterKnife 的基础用法,包括如何通过注解实现字段和方法的绑定,以及在实际项目中的应用示例。此外,文章还提到了截至 2016 年 4 月 29 日,ButterKnife 的最新版本为 8.0.1,为开发者提供了最新的功能和性能优化。 ... [详细]
  • 在ARM架构中,异常和中断共有7种,按照响应优先级从高到低排列,分别为:复位、未定义指令、数据中止、预取指令中止、快速中断(FIQ)、软件中断(SWI)和外部中断请求(IRQ)。这些异常和中断在中断向量表中依次排列,用于系统在发生相应事件时进行快速响应和处理。 ... [详细]
  • 在 Kubernetes 中,Pod 的调度通常由集群的自动调度策略决定,这些策略主要关注资源充足性和负载均衡。然而,在某些场景下,用户可能需要更精细地控制 Pod 的调度行为,例如将特定的服务(如 GitLab)部署到特定节点上,以提高性能或满足特定需求。本文深入解析了 Kubernetes 的亲和性调度机制,并探讨了多种优化策略,帮助用户实现更高效、更灵活的资源管理。 ... [详细]
  • 通过使用CIFAR-10数据集,本文详细介绍了如何快速掌握Mixup数据增强技术,并展示了该方法在图像分类任务中的显著效果。实验结果表明,Mixup能够有效提高模型的泛化能力和分类精度,为图像识别领域的研究提供了有价值的参考。 ... [详细]
  • 本文探讨了Android系统中支持的图像格式及其在不同版本中的兼容性问题,重点涵盖了存储、HTTP传输、相机功能以及SparseArray的应用。文章详细分析了从Android 10 (API 29) 到Android 11 的存储规范变化,并讨论了这些变化对图像处理的影响。此外,还介绍了如何通过系统升级和代码优化来解决版本兼容性问题,以确保应用程序在不同Android版本中稳定运行。 ... [详细]
  • 在 Angular Google Maps 中实现图片嵌入信息窗口的功能,可以通过使用 `@agm/core` 库来实现。该库提供了丰富的 API 和组件,使得开发者可以轻松地在地图上的信息窗口中嵌入图片。本文将详细介绍如何配置和使用这些组件,以实现动态加载和显示图片的功能。此外,还将探讨一些常见的问题和解决方案,帮助开发者更好地集成这一功能。 ... [详细]
  • 在Python中,是否可以通过使用Tkinter或ttk库创建一个具有自动换行功能的多行标签,并使其宽度能够随着父容器的变化而动态调整?例如,在调整NotePad窗口宽度时,实现类似记事本的自动换行效果。这种功能在设计需要显示长文本的对话框时非常有用,确保文本内容能够完整且美观地展示。 ... [详细]
  • 深入解析 Android TextView 中 getImeActionLabel() 方法的使用与代码示例 ... [详细]
  • 探索聚类分析中的K-Means与DBSCAN算法及其应用
    聚类分析是一种用于解决样本或特征分类问题的统计分析方法,也是数据挖掘领域的重要算法之一。本文主要探讨了K-Means和DBSCAN两种聚类算法的原理及其应用场景。K-Means算法通过迭代优化簇中心来实现数据点的划分,适用于球形分布的数据集;而DBSCAN算法则基于密度进行聚类,能够有效识别任意形状的簇,并且对噪声数据具有较好的鲁棒性。通过对这两种算法的对比分析,本文旨在为实际应用中选择合适的聚类方法提供参考。 ... [详细]
  • 计算机图形学基础:辐照度学原理与应用综述
    辐照度(irradiance)是指单位面积上接收到的电磁辐射功率,可视为入射点处的能量密度。在计算机图形学领域,辐照度计算是确定场景中每个位置光照效果的关键步骤。通过对辐照度的精确建模,可以实现更加逼真的光照渲染,提升视觉效果的真实感和沉浸感。本文综述了辐照度的基本原理及其在计算机图形学中的多种应用,探讨了当前研究的热点和技术挑战。 ... [详细]
  • 解决CentOS 6.4系统中sda磁盘包含BIOS RAID元数据的问题及专业应对策略
    解决CentOS 6.4系统中sda磁盘包含BIOS RAID元数据的问题及专业应对策略 ... [详细]
  • 本文介绍了如何通过HTML样式为网页标签添加各种视觉效果。通过使用CSS类和内联样式,开发者可以轻松地控制文本颜色、背景色、边框、字体大小等属性,从而提升网页的美观性和用户体验。示例代码展示了如何在HTML标签中应用这些样式,以便开发者能够快速上手并应用于实际项目中。 ... [详细]
  • 在Kubernetes上部署多个Mitmproxy代理服务器以实现高效流量管理 ... [详细]
  • 基于收支数据的聚类分析研究
    通过对收支数据进行聚类分析,研究发现聚类结果的解释和验证是关键步骤。为了确保分群的合理性和有效性,需要结合业务背景和实际需求,灵活选择合适的聚类数量。该研究利用Python中的Pandas和Matplotlib库对数据进行了预处理和可视化,为决策提供了科学依据。 ... [详细]
author-avatar
静默的温柔结成思念
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有