一、实验目的与原理
1.1 实验目的
(1)掌握信号抽取和内插的综合利用方法
(2)理解信号抽取和内插后频谱的变化。
1.2 实验原理
信号的整数倍抽取是为了降低信号的采样频率,常用符号↓D 表示。设x(n) 是连续时间信号x。(t)以时间T 为间隔的采样序列,采样频率为 F=1/T。对x(n)每 D 点取1点构成新序列y(n):
若x(n)的序列傅里叶变换为X(el⁰),则y(n) 的傅里叶变换为:
整数倍抽取导致信号的数字频谱展宽, 一般为防止抽取引起频谱混叠,可在第 一次采样之后通过一个过渡带较陡、截止频率为π/D 的数字滤波器然后再抽取,如图6.1所示。
信号的整数倍内插与整数倍抽取的作用恰好相反,它能够将采样频率提高,常用符号⬆I 表示。在x(n)相邻样点间插 I-1 个零后,得到序列:
则:
在序列相邻采样点之间插零导致信号数字频谱压缩,若将v(n)通过一个增益为 I、截止频率为π/I 的低通滤波器就可以将压缩后产生的镜像频谱滤除,获得 采样频率为 IF 的序列,如图所示。
信号的整数倍抽取和内插虽然可以改变信号的采样频率(整数倍变化),但 仍然无法满足实际应用。例如在数字调制信号的解调过程中,往往要求采样率 是数字信号码元速率的整数倍,而系统的采样频率一般是固定的,因此对不同 码元速率的信号,整数倍降采样之后一般满足不了采样速率是码元速率的整数倍的要求。此时,我们需要进行采样率的非整数倍转换即分数倍采样率转换。
设分数倍转换比为 R=I/D,一般可以通过先进行I 倍内插,再进行D 倍抽取来实现。根据图6.1和6.2,可得分数倍转换的框图如图所示。
当 R=I/D中的D 和 I 数值较大时,应该分级进行采样率转换。
二、实验内容
用MATLAB 编程,将给定的实际音频数据文件(wav)读出,每个音频文件均加有单载波干扰,后缀为50 的表明采样频率为50kHz,后缀为28 的表明采样频率为28kHz,要求分别将音频文件读出,估计干扰频率,进行分数倍采样率转换,以16kHz 的采样频率通过声卡播出,声音不能失真同时能滤除单载波干扰。
三、程序代码说明
以上为基于MATLAB的主程序,其主要功能是利用audioread函数实现wav格式音频文件的读取并将其信号存储为一位向量的形式并读取其默认采样率。通过快速傅里叶变化得到其频域曲线,通过绘制其幅频特性曲线,找到高能量的噪声信号。通过lowpass函数实现低通滤波,得到无噪信号。在通过理论计算,得到采样率变化之比。通过interp和downsample实现内插和抽取,从而完成采样率的变换。再通过绘制两个信号采样率变化之后的幅频特性曲线,观察其频谱,最终看到两个曲线相同,得到验证。最终播放两个音频,发现无噪无失真,完成实验。
四、实验结果与分析
4.1 估计出干扰频率,给出低通滤波器的设计参数及选取原则
可以观察到两信号均在9khz处有一高能噪声干扰。
设计滤波器参数。
得到两路无噪信号
4.2 画出分数倍采样率转换过程中各序列的频谱
4.3 分析转换过程是否需要分级实现,给出最佳实现方案
通过理论分析得到28khz的信号转换比为7/4。 50khz的信号转换比为25/8.后者转化比较大,单步完成会导致计算量急剧增加。在处理器性能一般时可能出现处理时间过长,无法实现实时转化的问题。故在本次实验中最终采用分级采样率转换的方式。第一次为5/4第二次为5/2最终得到25/8的采样率转换的效果。
五、总结
本次实验主要考察了采样率分数倍转换的内容。通过整数倍的内插和整数倍抽取,实现了分数倍的转换。在实验过程中不可避免的会出现一些问题,例如滤波器性能的问题,由于50khz信号的噪声信号能量较大,滤波器衰减系数不高,故为避免过渡带影响,将阻带前移,从而完成有效滤波。
关于由于分数倍转化系数较大的问题,通过分级变换可以有效缓解运算量大,数据存储量大的问题。
这是一篇我的课程实验报告,源码和音频附件不方便公开上传,如有需要请及时联系。