《数字信号处理》课程设计,基于MATLAB的音乐信号处理和分析解析
基于Matlab的音频信号处理与分析技术研究

基于Matlab的音频信号处理与分析技术研究一、引言音频信号处理与分析技术是数字信号处理领域中的重要研究方向之一,随着数字音频设备的普及和发展,对音频信号的处理和分析需求也日益增加。
Matlab作为一种功能强大的科学计算软件,被广泛应用于音频信号处理领域。
本文将探讨基于Matlab的音频信号处理与分析技术的研究现状和发展趋势。
二、音频信号处理基础在深入研究基于Matlab的音频信号处理技术之前,首先需要了解音频信号的基本特性和处理方法。
音频信号是一种连续时间信号,通常以数字形式表示。
常见的音频信号处理包括采样、量化、编码等步骤,这些步骤对后续的信号处理和分析至关重要。
三、Matlab在音频信号处理中的应用Matlab提供了丰富的工具箱和函数,可以方便地进行音频信号处理和分析。
通过Matlab,可以实现音频文件的读取、播放、滤波、时域分析、频域分析等功能。
同时,Matlab还支持自定义算法和函数,使得用户可以根据实际需求进行灵活的处理。
四、音频信号处理算法在音频信号处理中,常用的算法包括时域滤波、频域滤波、时频分析等。
这些算法在Matlab中都有相应的实现方式,用户可以根据具体情况选择合适的算法进行处理。
例如,通过时域滤波可以去除噪声;通过频域分析可以提取信号的频谱信息;通过时频分析可以观察信号在时域和频域上的变化。
五、Matlab工具箱在音频信号处理中的应用Matlab提供了许多专门用于音频信号处理的工具箱,如Signal Processing Toolbox、Audio Toolbox等。
这些工具箱包含了丰富的函数和工具,可以帮助用户快速高效地进行音频信号处理和分析。
用户可以根据需要选择合适的工具箱,并结合自身需求进行定制化处理。
六、实例分析为了更好地说明基于Matlab的音频信号处理与分析技术,我们以语音识别为例进行实例分析。
语音识别是一种重要的应用场景,涉及到语音信号的采集、预处理、特征提取、模式匹配等多个环节。
数字信号处理实训课程学习总结应用MATLAB实现音频和像处理算法

数字信号处理实训课程学习总结应用MATLAB实现音频和像处理算法数字信号处理实训课程学习总结应用MATLAB实现音频和图像处理算法数字信号处理在现代科技领域中扮演了重要的角色,它涉及到音频、图像、视频等方面的处理和分析。
在数字信号处理实训课程中,我们学习了如何使用MATLAB来实现音频和图像处理算法。
本文将对这门课程的学习经验进行总结,并介绍我在实践中应用MATLAB实现的音频和图像处理算法。
首先,在课程学习中,我们深入了解了数字信号处理的基本概念和原理。
我们学习了数字信号的采样、量化、编码等基础知识,以及离散时间信号和连续时间信号的转换方法。
这些理论知识为我们后续的实践操作打下了坚实的基础。
在音频处理方面,我们学习了如何利用MATLAB实现音频信号的滤波、降噪、均衡器等算法。
以降噪算法为例,我们首先使用MATLAB加载音频文件,然后通过调用降噪算法函数,对音频信号进行噪声分析和滤波处理。
经过处理后的音频信号清晰度得到了显著提升。
另外,我们还学习了音频信号的频谱分析方法,通过绘制音频信号的频谱图,可以更直观地观察信号频率成分的分布情况。
在图像处理方面,我们学习了图像的表示和处理方法。
通过使用MATLAB的图像处理工具箱,我们能够实现图像的平滑、锐化、边缘检测等算法。
以图像平滑算法为例,我们首先加载图像文件,并将图像数据转换为矩阵形式进行处理。
通过调用平滑算法函数,我们可以对图像进行模糊处理,从而达到减少图像噪声和平滑图像纹理的目的。
此外,我们还学习了图像变换方法,如傅里叶变换和小波变换,它们在图像处理中有着广泛的应用。
在实践过程中,我深刻体会到了数字信号处理的实用性和重要性。
通过应用MATLAB实现音频和图像处理算法,我能够更加直观地感受到这些算法对信号和图像质量的影响。
同时,我也发现了一些问题和挑战。
比如,在实际处理中,我们需要考虑算法的时间复杂度和资源消耗,以保证实时性和效率。
另外,对于复杂的音频和图像处理算法,我们还需要对其进行优化和改进,以提高处理结果的精度和准确性。
基于MATLAB的音频信号的分析与处理

HEBEINONGJI 农 机
机电·教育·推广
摘 要:本文主要通过 matlab 编程处理音频信号,并设计基本回声系统、IIR 和 FIR 滤波器,分析信号的时域、频域及 音频信号的特点,最终得到对音乐信号处理的结果。
关键词:matlab 程序;音频信号;滤波器设计
基于 MATLAB 的音频信号的分析与处理
与原声音乐对比,再观察滤波后的信号与原信号对比,最终确定
合适的 a 值。 2.2 程序 单回声滤波器 T=0.3; a=0.7; b1=[1,zeros(1,T*f-1),a] ; w=-pi:2*pi/1024:pi; [H,w]=freqz(b1,a); plo(t w/2*pi,abs(H)) figure plo(t w/2*pi,angle(H)) y1=filte(r b1,1,x); sound(y1,f) 无限回声滤波器 b2=[zeros(1,T*f),1]; a2=[1,zeros(1,T*f-1),-a]; w=-pi:2*pi/1024:pi; [H2,w]=freqz(b2,a2); plo(t w/2*pi,abs(H2)) figure plo(t w/2*pi,angle(H2)) 全通滤波器 b3=[a,zeros(1,T*f-1),-1]; a3=[1,zeros(1,T*f-1),-a]; [H3,w]=freqz(b3,a3,1024); plo(t w/2*pi,abs(H3)) plo(t w/2*pi,abs(H3)) 2.3 分析与结论 (1)单回声滤波器又称为梳状滤波器。 (2)信号通过单回声、无限回声滤波器后的幅值与相位均发
46
2019 年 IIR 程序 Fdatool plo(t x) hold on [b3,a3]=t(f Hdi); x1=filte(r b3,a3,x); sound(x1,f)) sound(x,f) plo(t x1,'r') figure X=ff(t x); N=length(x); f1=0:f/N:f-f/N; plo(t f1/1000,abs(X)); hold on Xi=ff(t x1); Ni=length(x1); fi=0:f/Ni:f-f/Ni; plot(fi/1000,abs(Xi),'r') 2.3.2.1FIR 程序 fdatool a=0.7; [b4,a4]=t(f Hdf); x2=filte(r b4,a4,x); sound(x2,f) Xf=ff(t x2); Nf=length(x2); ff=0:f/Nf:f-f/Nf; plot(ff/1000,abs(Xf)) 2.3.3 分析结论 (1)信号经低通滤波器后,高频分量被滤除。 (2)相同指标下,IIR 滤波器比 FIR 滤除效果好。 (3)经滤波器滤波后,音乐信号声音更加圆润,噪声更小。 参考文献: [1]高西全,丁美玉.数字信号处理[M].西安电子科技大学出版 社,2000. [2]陈亚勇.MATLAB 信号处理详解[M].人民邮电出版社,2000. [3]杨树斌.数字信号处理实践教程(第一版)[M].华中科技大 学出版社,2010.
实验一基于Matlab的数字信号处理基本分析解析

实验一基于Matlab的数字信号处理基本操作一、实验目的:学会运用MATLAB表示的常用离散时间信号;学会运用MATLAB实现离散时间信号的基本运算。
二、实验仪器:电脑一台,MATLAB6.5或更高级版本软件一套。
三、实验内容:(一) 离散时间信号在MATLAB中的表示离散时间信号是指在离散时刻才有定义的信号,简称离散信号,或者序列。
离散序列通常用X(n)来表示,自变量必须是整数。
离散时间信号的波形绘制在MATLAB中一般用stem函数。
stem函数的基本用法和plot函数一样,它绘制的波形图的每个样本点上有一个小圆圈,默认是空心的。
如果要实心,需使用参数“fill ”、“filled ”,或者参数“.”。
由于MATLAB中矩阵元素的个数有限,所以MATLAB 只能表示一定时间范围内有限长度的序列;而对于无限序列,也只能在一定时间范围内表示出来。
类似于连续时间信号,离散时间信号也有一些典型的离散时间信号。
1. 单位取样序列单位取样序列、:(n),也称为单位冲激序列,定义为和、? ⑴=0)o(n)=丿0 (n 式0)要注意,单位冲激序列不是单位冲激函数的简单离散抽样,它在n=0处是取确定的值1。
在MATLAB中,冲激序列可以通过编写以下的impDT.m文件来实现,即function y=impDT(n)y=(n==0); %当参数为0时冲激为1,否则为0调用该函数时n必须为整数或整数向量。
【实例1-1】禾U用MATLAB的impDT函数绘出单位冲激序列的波形图。
解:MATLAB源程序为>>n=-3:3;>>x=impDT(n);>>stem(n,x,'fill'),xlabel('n'),grid on>>title('单位冲激序列’) >>axis([-3 3 -0.1 1.1])1程序运行结果如图1-1所示。
基于MATLAB的音频信号分析与处理研究

基于MATLAB的音频信号分析与处理研究随着现代科技的迅速发展,人们生活中的技术产品越来越多,手机、电脑、智能家居等等产品无不需要用到音频信号的处理。
然而,音频信号的分析和处理技术仍然是一个重要的研究领域,MATLAB作为一个强大的科学计算软件,已经成为音频信号处理中不可或缺的工具。
音频信号处理的基础是信号的采样和量化。
信号采样是指将模拟信号转换为数字信号的过程,采样频率越高,则采样的足够密集。
量化是将连续的采样点转换为数字表示的过程。
MATLAB提供了丰富的函数,可以简化这个步骤的执行。
通过建立音频处理模型,可通过MATLAB工具进行处理,实现对音频信号的录制、剪辑、滤波、模拟等任务。
音频信号的分析是指在时域和频域上对音频信号进行数学处理分析的过程。
时域分析时,我们利用MATLAB绘制波形图,根据波形图的形状和变化,可以很直观地判断出音频信号的一些特征。
频域分析时,我们利用MATLAB FFT变换函数,将信号从时域转换为频域,进而得到信号频率分布的情况。
此外,MATLAB也提供了一些现成的工具箱,如信号处理工具箱和波形工具箱,可以帮助我们更方便地进行音频信号处理,简化代码编写过程。
音频信号处理应用广泛,如语音识别、音频噪声消除、歌曲推荐系统等等。
其中,语音识别是一个需要进行音频信号处理的重要领域。
语音识别的关键在于对语音信号进行唤醒和分割等预处理。
MATLAB可以用于实现这些预处理,并生成分割后的音频文件。
这些文件可以进一步被用于训练机器学习模型,从而完成语音识别的任务。
此外,音频噪声也是一个常见的处理问题。
MATLAB中提供了一些去噪函数,可以帮助我们去除环境噪声。
这些函数基于数字信号处理的原理,可以选择不同类型的滤波器,对噪声信号进行消除。
在处理时,我们需要根据实际情况来选择合适的参数来调整滤波器的参数。
总的来说,MATLAB提供了强大的工具,可以极大地简化音频信号的处理和分析工作。
在实际使用过程中,我们可以根据不同的需求,选择不同的函数进行使用。
数字信号处理课程设计报告-基于MATLAB的语音信号的特技处理

数字信号处理课程设计报告-基于MATLAB的语音信号的特技处理xxxx数字信号处理课程设计报告题目:基于MATLAB 的语音信号的特技处理系 (院): 计算机工程学院专业: 通信工程班级: 通信xx班学号: xxxxxxxx姓名: xxx指导教师: xxx学年学期: 2009 ~ 2010 学年第 1 学期2009年12月 18 日设计任务书课题基于MATLAB 的语音信号的特技处理名称1. 巩固所学的数字信号处理理论知识,理解信号的采集、处理、传输、显示和存储过程;设计2. 综合运用专业及基础知识,解决实际工程技术问题的能力; 目的3. 学习资料的收集与整理,学会撰写课程设计报告。
1. 微型电子计算机(PC); 实验环境 2. 安装Windows 2000以上操作系统,MATLAB等开发工具。
1. 选择一个语音信号作为分析的对象,或录制一段各人自己的语音信号,并对其进行频谱分析; 然后在时域用数字信号处理方法将信号加入延时和混响,再分析其频谱,并与原始信号频谱进行比较;最后设计一个信号处理系统界面。
2. 利用课余时间去图书馆或上网查阅课题相关资料,深入理解课题含义及设计要求,任务注意材料收集与整理; 要求3. 在第15周末之前完成预设计,并请指导教师审查,通过后方可进行下一步工作;4. 结束后,及时提交设计报告(含纸质稿、电子稿),要求格式规范、内容完整、结论正确,正文字数不少于3000字(不含代码)。
工作进度计划序号起止日期工作内容2009.12.14~2009.12.14 在预设计的基础上,进一步查阅资料,完善设计方案。
12009.12.14~2009.12.17 设计总体方案,构建、绘制流程框图,编写代码,上机调试。
22009.12.17~2009.12.18 测试程序,完善功能,撰写设计报告。
32009.12.18 参加答辩,根据教师反馈意见,修改、完善设计报告。
4指导教师(签字):年月日摘要语音是人们交流思想和进行社会活动的最基本手段,我们要对语音信号进行测定并将其转变为另一种形式,以提高我们的通信能力。
基于MATLAB的数字信号处理..
数字信号处理课程设计报告题目:语音数字信号处理与分析及Matlab实现系别通信工程专业班级学生姓名学号指导教师提交日期摘要本次课程设计综合利用数字信号处理的理论知识进行语音信号的频谱分析,通过理论推导得出相应结论,再利用MATLAB作为编程工具进行计算机实现,从而加深对所学知识的理解,建立概念。
本次课程设计要求利用MATLAB对语音信号进行分析和处理,要求学生采集语音信号后,在MATLAB软件平台进行频谱分析;并对所采集的语音信号加入干扰噪声,对加入噪声的信号进行频谱分析,设计合适的滤波器滤除噪声,恢复原信号。
待处理语音信号是一个在20Hz~20kHz 频段的低频信号。
采用了高效快捷的开发工具——MATLAB,实现了语音信号的采集,对语音信号加噪声及设计滤波器滤除噪声的一系列工作。
利用采样原理设计了高通滤波器、低通滤波器、带通滤波器、带阻滤波器。
同学通过查阅资料自己获得程序进行滤波器的设计,能过得到很好的锻炼。
关键词:MATLAB 滤波器数字信号处理目录第一章绪论 (1)1.1 设计的目的及意义 (1)1.2 设计要求 (1)1.3 设计内容 (1)第二章系统方案论证 (3)2.1 设计方案分析 (3)2.2 实验原理 (3)第三章信号频谱分析 (6)3.1 原始信号及频谱分析 (6)3.2 加入干扰噪声后的信号及频谱分析 (7)第四章数字滤波器的设计与实现 (11)4.1 高通滤波器的设计 (11)4.2 低通滤波器的设计 (12)4.3 带通滤波器的设计 (15)4.4 带阻滤波器的设计 (16)第五章课程设计总结 (19)参考文献 (20)附录Ⅰ (I)附录Ⅱ (II)第一章绪论1.1 设计的目的及意义综合利用数字信号处理的理论知识进行语音信号的频谱分析,通过理论推导得出相应结论,再利用MATLAB作为编程工具进行计算机实现,从而加深对所学知识的理解,建立概念。
本设计采用了高效快捷的开发工具——MATLAB,实现了语音信号的采集,对语音信号加噪声及设计滤波器滤除噪声的一系列工作。
《数字信号处理》课程设计,基于MATLAB的音乐信号处理和分析
《数字信号处理》课程设计设计题目:基于MATLAB的音乐信号处理和分析院系:物理工程学院专业:电子信息科学与技术学号:姓名:一、课程设计的目的本课程设计通过对音乐信号的采样、抽取、调制解调、滤波、去噪等多种处理过程的理论分析和MATLAB实现,使学生进一步巩固数字信号处理的基本概念、理论以及频谱分析方法和数字滤波器设计方法;使学生掌握的基本理论和分析方法只是得到进一步扩展;使学生能有效地将理论和实际紧密结合;增强学生软件编程实现能力和解决实际问题的能力。
二、课程设计的基本要求1 学会MATLAB的使用,掌握MATLAB的基本编程语句。
2 掌握在Windows环境下音乐信号采集的方法。
3 掌握数字信号处理的基本概念、基本理论和基本方法。
4 掌握MATLAB设计FIR和IIR数字滤波器的方法。
5 掌握使用MATLAB处理数字信号、进行频谱分析、涉及数字滤波器的编程方法。
三、课程设计内容实验1音乐信号的音谱和频谱观察使用windows下的录音机录制一段音乐信号或采用其它软件截取一段音乐信号(要求:时间不超过5s、文件格式为wav文件)①使用wavread语句读取音乐信号,获取抽样率;(注意:读取的信号时双声道信号,即为双列向量,需要分列处理);②输出音乐信号的波形和频谱,观察现象;使用sound语句播放音乐信号,注意不同抽样率下的音调变化,解释现象。
程序如下:[Y,FS,NBITS]=WAVREAD('怒放的生命 - 汪峰5s'); %读取音乐信号plot(Y); %显示音乐信号的波形和频谱sound(Y,FS); %听音乐(按照原来的抽样率)Y1=Y(:,1); %由双声道信号变为单声道信号size(Y1)figuresubplot(2,1,1);plot(Y); %显示原信号波形N=length(Y1);f1=fft(Y1); %傅立叶变换w=2/N*[0:N/2-1];subplot(2,1,2);plot(w,abs(f1(1:N/2))); %显示波形原信号的波形和频谱图实验2音乐信号的抽取(减抽样)①观察音乐信号频率上限,选择适当的抽取间隔对信号进行减抽样(给出两种抽取间隔,代表混叠与非混叠);②输出减抽样音乐信号的波形和频谱,观察现象,给出理论解释;播放减抽样音乐信号,注意抽样率的变化,比较不同抽取间隔下的声音,解释现象程序如下[Y,FS,NBITS]=WAVREAD('怒放的生命 - 汪峰5s');Y1=Y(:,1);D= ;j=0; %减抽样,D表示抽样间隔(10倍和100倍)for i=1:D:length(Y1) % I表示开始减抽样的起始点j=j+1;Y2(j)=Y1(i); %Y2减抽样后的信号endN=length(Y1);N1=length(Y2);F1=fft(Y1);F2=fft(Y2);w1=2/N*[0:N-1];w2=2/N1*[0:N1-1];figuresubplot(4,1,1);plot(Y1); %显示原单声道信号波形和频谱subplot(4,1,2);plot(Y2); %图显示抽样信号波形和频谱subplot(4,1,3);plot(w1,abs(F1)); %显示原单声道信号fft变换后的波形和频谱subplot(4,1,4);plot(w2,abs(F2)); %显示抽样信号快速fft变换后的波形和频谱sound(Y2,FS) %声音低沉,而且不是很清晰。
基于matlab的音乐信号处理
基于matlab的音乐信号处理
音乐信号处理是利用数字信号处理技术来处理音乐的过程。
Matlab是一款优秀的数字信号处理软件,受到广泛的使用,也受到许多音乐室的青睐。
本文主要就用Matlab来音
乐信号处理的方法做一详细介绍。
首先要把声音信号处理成可以解析和处理的数字形式,在Matlab里可以用wavread
函数来实现这一功能,把原始信号转换成由模拟信号采样点和时间组成的双矩阵,这个矩
阵里包括了实部和虚部两部分,可以代表音乐中不同频率的参数。
接下来,要进行频域的处理,可以用fourier变换函数fft2可以除去高频噪声,此外,也可以考虑其他的传输函数。
在来保留各种特征和进行噪声抑制等操作时可以用
filter2函数和resample函数来进行更精准的处理。
当音乐信号已经处理完成后,就要考虑把它恢复成原来的样子,可以用逆傅立叶变换
函数ifft2来进行实现,进而用wavwrite函数来把处理完的音乐信号保存起来。
在Matlab里,可以用语言来进行处理,也可以使用Matlab里的脚本函数来进行处理,这种方式可以使得音乐信号的处理多项式化,减少误差的可能性,大大提升效率。
因此可见,Matlab是一款非常强大的数字信号处理软件,可以有效地进行音乐信号处理,在音乐制作中具有非常重要的作用。
基于MATLAB的数字信号处理
数字信号处理课程设计报告题目:语音数字信号处理与分析及Matlab实现系别通信工程专业班级学生姓名学号指导教师提交日期摘要本次课程设计综合利用数字信号处理的理论知识进行语音信号的频谱分析,通过理论推导得出相应结论,再利用MATLAB作为编程工具进行计算机实现,从而加深对所学知识的理解,建立概念。
本次课程设计要求利用MATLAB对语音信号进行分析和处理,要求学生采集语音信号后,在MATLAB软件平台进行频谱分析;并对所采集的语音信号加入干扰噪声,对加入噪声的信号进行频谱分析,设计合适的滤波器滤除噪声,恢复原信号。
待处理语音信号是一个在20Hz~20kHz 频段的低频信号。
采用了高效快捷的开发工具——MATLAB,实现了语音信号的采集,对语音信号加噪声及设计滤波器滤除噪声的一系列工作。
利用采样原理设计了高通滤波器、低通滤波器、带通滤波器、带阻滤波器。
同学通过查阅资料自己获得程序进行滤波器的设计,能过得到很好的锻炼。
关键词:MATLAB滤波器数字信号处理目录第一章绪论 (1)1.1设计的目的及意义 (1)1.2设计要求 (1)1.3设计内容 (1)第二章系统方案论证 (3)2.1设计方案分析 (3)2.2实验原理 (3)第三章信号频谱分析 (6)3.1原始信号及频谱分析 (6)3.2加入干扰噪声后的信号及频谱分析 (7)第四章数字滤波器的设计与实现 (11)4.1高通滤波器的设计 (11)4.2低通滤波器的设计 (12)4.3带通滤波器的设计 (15)4.4带阻滤波器的设计 (16)第五章课程设计总结 (19)参考文献 (20)附录Ⅰ (I)附录Ⅱ (II)第一章绪论1.1设计的目的及意义综合利用数字信号处理的理论知识进行语音信号的频谱分析,通过理论推导得出相应结论,再利用MATLAB作为编程工具进行计算机实现,从而加深对所学知识的理解,建立概念。
本设计采用了高效快捷的开发工具——MATLAB,实现了语音信号的采集,对语音信号加噪声及设计滤波器滤除噪声的一系列工作。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《数字信号处理》课程设计设计题目:基于MATLAB的音乐信号处理和分析院系:物理工程学院专业:电子信息科学与技术学号:姓名:一、课程设计的目的本课程设计通过对音乐信号的采样、抽取、调制解调、滤波、去噪等多种处理过程的理论分析和MATLAB实现,使学生进一步巩固数字信号处理的基本概念、理论以及频谱分析方法和数字滤波器设计方法;使学生掌握的基本理论和分析方法只是得到进一步扩展;使学生能有效地将理论和实际紧密结合;增强学生软件编程实现能力和解决实际问题的能力。
二、课程设计的基本要求1 学会MATLAB的使用,掌握MATLAB的基本编程语句。
2 掌握在Windows环境下音乐信号采集的方法。
3 掌握数字信号处理的基本概念、基本理论和基本方法。
4 掌握MATLAB设计FIR和IIR数字滤波器的方法。
5 掌握使用MATLAB处理数字信号、进行频谱分析、涉及数字滤波器的编程方法。
三、课程设计内容实验1音乐信号的音谱和频谱观察使用windows下的录音机录制一段音乐信号或采用其它软件截取一段音乐信号(要求:时间不超过5s、文件格式为wav文件)①使用wavread语句读取音乐信号,获取抽样率;(注意:读取的信号时双声道信号,即为双列向量,需要分列处理);②输出音乐信号的波形和频谱,观察现象;使用sound语句播放音乐信号,注意不同抽样率下的音调变化,解释现象。
程序如下:[Y,FS,NBITS]=WAVREAD('怒放的生命 - 汪峰5s'); %读取音乐信号plot(Y); %显示音乐信号的波形和频谱sound(Y,FS); %听音乐(按照原来的抽样率)Y1=Y(:,1); %由双声道信号变为单声道信号size(Y1)figuresubplot(2,1,1);plot(Y); %显示原信号波形N=length(Y1);f1=fft(Y1); %傅立叶变换w=2/N*[0:N/2-1];subplot(2,1,2);plot(w,abs(f1(1:N/2))); %显示波形原信号的波形和频谱图实验2音乐信号的抽取(减抽样)①观察音乐信号频率上限,选择适当的抽取间隔对信号进行减抽样(给出两种抽取间隔,代表混叠与非混叠);②输出减抽样音乐信号的波形和频谱,观察现象,给出理论解释;播放减抽样音乐信号,注意抽样率的变化,比较不同抽取间隔下的声音,解释现象程序如下[Y,FS,NBITS]=WAVREAD('怒放的生命 - 汪峰5s');Y1=Y(:,1);D= ;j=0; %减抽样,D表示抽样间隔(10倍和100倍)for i=1:D:length(Y1) % I表示开始减抽样的起始点j=j+1;Y2(j)=Y1(i); %Y2减抽样后的信号endN=length(Y1);N1=length(Y2);F1=fft(Y1);F2=fft(Y2);w1=2/N*[0:N-1];w2=2/N1*[0:N1-1];figuresubplot(4,1,1);plot(Y1); %显示原单声道信号波形和频谱subplot(4,1,2);plot(Y2); %图显示抽样信号波形和频谱subplot(4,1,3);plot(w1,abs(F1)); %显示原单声道信号fft变换后的波形和频谱subplot(4,1,4);plot(w2,abs(F2)); %显示抽样信号快速fft变换后的波形和频谱sound(Y2,FS) %声音低沉,而且不是很清晰。
有一些声音信号丢失,%抽样率越高,声音越听不清晰,图2((10倍)图中由上而下依次为原单声道波形、抽样后波形、原单快速fft变换波形、抽样信号快速fft变换波形图2((100倍)图中由上而下依次为原单声道波形、抽样后波形、原单声道快速fft变换波形、抽样信号快速fft变换波形)实验3 音乐信号的AM调制①观察音乐信号的频率上限,选择适当调制频率对信号进行调制(给出高、低两种调制频率);②输出调制信号的波形和频谱,观察现象,给出理论解释;播放调制音乐信号,注意不同调制频率下的声音,解释现象。
程序如下:[Y,FS,NBITS]=WAVREAD('怒放的生命 - 汪峰5s');Y1=Y(:,1);N=length(Y1);F1=fft(Y1); %傅立叶变换w1=2/N*[0:N/2-1];figuresubplot(2,2,1);plot(w1,abs(F1(1:N/2)));N1=0:N-1;Y2=cos(N1*pi/8); %设置高频调制信号N2=length(Y2)F2=fft(Y2);w2=2/N2*[0:N2/2-1];subplot(2,2,2);plot(w2,abs(F2(1:N2/2)));subplot(2,2,3);stem((0:64),Y2(1:65));F=Y1.*Y2'; %利用高频调制信号调制单列音乐信号N3=length(F);F3=fft(F); %傅立叶变换w3=2/N3*[0:N3-1];subplot(2,2,4);plot(w3,abs(F3));sound(F,FS) % 未混叠时,声音尖锐,不清晰,刺耳% 混叠时,声音轻,只有淡淡的音调,基本没有起伏,不清晰。
(未混叠)图中由左到右依次为原音乐的傅立叶变换 COS函数的频谱图 COS函数离散信号 AM调制的后的波形(混叠)图中由左到右依次为原音乐的傅立叶变换 COS函数的频谱图COS函数离散信号 AM调制的后的波形实验4 AM调制音乐信号同步解调①设计巴特沃斯IIR滤波器完成同步解调;观察滤波器频率响应曲线②用窗函数法设计FIR滤波器完成同步解调,观察滤波器频率响应曲线;(分别使用矩形窗和布莱克曼窗,进行比较);③输出解调信号的波形和频谱图,观察现象,给出理论解释;播放解调音乐信号,比较不同滤波器下的声音,解释现象。
巴特沃斯IIR 滤波器程序如下clear all;close all;clc[Y,FS,NBITS]=WAVREAD('怒放的生命 - 汪峰5s');Y1=Y(:,1);N=length(Y1);N1=0:N-1;Y2=cos(N1*pi/8);F=Y1.*Y2';F2=F.*Y2'; %音乐信号调制wp=0.18;ws=0.25;rp=1;rs=50; %设计巴特沃斯IIR 滤波器[N4,Wc]=buttord(wp,ws,rp,rs);[B,A]=butter(N4,Wc);[Hd,w]=freqz(B,A);figuresubplot(2,1,1);plot(w/pi,abs(Hd));F3=filter(B,A,F2); %解调音乐信号N4=length(F3);F4=fft(F3);w4=2/N4*[0:N4/2-1];subplot(2,1,2);plot(w4,abs(F4(1:N4/2)));sound(F3,FS) %声音清晰,基本和原来的音乐差不多,但是音乐开始有一点点杂音。
巴特沃斯IIR 滤波器频率响应曲线及解调后的波形矩形窗和布莱克曼窗function hd=ideal(N,wc)for n=0:N-1if n==(N-1)/2hd(n+1)=wc/pi;else hd(n+1)=sin(wc*(n-(N-1)/2))/(pi*(n-(N-1)/2));endend(将上述程序保存为ideal.m,但是不能运行。
然后在打开新窗口编写下列主程序)clear all;close all;clc[Y,FS,NBITS]=WAVREAD('怒放的生命 - 汪峰5s');Y1=Y(:,1);N=length(Y1);N1=0:N-1;Y2=cos(N1*pi/8);F=Y1.*Y2';F2=F.*Y2'; %调制音乐信号N=89;wc=pi/0.22; % 矩形和布莱克曼窗hd=ideal(N,wc);w1=boxcar(N);w2=blackman(N);h1=hd.*w1';h2=hd.*w2';N1=length(h1);N2=length(h2);fh1=fft(h1);fh2=fft(h2);ww1=2/N1*(0:(N1-1)/2);ww2=2/N2*(0:(N2-1)/2);figuresubplot(2,1,1);plot(ww1,abs(fh1(1:(N1-1)/2+1))); subplot(2,1,2);plot(ww2,abs(fh2(1:(N1-1)/2+1)));F3=conv(F2,h1);F4=conv(F2,h2);M1=length(F3);M2=length(F4);fy1=fft(F3);fy2=fft(F4);w3=2/M1*[0:M1/2-1];w4=2/M2*[0:M2/2-1];figuresubplot(2,1,1);plot(w3,abs(fy1(1:M1/2)));subplot(2,1,2);plot(w4,abs(fy2(1:M2/2)));sound(F3,FS) %音乐信号清晰,有杂音,低沉.滤波器频率响应曲线解调后波形5、音乐信号的滤波去噪①给出原始音乐信号叠加幅度为0.05,频率为3kHz,5kHz、8kHz的三余弦混合噪声,观察噪声频谱以及加噪后音乐信号的音谱和频谱,并播放音乐,感受噪声对音乐信号的影响;②给原始音乐信号叠加幅度为0.5的随机白噪声(可用rand语句产生),观察噪声频谱以及加噪后音乐信号的音谱和频谱,并播放音乐,感受噪声对音乐信号的影响;根据步骤①、②观察到的频谱,选择合适指标设计滤波器进行滤波去噪,观察去噪后信号音谱和频谱,并播放音乐,解释现象。
程序如下:三余弦混合噪声:[x,fs,nbits]=wavread('怒放的生命 - 汪峰5s');x1=x(:,1); %获取单列音乐信号并对其做FFT变换N1=length(x1);fx1=fft(x1);w1=2/N1*[0:N1/2-1];n=0:N1-1;y=0.05*(cos(2*pi*n*3000/fs)+cos(2*pi*n*5000/fs)+cos(2*pi*n*8000/fs)); %设计三余弦混合噪声信号N2=length(y); %对三余弦混合噪声信号做FFT变换fy=fft(y);w2=2/N2*(0:N2/2-1)*fs/2;hdx=x1+y'; %产生加噪后的音乐信号并对其做FFT变换M=length(hdx);fhdx=fft(hdx);w3=2/M*(0:M/2-1);figure %画出单列信号音乐信号的频谱图、三余弦混合噪声信号的离散信号图 %及其频谱图和加噪后音乐信号的频谱图subplot(2,2,1);plot(w1,abs(fx1(1:N1/2)));subplot(2,2,2);stem((0:127),y(1:128));subplot(2,2,3);plot(w2,abs(fy(1:N2/2)));subplot(2,2,4);plot(w3,abs(fhdx(1:M/2)));sound(hdx,fs); % 音乐信号有电流声,而且噪声比较明显。