大概了解同学们数字信号处理的基础以及信号与系统的基础后,开始了专业基础课的讲解和程序仿真。
本系列之绪论的两篇文章在手机上显示的时候,由于版本的不同造成显示稍有差异。安卓系统和苹果系统里面关于字母i的显示存在差异。请各位同学注意。
专业基础课的知识是我们这个专业的基础内容,所以很多概念必须非常清楚。《信号与系统》就是专业基础课,《数字信号处理》是在其基础之上的一门专业课。因此第一堂课需要给同学们打下最牢靠的概念基础,光讲理论,很枯燥!结合实际仿真,能够加深了解。
更为关键的是,可以通过编写程序引发很多思考,自己编写程序的过程才是真正掌握知识的过程。至少我当年就是这样一步一步把数字信号处理的知识掌握牢靠的(有点自夸了)。
自适应滤波的内容是在数字信号处理之上的专业内容,这方面的知识对我而言,也需要一个再提高的过程,不过对于卡尔曼滤波本人还是很熟悉的,源于这个卡尔曼滤波在导航数据处理中经常被使用。这就意味着本人对卫星导航领域的知识是非常了解的。在后续的《产品仿真》系列文章中将会涉及到产品级的GPS接收机的算法代码!
知识就是这样一步一步叠加的!
不过现在针对本科教学,《数字信号处理》课本知识的难度已经足够了。必须再次强调信号在频域和时域的表现形式和滤波器是信号与系统及数字信号处理的核心内容。
必须掌握。
本次课的内容如下:(只能给出部分示例,完整的内容必须通过同学们自己的思考来获得。喜欢这种讲课方式的同学可以给我留言。)
实验一生成信号和滤波器,了解FFT变换和滤波过程
编程前:熟悉傻瓜式的编程语言——matlab。
实验大纲:
了解和熟悉使用fft、fir1、filter等函数;
了解如何生成信号和查看信号的频谱;
了解如何生成滤波器,如何滤波?
建立时域和频域的概念。
熟悉程序的规范化编写过程,养成良好的编程习惯。培养自己独立解决问题的能力(比如通过网络搜索、查看书本对应的章节内容等方式)。
具体内容:
1.掌握如何通过MATLAB函数来产生信号,并了解信号分析所涉及的常用函数的使用方法和意义。
2.了解熟悉fft算法和函数,学会如何分析信号的频谱。
3.如何通过分析信号的频谱来计算信号频点,了解最小分辨率、频率泄露等概念。
4.通过MATLAB函数来设计fir低通滤波器,实现信号的低通滤波。
5.通过网络解决编程中出现的问题,并强化上述基本概念。
使用函数时会涉及到参数的使用,这会在第二堂课中详细讲述。
先了解FIR滤波器的特点和架构。
基本理论知识
只需要先了解横截型结构即可,这是最常用也是最实用的结构。
观察低通滤波器的频率响应函数曲线。
频率响应是个什么东东?
同学们应该回去找资料!
MATLAB代码:
fir_low_filter=fir1(128,0.2);
%使用MATLAB的fir1函数生成低通滤波器
(其中128为滤波器的阶数,0.2为低通滤波器的带宽)
怎么会有这么高的阶数?
阶数越高,会有什么效果呢?
freqz(fir_low_filter );
%用freqz()显示频率响应曲线
在讲第二章内容之前会给出完整的signal_process_sim1程序。
给出程序前,希望大家自己先在网上搜索相关内容,然后再对照标准程序加强理解。
劝告同学们必须学好英文,不然不能准确的使用很多函数。英文学习和编程的学习可以互相促进。
本课程的内容可以结合公众号中的必修课程《数字信号处理》来学习,相得益彰。
修订记录
20161030 完成初稿;
20170117 修订内容;
20170407 修订格式;
20170428 修订错字;
20180102 修订内容;
领取专属 10元无门槛券
私享最新 技术干货