1、GUI界面设计
图形用户界面(GUI)是指由窗口、菜单、图标、按键、对话框和文本等各种图像对象组成的用户界面。在Matlab中最常用Guide和App designer两种工具设计GUI,在这里选择设计简单、功能较多且面向对象的App designer。App designer组件库提供了大多数UI组件,可以直接拖放到画布上进行布局,然后再组件的回调函数中进行代码的编写。每个组件就是UI对象的属性,而回调函数就是UI中的方法。对于每个组件,都有其特定的对象名和属性,可以通过更改对象名来进行调用该组件,更改属性值来改变组件的外观、初值、以及一些组件自带的功能。
2、信号生成
(1)多频正弦(测试信号)
多频正弦信号使用如下的for循环生成,方便控制生成的频率成分,可输入采样频率Fs和采样点数N,默认分别为100Hz和256。
(2)数字音频
以voice.wav做默认的音频输入源,通过audioread()函数读取音频信号,分别用以下if else语句判断是否加入白噪声、单频噪声、高斯噪声、多频噪声,使用audiowrite()可以将加入噪声后的信号写入音频文件voice1.wav,方便后续播放(使用sound()函数)加噪后的音频。
3、频谱分析
将信号做快速傅里叶变换,调用方式为Y=fft(X,N),尽量选用N为2的幂次,计算速度会显著变快。然后作出Y的幅频特性曲线和相频特性曲线,对信号做频域的分析。
4、滤波器设计
(1)巴特沃斯低通模拟滤波器设计原理
巴特沃斯低通模拟滤波器的幅度平方函数 ∣ H a ( j Ω ) ∣ 2 \left| H_{a}(j\Omega) \right|^{2} ∣Ha(jΩ)∣2用下式表示:
∣ H a ( j Ω ) ∣ 2 = 1 1 + ( Ω Ω c ) 2 N \left| H_{a}(j\Omega) \right|^{2} = \frac{1}{1 + \left( \frac{\Omega}{\Omega_{c}} \right)^{2N}} ∣Ha(jΩ)∣2=1+(ΩcΩ)2N1
式中,N称为滤波器的阶数, Ω c \Omega_{c} Ωc是3dB截止频率。
阶数N的大小主要影响通带幅频特性的平坦程度和过渡带、阻带的幅度下降速度,它由技术指标 Ω p \Omega_{p} Ωp、 α p \alpha_{p} αp、 Ω s \Omega_{s} Ωs、 α s \alpha_{s} αs确定,则N表示为:
N = lg ( 1 0 α 10 − 1 1 0 α 10 − 1 ) 2 l g ( Ω s Ω p ) N = \frac{\lg\left( \frac{10^{\frac{\alpha}{10}} - 1}{10^{\frac{\alpha}{10}} - 1} \right)}{2lg\left( \frac{\Omega_{s}}{\Omega_{p}} \right)} N=2lg