1. MATLAB
1.1 MATLAB环境搭建
学习使用的话,网络上存在非常多的软件包,这里使用的是MATLAB R2018A版本。具体安装教程及下载地址见:
www.macxin.com/archives/4722.html
1.2 创建Simulink项目
1.2.1 选定模型的类型
在MATLAB的【主页】菜单,单击【Simulink】
依据自身需求选定模型,这里举例采用DSP类
选定后自动生成一个【低通滤波系统】
1.2.2 保存与运行模型
项目名称不要出现中文
启动运行模型,自动弹出【频谱分析仪】,实时显示波形
1.2.3 模型库
Simulink中集成了大量模型。当然也可以自行设计模型,具体创建方式见搜索引擎。
1.3 IIR滤波器仿真
1.3.1 系统模型架构
先把结构放出来,接下来一步步把它搭建出来:
主要有4路信号源、4路滤波器、频谱分析仪、示波器
信号源输出正弦波,经偏移补偿后送到加法器,合成输入信号
输入信号给到不同滤波器
滤波器的输入输出送到频谱分析仪、示波器
1.3.2 查找需要的模型
1.3.2.1 信号源
正弦波、噪音发生器:
1.3.2.2 补偿器Bias
输入加上一个固定偏差:
1.3.2.3 加法器
对所有输入信号求和,在其它模型列表中也有该模型:
1.3.2.4 滤波器
滤波器有多种形式的,这里以【Digital Filter Design】举例:
1.3.2.5 频谱分析仪
由于举例的系统模型是做音频信号滤波,这里直接使用音频的模型,省去相关配置:
1.3.2.6 示波器
1.3.3 模型的信号连接与命名
鼠标箭头停靠在模型左右的【>】上,【单击左键】即可自由拖动连接线
依次单击两个模型的【>】,也可完成二者的连接
鼠标左键双击,即可给信号线命名:
整理布局,完成所有接线:
1.3.4 模型参数配置
双击模型弹出配置窗口。
1.3.4.1 正弦波的参数
重点是采样率,这里配置为44.1KHz
每帧采样数不宜过多,这里为256
数据类型为整型
幅值、频率按需配置
其余信号源调整幅值、频率,其它配置保持一致
1.3.4.2 滤波器的参数
这里以高通滤波举例:
IIR滤波,采样率44.1KHz,截至频率5KHz,暂定8阶滤波
单击【Design Filter】,完成基本配置
在【Edit】中选定【Convert Structure】,打开窗口更换滤波模型:
1.3.4.3 频谱分析仪、示波器通道数配置
这里以频谱分析仪举例,双击模型,选择【File】【Number of Input Ports】【More】,更改通道数:
1.3.5 运行系统模型
1.3.5.1 示波器波形
整体高通、带通、低通的滤波效果都出来了:
1.3.5.2 高通滤波器的效果
1.3.5.3 带通滤波器的效果
1.3.5.4 低通滤波器的效果
黄色输入信号中有一条绿色输出信号,其频率为100Hz,基本吻合100Hz的基波信号:
1.3.5.5 频谱分析
当前是8阶的IIR滤波:
带通滤波效果并不好,低频、高频段都没有滤干净
高通滤波在中频段的效果也不好
1.3.6 调试模型的滤波参数
这里仍然采用IIR滤波器,只是增大滤波阶数,观察其频谱,32阶下:
带通滤波器基本上只保留了中频段(橙色线)
高通滤波器的输出(蓝色线),低频、中频段都很干净
1.3.7 这个模型有什么用
1.3.7.1 音箱的数字信号处理
高通滤波器提取高频信号
带通滤波器提取中频信号
低通滤波器提取低频信号
信号都提取出来了,那么就可以随心所欲地发挥。想搞重低音,就把低频信号放大一些,其余频段稍微抑制一下。
1.3.7.2 倒车雷达
使用带通滤波器,只提取模块发出的超声波信号,依据声速获得探测距离。
1.3.7.3 其它信号处理场景