数字信号处理课程实验报告(数字信号处理需要什么基础)

问题重述 DSP课程实验计算机模拟产生多频率信号:编写通用的FFT子程序 设置参数,对信号进行频谱分析 对信号分别以满足和不满足奈奎斯特采样定理的采样率进行采样,观察其频谱变化 设计低通、高通、带通和带阻滤波器,对多频率信号进行滤波处理 撰写实验报告,内容包括实验步骤、流程图、源程序、设置参数、输出结果(图)、结果分析(结合原理)例如:模拟信号:用一个FFT处理…

大家好,又见面了,我是你们的朋友全栈君。

  • 问题重述

DSP课程实验

  • 计算机模拟产生多频率信号:

数字信号处理课程实验报告(数字信号处理需要什么基础)

  • 编写通用的FFT子程序
  • 设置参数,对信号进行频谱分析
  • 对信号分别以满足和不满足奈奎斯特采样定理的采样率进行采样,观察其频谱变化
  • 设计低通、高通、带通和带阻滤波器,对多频率信号进行滤波处理
  • 撰写实验报告,内容包括实验步骤、流程图、源程序、设置参数、输出结果(图)、结果分析(结合原理)

例如:模拟信号:

数字信号处理课程实验报告(数字信号处理需要什么基础)

用一个FFT处理器对其进行频谱分析,要求能分辨所有的频率分量,则

  • 1)最小信号记录长度应为多少?
  • 2)采样频率至少为多少?
  • 3)若采样频率为100Hz,则采样点数应取几点;
  • 4)若采样频率为50Hz,则频谱分析得到的信号频率分量有哪些?是否与信号实际频率分量一致?为什么?

 

  • 实验目的

  1. 实验所需知识覆盖离散傅里叶变换、数字滤波器设计、信号抽取与插值恢复、奈奎斯特定理等内容,通过实验加深对DSP课程内容的理解,巩固所学知识。
  2. 学会利用计算机编写通用FFT程序,对连续信号频谱波形进行分析。
  3. 学会应用DFT分析数字信号处理中常见问题及探寻解决方法。
  4. 熟悉高级程序语言的使用方法,包括常见函数的使用,图形绘制,多种库的调用和参数的调节。
  5. 增强在DSP方面的动手能力和自学能力。

 

  • 问题分析

按照题目要求,首先应利用计算机生成一个由多个频率叠加而成的信号。之后在不通风抽样频率之下对信号进行采样。编写FFT程序对信号进行DFT变换,应能观察出在满足和不满足奈奎斯特采样定理的情况下信号频谱分别处于不混叠和混叠状态。然后需要对信号进行恢复以观察满足或不满足奈奎斯特采样定理的情况下,频域的频谱混叠对时域恢复信号的影响。在频谱混叠时,观察其时域信号的失真。

在满足奈奎斯特采样定理的情况下,分别用数字低通、高通、带通和带阻滤波器对要求信号进行滤波处理,观察其频域的变化和时域波形变化。

本实验主要实现对时域信号的采样(A/D转换),滤波(数字信号处理),以及信号的插值恢复(D/A转换)等步骤。

  • 实验原理

数字信号的傅里叶变换,通常采用离散傅里叶变换(DFT)方法。但是DFT存在的不足就是计算量太大,很难进行实时处理。计算一个N点的DFT,一般需要N²次复数乘法和N(N-1)次复数加法运算。因此,当N较大或要求对信号进行实时处理时,往往难以实现所需运算速度。FFT是一种DFT的高效算法,它根据离散傅氏变换的奇、偶、虚、实等特性,对离散傅立叶变换的算法进行改进获得的。

DFT的运算为:

https://gss0.bdstatic.com/94o3dSag_xI4khGkpoWK1HF6hhy/baike/c0%3Dbaike72%2C5%2C5%2C72%2C24/sign=a53995cd9e25bc313f5009ca3fb6e6d4/1f178a82b9014a907ecf06beae773912b21beec4.jpg

由这种方法计算DFT对于  的每个K值,需要进行4N次实数相乘和(4N-2)次相加,对于N个k值,共需4N*N次实数相乘和(4N-2)*N次实数相加。改进DFT算法,减小它的运算量,利用DFT中  的周期性和对称性,使整个DFT的计算变成一系列迭代运算,可大幅度提高运算过程和运算量,这就是FFT的基本思想。FFT对于在计算机系统或者说数字系统中应用离散傅立叶变换,是很大改进。

有限长离散信号x(n),n=0,1,…,N-1的DFT定义为:

数字信号处理课程实验报告(数字信号处理需要什么基础)

 

可以看出,DFT需要计算大约N2次乘法和N2次加法。当N较大时,这个计算量是很大的。利用WN的对称性和周期性,将N点DFT分解为两个N/2点的 DFT,这样两个N/2点DFT总的计算量只是原来的一半,即(N/2)2+(N/2)2=N2/2,这样可以继续分解下去,将N/2再分解为N/4点 DFT等。对于N=2m 点的DFT都可以分解为2点的DFT,这样其计算量可以减少为(N/2)log2N次乘法和Nlog2N次加法。图为FFT与DFT-所需运算量与计算点数的关系曲线。由图可以明显看出FFT算法的优越性。

数字信号处理课程实验报告(数字信号处理需要什么基础)

 

将x(n)分解为偶数与奇数的两个序列之和,即

数字信号处理课程实验报告(数字信号处理需要什么基础)

 

x1(n)和x2(n)的长度都是N/2,x1(n)是偶数序列,x2(n)是奇数序列,则

数字信号处理课程实验报告(数字信号处理需要什么基础)

 

 

其中X1(k)和X2(k)分别为x1(n)和x2(n)的N/2点DFT。由于X1(k)和X2(k)均以N/2为周期,且WN k+N/2=-WN k,所以X(k)又可表示为:

 

上式的运算可以用图2表示,根据其形状称之为蝶形运算。依此类推,经过m-1次分解,最后将N点DFT分解为N/2个两点DFT。图3为8点FFT的分解流程。

https://images0.cnblogs.com/blog2015/322020/201504/221517478436569.jpg

https://images0.cnblogs.com/blog2015/322020/201504/221517552819063.jpg

FFT算法的原理是通过许多小的更加容易进行的变换去实现大规模的变换,降低了运算要求,提高了与运算速度。FFT不是DFT的近似运算,它们完全是等效的。

  • 流程图

DSP系统的基本组成

 

数字信号处理课程实验报告(数字信号处理需要什么基础)

实验主要步骤流程图

数字信号处理课程实验报告(数字信号处理需要什么基础)

 

  • 实验步骤

  • 计算机模拟产生多频率信号,取五个周期图像

 

数字信号处理课程实验报告(数字信号处理需要什么基础)

数字信号处理课程实验报告(数字信号处理需要什么基础)

 

 

以两倍奈奎斯特频率抽样

数字信号处理课程实验报告(数字信号处理需要什么基础)

 

 

对采样信号进行FFT运算

 

数字信号处理课程实验报告(数字信号处理需要什么基础)

取低频观察频谱特性

数字信号处理课程实验报告(数字信号处理需要什么基础)

 

对离散频域进行傅里叶反变换得到时域抽样信号并与愿信号比较

数字信号处理课程实验报告(数字信号处理需要什么基础)

 

​​​​​​​为了得到原不失真信号,对反变换得到的信号进行零值插入(每两个取样值之间插入7个零)

 

数字信号处理课程实验报告(数字信号处理需要什么基础)

​​​​​​​进行傅里叶变换获得周期延拓的频谱

 

数字信号处理课程实验报告(数字信号处理需要什么基础)

​​​​​​​通过截至频率为抽样点N一半N/2的理想低通滤波器

 

数字信号处理课程实验报告(数字信号处理需要什么基础)

​​​​​​​显示1/16观察低频

 

数字信号处理课程实验报告(数字信号处理需要什么基础)

​​​​​​​进行傅里叶反变换得到还原的时域波形

数字信号处理课程实验报告(数字信号处理需要什么基础)

 

​​​​​​​通过数字低通butterworth滤波器(截止频率10HZ)

 

 

数字信号处理课程实验报告(数字信号处理需要什么基础)

数字信号处理课程实验报告(数字信号处理需要什么基础)

​​​​​​​通过数字高通butterworth滤波器(截至频率30HZ)

 

 

数字信号处理课程实验报告(数字信号处理需要什么基础)

数字信号处理课程实验报告(数字信号处理需要什么基础)

​​​​​​​通过数字带通butterworth滤波器(截止频率(10HZ、30HZ)

 

 

数字信号处理课程实验报告(数字信号处理需要什么基础)

数字信号处理课程实验报告(数字信号处理需要什么基础)

​​​​​​​​​​​​​​通过数字带阻butterworth滤波器(截止频率(10HZ、30HZ)

 

数字信号处理课程实验报告(数字信号处理需要什么基础)

 

数字信号处理课程实验报告(数字信号处理需要什么基础)

 

 

  • 组别参数

奈奎斯特定理验证与信号恢复

组别

频率(f1,f2,f3)

振幅(A1,A2,A3)

信号记录长度(NT)

抽样频率

通过滤波器类型

第一组

(5,20,40)

(1.5,2,-1)

5

160HZ

无

第二组

(5,20,40)

(1.5,2,-1)

3

160HZ

无

第三组

(5,20,40)

(1.5,2,-1)

3

50HZ

无

第四组

(5,20,40)

(1.5,2,-1)

3

80HZ

无

第五组

(5,20,40)

(1.5,2,-1)

3

100HZ

无

第六组

(5,20,40)

(1.5,2,-1)

3

320HZ

无

 

信号通过理想滤波器

组别

频率(f1,f2,f3)

振幅(A1,A2,A3)

信号记录长度(NT)

抽样频率

通过滤波器类型

 

第七组

(5,20,40)

(1.5,2,-1)

3

160HZ

低通(f<10HZ)

第八组

(5,20,40)

(1.5,2,-1)

3

160HZ

高通

(f>30HZ)

第九组

(5,20,40)

(1.5,2,-1)

3

160HZ

带通

(10HZ<f<30HZ)

第十组

(5,20,40)

(1.5,2,-1)

3

160HZ

带阻

(f<10HZ|f>30HZ)

                       

信号通过butterworth滤波器

组别

频率(f1,f2,f3)

振幅(A1,A2,A3)

信号记录长度(NT)

抽样频率

通过滤波器类型

 

第十一组

(5,20,40)

(1.5,2,-1)

3

160HZ

低通(f<10HZ)

第十二组

(5,20,40)

(1.5,2,-1)

3

160HZ

高通

(f>30HZ)

第十三组

(5,20,40)

(1.5,2,-1)

3

160HZ

带通

(10HZ<f<30HZ)

第十四组

(5,20,40)

(1.5,2,-1)

3

160HZ

带阻

(f<10HZ|f>30HZ)

                     

 

 

  • 输出结果(图)

第一组输出结果图(实验步骤例):

数字信号处理课程实验报告(数字信号处理需要什么基础)

 

第二组输出结果图

 

数字信号处理课程实验报告(数字信号处理需要什么基础)

第三组输出结果图

 

数字信号处理课程实验报告(数字信号处理需要什么基础)

第四组输出结果图

 

数字信号处理课程实验报告(数字信号处理需要什么基础)

第五组输出结果图

 

数字信号处理课程实验报告(数字信号处理需要什么基础)

第六组输出结果图

 

数字信号处理课程实验报告(数字信号处理需要什么基础)

第七组输出结果图(通过理想低通滤波器)

 

数字信号处理课程实验报告(数字信号处理需要什么基础)

第八组输出结果图(通过理想高通滤波器)

 

数字信号处理课程实验报告(数字信号处理需要什么基础)

第九组输出结果图(通过理想带通滤波器10HZ~30HZ)

 

数字信号处理课程实验报告(数字信号处理需要什么基础)

第十组输出结果图(通过理想带阻滤波器,阻带10~30hz)

 

数字信号处理课程实验报告(数字信号处理需要什么基础)

第十一组输出结果图(通过10HZ butterworth低通滤波器)

数字信号处理课程实验报告(数字信号处理需要什么基础)

数字信号处理课程实验报告(数字信号处理需要什么基础)

 

数字信号处理课程实验报告(数字信号处理需要什么基础)

 

数字信号处理课程实验报告(数字信号处理需要什么基础)

第十二组输出结果图(通过30HZ butterworth高通滤波器)

数字信号处理课程实验报告(数字信号处理需要什么基础)

 

数字信号处理课程实验报告(数字信号处理需要什么基础)

 

数字信号处理课程实验报告(数字信号处理需要什么基础)

数字信号处理课程实验报告(数字信号处理需要什么基础)

第十三组输出结果图(通过10~30HZ butterworth带通滤波器)

数字信号处理课程实验报告(数字信号处理需要什么基础)

数字信号处理课程实验报告(数字信号处理需要什么基础)

 

数字信号处理课程实验报告(数字信号处理需要什么基础)

数字信号处理课程实验报告(数字信号处理需要什么基础)

第十四组输出结果图(通过10~30HZ butterworth带阻滤波器)

数字信号处理课程实验报告(数字信号处理需要什么基础)

数字信号处理课程实验报告(数字信号处理需要什么基础)

数字信号处理课程实验报告(数字信号处理需要什么基础)

数字信号处理课程实验报告(数字信号处理需要什么基础)

 

 

  • 结果分析

组别

频率(f1,f2,f3)

振幅(A1,A2,A3)

信号记录长度(NT)

抽样频率

是否混叠失真

第一组

(5,20,40)

(1.5,2,-1)

5

160HZ

否

第二组

(5,20,40)

(1.5,2,-1)

3

160HZ

否

第三组

(5,20,40)

(1.5,2,-1)

3

50HZ

是

第四组

(5,20,40)

(1.5,2,-1)

3

80HZ

是

第五组

(5,20,40)

(1.5,2,-1)

3

100HZ

否

第六组

(5,20,40)

(1.5,2,-1)

3

320HZ

否

对前六组实验结果图像的对比分析可得,抽样频率不大于奈奎斯特抽样频率,即两倍最高频率分量时,频谱发生混叠,产生混叠失真。由第三组,第四组可以看出,频域产生混叠,重建信号时域波形发生严重失真。其他各组无失真。即验证了奈奎斯特抽样定理。

组别

频率(f1,f2,f3)

振幅(A1,A2,A3)

抽样频率

通过滤波器类型

第一组

(5,20,40)

(1.5,2,-1)

160HZ

无

第七组

(5,20,40)

(1.5,2,-1)

160HZ

理想低通

(f<10HZ)

第十一组

(5,20,40)

(1.5,2,-1)

160HZ

butterworth低通

(f<10HZ)

第八组

(5,20,40)

(1.5,2,-1)

160HZ

理想高通

(f>30HZ)

第十二组

(5,20,40)

(1.5,2,-1)

160HZ

butterworth高通

(f>30HZ)

第九组

(5,20,40)

(1.5,2,-1)

160HZ

理想带通

(10HZ<f<30HZ)

第十三组

(5,20,40)

(1.5,2,-1)

160HZ

butterworth带通

(10HZ<f<30HZ)

第十组

(5,20,40)

(1.5,2,-1)

160HZ

理想带阻

(f<10HZ|f>30HZ)

第十四组

(5,20,40)

(1.5,2,-1)

160HZ

butterworth带阻

(f<10HZ|f>30HZ)

 

对于经过滤波器的组别和第一组比较,可以看出信号通过各个滤波器之后频域的变化,同时观测重建信号的时域可以看出信号通过高通、低通、带通、带阻滤波器后信号波形变化。可以依此看出,对于不同需求、可采用不同形式滤波器。对比理想滤波器和5阶butterworth滤波器的输出结果可已看出butterworth滤波器的滤波结果与理想滤波器的输出结果存在不同,其频谱变化较理想滤波器而言有一个过渡带宽,且阻带衰减不是理想值。与所学内容相吻合,验证了数字滤波器的内容。

  • 题目解答

            模拟信号:

 

用一个FFT处理器对其进行频谱分析,要求能分辨所有的频率分量,则

  • 1)最小信号记录长度应为多少?
  • 2)采样频率至少为多少?
  • 3)若采样频率为100Hz,则采样点数应取几点;
  • 4)若采样频率为50Hz,则频谱分析得到的信号频率分量有哪些?是否与信号实际频率分量一致?为什么?

 

数字信号处理课程实验报告(数字信号处理需要什么基础)

答:

  1. 最小信号记录长度应至少包含一个信号周期,xa(t)中三个信号分量频率分别为5HZ、20HZ、40HZ,故频率分辨率为5HZ,则xa(t)的最小周期T0为0.20s。即最小信号记录长度应为0.20s。
  2. 采样频率应大于奈奎斯特频率,xa(t)中三个信号分量频率分别为5HZ、20HZ、40HZ,则xa(t)的信号分量的最大频率为40HZ,即采样频率fs至少为80HZ。
  3. 采样点数N = T0/T,T0 = 0.2s,若频率为100HZ则T = 1/fs = 0.01s。则N = 20,由N = 2^L,则L取5时N取最小值32。即,采样点数应取32点。
  4. 若采样频率为50HZ,则信号频率分量有5HZ、10HZ、20HZ,因不满足奈奎斯特定理,频谱发生混叠,产生了新的频率分量10HZ,其为周期延拓吼-40HZ的频率分量出现在折叠频率(25HZ)范围内的误检分量。如实验第三组数据频谱图像所示。频谱混叠,对应的波形图发生失真。50HZ抽样对应结果如下图所示。

数字信号处理课程实验报告(数字信号处理需要什么基础)数字信号处理课程实验报告(数字信号处理需要什么基础)

  •  
  • 实验源码及实验详细步骤

实验平台 Jupyter Notebook

实验语言 Python

实验所运用科学计算库 numpy scipy signal

实验所运用绘图库matplotlib seaborn

实验源码:

见我的下载区

https://download.csdn.net/download/weixin_42733218/10942392

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/128937.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • phpstorm激活码2021 07_在线激活

    (phpstorm激活码2021 07)本文适用于JetBrains家族所有ide,包括IntelliJidea,phpstorm,webstorm,pycharm,datagrip等。https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~M…

    2022年3月21日
  • 大学《数据库系统》课程设计报告「建议收藏」

    大学《数据库系统》课程设计报告「建议收藏」湖南科技大学计算机科学与工程学院《数据库系统》课程设计题目:教学管理系统专业:计算机科学与技术年级:2017级班级:计科三班学号:170510323姓名:雨萱完成时间:2019年1月3日教务管理系统的分析与实现一.实验目的数据库系统课程设计是为了配合数据库原理及应用开发而…

    2022年5月12日
  • Android系统签名以及生成keystore秘钥

    Android系统签名以及生成keystore秘钥Android11系统签名以及keystore一、什么是系统签名Android下所有APP都要进行签名,而有些权限,只有系统签名了的APP可以拥有。而且需要在APP的AndroidManifest中添加以下IDandroid:sharedUserId=”android.uid.system”二、使用signapk.jar签名2.1找到对应文件(1)在根目录下创建keystore文件夹以方便工作(2)查找密钥和证书build/target/product/security/plat

    2022年6月21日
  • startActivityForResult报错「建议收藏」

    startActivityForResult报错「建议收藏」startActivityForResult报错!startActivityForResult(newIntent(MainActivity.this,OtherActivity.class),0);骗子!从教程、网上滴字不漏抄来的例子,运行居然报错!后来抄翻互联网,…

    2022年7月27日
  • 微软的远程桌面RD client_rdclient远程桌面app

    微软的远程桌面RD client_rdclient远程桌面app一、下载RDClient这个就不用多说了。。。二、设置PC允许远程桌面连接PC系统以win10为例:1、进入“远程设置”允许远程协助与远程桌面连接桌面右键单击“此电脑”,属性,单击左边“远

    2022年8月6日
  • safari对100vh的兼容问题[通俗易懂]

    safari对100vh的兼容问题[通俗易懂]需求:在以下的布局要求下,利用flex布局来实现,但需要在最外层给一个固定高度来控制页面高度及可滑动区域的可视高度很自然的利用100vh来控制最外层的高度,但测试过程中,发现safari浏览器中,页面的高度出现了偏差,比屏幕的高度还要高出一部分,出现了双层滚动条。经研究,发现safari的100vh是包含地址栏和功能列的,而其它浏览器100vh才是用户浏览器真正的可见区域(见下图)解决方案通过innerHeight重新定义一个变量代替vhsafariHacks(){letwin

    2022年5月29日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号