《数字信号处理》课程设计,基于MATLAB的音乐信号处理和分析
- 格式:doc
- 大小:414.50 KB
- 文档页数:22
课程设计任务书基于MATLAB的声音信号处理的初步实现内容摘要:数字滤波器是数字信号处理技术的基础, 用来对信号进行过滤、检测、与参数估计等处理。
任何检测的信号都含有噪声,而滤波是去除噪声的基本手段,因此滤波器在数字信号处理中占有极其重要的地位。
FIR数字滤波器和IIR 数字滤波器是滤波器设计的重要组成部分。
随着MATLAB软件及信号处理工具箱的不断完善,MATLAB很快成为应用学科等领域不可或缺的基础软件,它可以快速有效地实现数字滤波器的设计、分析和仿真,极大地减轻了工作量,有利于滤波器设计的最优化。
本设计综合运用了数字信号处理的各种基本知识,对不带噪声音信号以及带噪声音信号进行频谱分析,并利用MATLAB信号处理工具箱有效快捷地设计IIR数字滤波器对带噪声音信号进行滤波处理。
关键词:数字滤波器 MATLAB 滤波仿真The preliminary implementation of voice signalprocessing based on MATLABAbstract: Digital filter is the basis of digital signal processing technology, which used for signal filtering, detecting, and parameter estimation. Any detection signal contains noise, and filtering is a basic means to remove the noise, so filter occupies an extremely important position in digital signal processing.FIR digital filter and IIR digital filter is an important part of the filter design. With MATLAB software and the continuous improvement of the signal processing toolbox, MATLAB application quickly became indispensable to areas such as basic software. It can quickly and efficiently for digital filter design, analysis and simulation, greatly reduce the workload, and it is advantageous to the optimization of filter design. This design is integrated used of all kinds of basic knowledge of digital signal processing to complete the analysis of frequency spectrum about speech noisy signal and speech signal, and it use the MATLAB signal processing toolbox effective shortcut to design IIRdigital filter with noise speech signal filter processing. Keywords:Digital Filter MATLAB Filtering Simulation目录前言 (1)1 绪论 (1)1.1 研究的目的和意义 (1)1.2 国内外研究的现状 (1)1.3 本课题研究的内容和方法 (2)2 MATLAB软件介绍 (2)2.1 MATLAB发展历程 (2)2.2 MATLAB组成 (3)2.2.1 MATLAB语言 (3)2.2.2 MATLAB的工作环境 (3)2.2.3 MATLAB数据函数库 (3)2.2.4 MATLAB应用程序接口 (3)2.2.5 图形句柄系统 (4)2.3 MATLAB的特点 (4)3 数字滤波器的设计 (5)3.1 数字滤波器概述 (5)3.2 数字滤波器设计的基本原理 (6)3.3 设计IIR数字滤波器 (6)3.3.1 IIR数字滤波器设计方法 (6)3.3.2 利用模拟滤波器设计IIR数字滤波器的步骤 (6)3.3.3 用双线性法设计IIR低通滤波器 (7)4 去噪和仿真的研究 (7)4.1 语言信号在MATLAB平台上的录入与打开 (7)4.2 原始语言信号频谱分析及仿真 (8)4.3 加噪语音信号频谱分析及仿真 (9)4.4 去噪及仿真 (10)4.5 回放语音信号 (11)5 结束语 (11)附录 (12)附录1:IIR低通滤波器程序 (12)附录2:产生原始语音信号波形、频谱、幅值、相位图程序 (12)附录3:产生原始语音信号和加噪语音信号时域波形、频谱图程序 (13)附录4:产生IIR滤波前和滤波后波形及频谱图程序 (14)参考文献 (16)基于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软件平台进行频谱分析;并对所采集的语音信号加入干扰噪声,对加入噪声的信号进行频谱分析,设计合适的滤波器滤除噪声,恢复原信号。
待处理语音信号是一个在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实现,使学生进一步巩固数字信号处理的基本概念、理论以及频谱分析方法和数字滤波器设计方法;使学生掌握的基本理论和分析方法只是得到进一步扩展;使学生能有效地将理论和实际紧密结合;增强学生软件编程实现能力和解决实际问题的能力。
二、课程设计的基本要求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软件平台进行频谱分析;并对所采集的语音信号加入干扰噪声,对加入噪声的信号进行频谱分析,设计合适的滤波器滤除噪声,恢复原信号。
待处理语音信号是一个在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实现,使学生进一步巩固数字信号处理的基本概念、理论、分析方法和实现方法;使学生掌握的基本理论和分析方法知识得到进一步扩展;使学生能有效地将理论和实际紧密结合;增强学生软件编程实现能力和解决实际问题的能力。
二、课程设计基本要求1学会MATLAB 的使用,掌握MATLAB的基本编程语句。
2掌握在Windows 环境下音乐信号采集的方法。
3掌握数字信号处理的基本概念、基本理论和基本方法。
4掌握MATLAB 设计FIR 和IIR 数字滤波器的方法。
5 掌握使用MATLAB处理数字信号、进行频谱分析、设计数字滤波器的编程方法。
三、课程设计内容1、音乐信号的音谱和频谱观察使用windows下的录音机录制一段音乐信号或采用其它软件截取一段音乐信号(要求:时间不超过5s、文件格式为wav文件)①使用wavread语句读取音乐信号,获取抽样率;(注意:读取的信号是双声道信号,即为双列向量,需要分列处理);②输出音乐信号的波形和频谱,观察现象;③使用sound语句播放音乐信号,注意不同抽样率下的音调变化,解释现象。
Wavread格式说明:[w,fs,b]=wavread(‘语音信号’),采样值放在向量w中,fs表示采样频率(hz),b表示采样位数。
上机程序:[y,fs,bit]=wavread('I do片段')%读取音乐片段,fs是采样率size(y)%求矩阵的行数和列数y1=y( : ,1);%对信号进行分列处理n1=length(y1);%取y的长度t1=(0:n1-1)/fs;%设置波形图横坐标 figuresubplot(2,1,1);plot(t1,y1); %画出时域波形图 ylabel('幅值');xlabel('时间(s )'); title('信号波形'); subplot(2,1,2); Y1=fft(y1);w1=2/n1*(0:n1-1);%设置角频率 plot(w1,abs(Y1));%画频谱图 title('信号频谱'); xlabel('数字角频率'); ylabel('幅度'); grid on ;sound(y,fs); 实验结果:123456幅值时间(s )信号波形信号频谱数字角频率幅值1、通过观察频谱知,选取音乐信号的频谱集中在0~0.7*pi 之间,抽样点数fs=44100;2、当采样频率问原来0.5(0.5*fs )倍时:音乐片段音调变得非常低沉,无法辨认原声,播放时间变长;抽样频率减小,抽样点数不变时,其分辨力增大,记录长度变长,声音失真。
数字信号处理实验内容音频信号分析与处理数字信号处理实验内容——音频信号采集、分析及处理一、实验目的1.以音频信号为例,熟悉模拟信号数字处理过程,进一步理解数字信号处理概念。
2.掌握运用Matlab实现对音频信号的时频分析方法;3.初步掌握数字音频信号合成的方法。
4.掌握运用Matlab设计IIR和FIR滤波系统的方法;5.掌握运用Matlab实现对加噪的音频信号进行去噪滤波的方法。
锻炼学生运用所学知识独立分析问题解决问题的能力,培养学生创新能力。
二、实验性质综合分析、设计性实验三、实验任务实验内容一:windows系统中的“ding”音频信号的采集、分析、合成1.音频信号的采集编写Matlab程序,采集windows系统中的“ding”声,得到*.wav音频文件,而后实现音频信号回放。
2.音频信号的频谱分析运用Matlab软件实现对音频信号的时域分析和频域分析,并打印相应的图形,完成在实验报告中。
注意:此音频信号的频谱包含两条主要谱线,在进行频谱分析时,注意频谱的完整性,利用MATLAB实现对两条主要谱线的定位并计算谱线所对应的模拟频率。
3.音频信号的分解和合成运用Matlab软件实现音频信号的分解与合成,将音频信号的频谱中两部分频谱成分进行分解,分别绘制出分解后的两个信号的频谱图;然后将分解后的两个信号再合成为一个新的信号,将合成后的新信号的时域、频域图与原来的信号时域、频域图相比较,绘制出对比效果图。
4.音频信号的回放运用Matlab软件实现音频信号的回放,将合成后的新信号和原音频信号分别进行回放,对比两个信号的声音效果。
5.音频信号分段傅里叶分析(选作)分析对一般音频.wav信号进行一次性傅里叶分析时存在的主要问题,利用分段傅里叶变换对该音频信号重新分析并合成。
对比一次傅里叶分析结果并进行总结。
实验内容二:任意音频信号的时域和频域分析及数字滤波器设计1.音频信号的采集音频信号的采集可以通过Windows自带的录音机也可以用专用的录制软件录制一段音频信号(尽量保证无噪音、干扰小),也可以直接复制一段音频信号(时间为1s),但必须保证音频信号保存为.wav 的文件。
数字信号处理课设报告-基于matlab的数字音效处理器一:应用背景利用所学习的数字信号处理知识,自己动手制作一个有趣的音效处理系统,看看能不能完成声音的逐渐放大和逐渐衰减、看看能不能让自己的声音发生一些改变(变得尖声尖气或粗声粗气)、看看改变声音播放速度有什么方法等等,你还可以自己想想还有什么有趣的变化,可以通过我们已有的知识让它实现。
作为课程设计,以下要求分为基本必做部分和提高必做部分,在提高部分你可以选择全部内容和部分内容,当然分数值是不一样。
二、基于MATLAB数字音效处理器2.1:实现步骤基本要求描述(40分)1)语音信号的采集(2分)要求利用Windows下的录音机,录制一段自己的话音,时间在5s内,存为*.WA V的文件。
然后在Matlab软件平台下,利用函数wavread 对语音信号进行采样,记住采样频率和采样点数。
2)语音信号的频谱分析(10分)要求首先画出语音信号的时域波形;然后对语音号进行快速傅里叶变换,得到信号的频谱特性,分析基频。
3)设计数字滤波器和画出其频率响应(10分)给出各滤波器的性能指标:(1)低通滤波器性能指标fb=1 000 Hz,fc=1 200 Hz,As=100 dB,Ap=1 dB。
(2)高通滤波器性能指标fc=4 800 Hz,fb=5 000 Hz As=100 dB,Ap=1 dB。
(3)带通滤波器性能指标fb1=1 200 Hz,fb2=3 000 Hz,fc1=1 000 Hz,fc2=3 200 Hz,As =100 dB,Ap=1 dB。
4)用滤波器对信号进行滤波(5分)要求学生用自己设计的各滤波器分别对采集的信号进行滤波,在Matlab中,FIR滤波器利用函数fftfilt对信号进行滤波,IIR滤波器利用函数filter对信号进行滤波。
5)比较滤波前后语音信号的波形及频谱(10分)要求在一个窗口同时画出滤波前后的波形及频谱,做出分析。
6)回放语音信号(1分)在Matlab中,函数sound可以对声音进行回放。
中原工学院数字信号处理教程课程设计电信152杨耀华绪论数字信号处理课程是电子信息类与电气类专业本科生继“信号与系统”课之后的一门必修的专业基础课程。
设置本课程的目的在于,使学生通过本课程的学习,了解“数字信号处理”这一技术领域的概貌,初步建立起有关“数字信号处理”的基本概念,掌握基本分析方法,为后续课程及从事信息处理等方面有关的研究工作打下基础。
本课程是一门结合实际工程应用的基础理论课程。
本次课程设计是在MATLAB平台上,对声音信号进行采集,处理,滤波等最终还原出原无噪声的声音信号。
运用本课程所学的理论知识对信号进行谱分析,设计滤波器,得出结论。
进一步巩固所学的知识。
目录一.设计目的 (1)二.设计要求及任务 (1)三.课程设计平台 (2)四.设计原理及计算方法 (2)五.实验论证方案及结果分析 (3)六. 结论及心得 (15)七. 附录:程序代码及注释 (15)八. 参考文献 (28)一.设计目的1.学会MATLAB的使用,掌握MATLAB程序设计方法。
2.掌握在windows环境下语音信号采集的方法。
3.掌握数字信号处理的基本概念,基本理论和基本方法。
4.掌握MATLAB设计IIR数字滤波器的方法。
学会用MATLAB对信号进行分析和处理。
二.设计要求及任务2.1.语音信号的采集;本设计利用计算机Windows下的录音机录入一句语音信号,然后在Matlab软件平台下,利用函数waveread对语音信号进行采样,记住采样频率和采样点数。
2.2.语音信号的频谱分析;在Matlab中,可以利用函数FFT对信号进行快速傅里叶变换,得到信号的频谱特性,然后加入一干扰信号,要求画出语音信号干扰前后的时域波形,并对其频谱进行分析。
2.3.设计数字滤波器,给出性能指标(参考指标);(1)低通滤波器的性能指标:fp=1000Hz,fs=1200Hz,As=100dB,Ap=1dB(2)高通滤波器的性能指标:fs=4800Hz,fp=5000Hz,As=100dB,Ap=1dB(3)带通滤波器的性能指标:fp1=1200Hz,fp2=3000Hz,fs1=1000Hz,fps2=3200Hz,As=100dB,Ap=1dB;采用双线性变换法设计上面一种类型的数字滤波器,要求使用切比雪夫II型滤波器。
课题一数字信号处理系统设计一、项目要求用本课程所学的数字信号处理理论知识,设计一个具有信号的采集、处理、传输、显示和存储等功能的系统,内容如下:1、录制一段语音信号,并对录制的语音信号进行采样(采样频率可取fs=22050Hz);2、画出采样后的语音信号的时域波形和频谱图;3、滤波器的性能指标:低通滤波器:通带边界频率fp=1kHz,通带最大衰减Ap=1dB;阻带边界频率fp=1.2kHz,阻带最小衰减Ap=100dB;高通滤波器:通带边界频率fp=5kHz,通带最大衰减Ap=1dB;阻带边界频率fp=4.8kHz,阻带最小衰减Ap=100dB;带通滤波器:通带上限截止频率fp2=3kHz, 通带下限截止频率fp1=1.2kHz;阻带上限截止频率fs2=3.2kHz, 通带下限截止频率fp1=1kHz;通带最大衰减Ap=1dB, 阻带最小衰减As=100dB;采用双线性变换法设计滤波器,并画出滤波器的频率响应;4、用自己设计的滤波器对采样的信号进行滤波,画出滤波后信号的时域波形和频谱图,并对滤波前后的信号进行对比,分析信号的变化;5、回放语音6、用GUI设计一个信号系统的用户界面。
二、实验所要用到的MATLAB函数1、语音信号的采样与播放wavread();[y,fs,bite]=wavread();%语音信号的采样sound(y,fs,bite);%播放语音2.滤波器:IIR:butte();%巴特沃思滤波器cheby1(); %切比雪夫I滤波器elliptical();%椭圆滤波器3.频率响应:[h,f]=freqz(b,a,n,fs)freqz(b,a,n,fs)5.快速傅里叶变换fft (x, n)6.画曲线plot(x, y)stem(x, y)7.在MATLAB中,设计辅助低通原型巴特沃思和切比雪夫滤波器的阶数和截止频率;1)利用buttord和cheblord确定阶数;2)[num,den]=butter(N,Wn),[num,den]=cheby1(N,Wn)3)lp2hp,lp2bp,lp2bs可以完成低通滤波器到高通,带通,带阻的转换4)使用biliner对模拟滤波器进行双线性变换,求得数字滤波器的传输函数系数三、数字滤波器(代码)1.IIR低通滤波器fp=1000;ft=5500;fs=1200;wp=2*pi*fp/ft;ws=2*pi*fs/ft;Fp=2*ft*tan(wp/2);Fs=2*ft*tan(ws/2);[n,Omgc]=buttord(Fp,Fs,1,100,'s');[z,p,k]=buttap(n);B=k*real(poly(z));A=real(poly(p));[b1,a1]=lp2lp(B,A,Omgc);[ba1,aa1]=bilinear(b1,a1,ft); %模拟转数字[Ha,w]=freqz(ba1,aa1); %求频率相应plot(w*ft/(2*pi),20*log10(abs(Ha)));title('IIR 低通滤波器');xlabel('频率/HZ');ylabel('幅值');2.IIR高通滤波器fp=5000;ft=25000;%取抽样频率•fs=4800;Rp=1;As=100;wp=2*pi*fp/ft;%通带频率ws=2*pi*fs/ft;%截止频率Fp=2*ft*tan(wp/2);Fs=2*ft*tan(ws/2);[n,Omgc]=ellipord(Fp,Fs,Rp,As,'s'); %计算阶数n和截止频率[z,p,k]=ellipap(n,Rp,As);B3=k*real(poly(z));A3=real(poly(p));[b3,a3]=lp2hp(B3,A3,Omgc);[ba3,aa3]=bilinear(b3,a3,ft);[Ha,w]=freqz(ba3,aa3);plot(w*ft/(2*pi),20*log10(abs(Ha)));title('IIR高通滤波器');xlabel('频率/HZ');ylabel('幅值');3.IIR带通滤波器fp1=1200;fp2=3000;fs1=1000;fs2=3200;ft=10000; As=100;Rp=1;wp1=2*pi*fp1/ft;wp2=2*pi*fp2/ft;ws1=2*pi*fs1/ft;ws2=2*pi*fs2/ft;Fp1=2*ft*tan(wp1/2);Fp2=2*ft*tan(wp2/2);Fp=[Fp1,Fp2];Fs1=2*ft*tan(ws1/2);Fs2=2*ft*tan(ws2/2);Fs=[Fs1,Fs2];bw=Fp2-Fp1;w0=sqrt(Fp1*Fp2);%通带宽和中心频率[n,Omgn]=cheb1ord(Fp,Fs,Rp,As,'s');[z,p,k]=cheb1ap(n,Rp);B2=k*real(poly(z));A2=real(poly(p));[b2,a2]=lp2bp(B2,A2,w0,bw);[ba2,aa2]=bilinear(b2,a2,ft);[Ha,w]=freqz(ba2,aa2);plot(w*ft/(2*pi),20*log10(abs(Ha)));title('IIR 带通滤波器'); xlabel('频率/HZ'); ylabel('幅值');四、总代码function varargout = bzh(varargin)% BZH M-file for bzh.fig% BZH, by itself, creates a new BZH or raises the existing% singleton*.%% H = BZH returns the handle to a new BZH or the handle to% the existing singleton*.%% BZH('CALLBACK',hObject,eventData,handles,...) calls the local% function named CALLBACK in BZH.M with the given input arguments.%% BZH('Property','Value',...) creates a new BZH or raises the % existing singleton*. Starting from the left, property value pairs are% applied to the GUI before ko_OpeningFunction gets called. An % unrecognized property name or invalid value makes property application% stop. All inputs are passed to bzh_OpeningFcn via varargin. %% *See GUI Options on GUIDE's Tools menu. Choose "GUI allowsonly one% instance to run (singleton)".%% See also: GUIDE, GUIDATA, GUIHANDLES% Copyright 2021 -2021 The MathWorks, Inc.% Edit the above text to modify the response to help bzh% Last Modified by GUIDE v2.5 09-Jan-2021 08:54:22% Begin initialization code - DO NOT EDITgui_Singleton = 1;gui_State = struct('gui_Name', mfilename, ...'gui_Singleton', gui_Singleton, ...'gui_OpeningFcn', @bzh_OpeningFcn, ...'gui_OutputFcn', @bzh_OutputFcn, ...'gui_LayoutFcn', [] , ...'gui_Callback', []);if nargin && ischar(varargin{1})gui_State.gui_Callback = str2func(varargin{1});endif nargout[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); elsegui_mainfcn(gui_State, varargin{:});end% End initialization code - DO NOT EDIT% --- Executes just before bzh is made visible.function bzh_OpeningFcn(hObject, eventdata, handles, varargin)% This function has no output args, see OutputFcn.% hObject handle to figure% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)% varargin command line arguments to bzh (see VARARGIN)% Choose default command line output for bzhhandles.output = hObject;% Update handles structureguidata(hObject, handles);% UIWAIT makes bzh wait for user response (see UIRESUME)% uiwait(handles.figure1);% --- Outputs from this function are returned to the command line. function varargout = bzh_OutputFcn(hObject, eventdata, handles) % varargout cell array for returning output args (see VARARGOUT); % hObject handle to figure% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)% Get default command line output from handles structurevarargout{1} = handles.output;% --- Executes on button press in tag_start.function tag_start_Callback(hObject, eventdata, handles)% hObject handle to tag_start (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) axes(handles.axes1)cla;global z0;global yy;fs=22050;nbits=32;[yy,fs,nbits]=wavread('D:\f.wav'); %语音信号加载sound(yy,fs); %回放语音z0=yy;axes(handles.axes1);plot(yy);title('时域采样信号波形');grid onn=length(yy); %求出语音信号的长度Y=fft(yy,n); %傅里叶变换axes(handles.axes2);plot(20*log10(abs(Y)));title('时域采样信号频谱');guidata(hObject,handles);grid on% --- Executes on button press in tag_ditong.function tag_ditong_Callback(hObject, eventdata, handles)% hObject handle to tag_ditong (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) axes(handles.axes1)cla;global z1;global yy;global ba1;global aa1;global Fp;global Fs;fp=1000;ft=5500;fs=1200;wp=2*pi*fp/ft;ws=2*pi*fs/ft;Fp=2*ft*tan(wp/2);Fs=2*ft*tan(ws/2);[n,Omgc]=buttord(Fp,Fs,1,100,'s');[z,p,k]=buttap(n);B=k*real(poly(z));A=real(poly(p));[b1,a1]=lp2lp(B,A,Omgc);[ba1,aa1]=bilinear(b1,a1,ft); %模拟转数字z1=filter(ba1,aa1,yy);[Ha,w]=freqz(ba1,aa1); %求频率相应plot(w*ft/(2*pi),20*log10(abs(Ha)));title('IIR 低通滤波器');xlabel('频率/HZ');ylabel('幅值');% --- Executes on button press in tag_gaotong.function tag_gaotong_Callback(hObject, eventdata, handles)% hObject handle to tag_gaotong (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) axes(handles.axes2)cla;global yy;global z2;global B3;global ba3;global aa3;global Fp;global Fs;fp=5000;ft=25000;%取抽样频率•fs=4800;Rp=1;As=100;wp=2*pi*fp/ft;%通带频率ws=2*pi*fs/ft;%截止频率Fp=2*ft*tan(wp/2);Fs=2*ft*tan(ws/2);[n,Omgc]=ellipord(Fp,Fs,Rp,As,'s'); %计算阶数n和截止频率[z,p,k]=ellipap(n,Rp,As);B3=k*real(poly(z));A3=real(poly(p));[b3,a3]=lp2hp(B3,A3,Omgc);[ba3,aa3]=bilinear(b3,a3,ft);z2=filter(ba3,aa3,yy);[Ha,w]=freqz(ba3,aa3);plot(w*ft/(2*pi),20*log10(abs(Ha)));title('IIR高通滤波器');xlabel('频率/HZ');ylabel('幅值');% --- Executes on button press in tag_daitong.function tag_daitong_Callback(hObject, eventdata, handles)% hObject handle to tag_daitong (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) axes(handles.axes3)cla;global yy;global z3;global B2;global ba2;global aa2;fp1=1200;fp2=3000;fs1=1000;fs2=3200;ft=10000;As=100;Rp=1;wp1=2*pi*fp1/ft;wp2=2*pi*fp2/ft;ws1=2*pi*fs1/ft;ws2=2*pi*fs2/ft;Fp1=2*ft*tan(wp1/2);Fp2=2*ft*tan(wp2/2);Fp=[Fp1,Fp2];Fs1=2*ft*tan(ws1/2);Fs2=2*ft*tan(ws2/2);Fs=[Fs1,Fs2];bw=Fp2-Fp1;w0=sqrt(Fp1*Fp2);%通带宽和中心频率[n,Omgn]=cheb1ord(Fp,Fs,Rp,As,'s');[z,p,k]=cheb1ap(n,Rp);B2=k*real(poly(z));A2=real(poly(p));[b2,a2]=lp2bp(B2,A2,w0,bw);[ba2,aa2]=bilinear(b2,a2,ft);z3=filter(ba2,aa2,yy);[Ha,w]=freqz(ba2,aa2);plot(w*ft/(2*pi),20*log10(abs(Ha)));title('IIR 带通滤波器');xlabel('频率/HZ');ylabel('幅值');% --- Executes on button press in tag_dibo.function tag_dibo_Callback(hObject, eventdata, handles)% hObject handle to tag_dibo (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) axes(handles.axes3)cla;global yy;global z1;global ba1;global aa1;m4=fft(z1);plot(z1,'y');title('IIR滤波后的信号波形');xlabel('时间/t');ylabel('幅值');axes(handles.axes4)cla;plot(abs(m4),'y');title('IIR滤波后信号频谱');xlabel('频率/HZ');ylabel('幅值');% --- Executes on button press in tag_gaobo.function tag_gaobo_Callback(hObject, eventdata, handles)% hObject handle to tag_gaobo (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) axes(handles.axes3)cla;global yy;global z2;global B3;global ba3;global aa3;m5=fft(z2);plot(z2,'y');title('IIR滤波后的信号波形');xlabel('时间/t');ylabel('幅值');axes(handles.axes4)cla;plot(abs(m5),'y');title('IIR滤波后信号频谱');xlabel('频率/HZ');ylabel('幅值');% --- Executes on button press in tag_daibo.function tag_daibo_Callback(hObject, eventdata, handles)% hObject handle to tag_daibo (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) axes(handles.axes3)cla;global yy;global z3;global B2;global ba2;global aa2;m6=fft(z3);plot(z3,'y');title('IIR滤波后的信号波形');xlabel('时间/t');ylabel('幅值');axes(handles.axes4)cla;plot(abs(m6),'y');title('IIR滤波后信号频谱');xlabel('频率/HZ');ylabel('幅值');% --- Executes on selection change in tag_choose.function tag_choose_Callback(hObject, eventdata, handles)% hObject handle to tag_choose (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)% Hints: contents = get(hObject,'String') returns tag_choose contents as cell array% contents{get(hObject,'Value')} returns selected item from tag_choose% --- Executes during object creation, after setting all properties. function tag_choose_CreateFcn(hObject, eventdata, handles)% hObject handle to tag_choose (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called% Hint: popupmenu controls usually have a white background on Windows. % See ISPC and COMPUTER.if ispcset(hObject,'BackgroundColor','white');elseset(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundCo lor'));end% --- Executes on button press in tag_return.function tag_return_Callback(hObject, eventdata, handles)% hObject handle to tag_return (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) global z0;global z1;global z2;global z3;global yy;val=get(handles.tag_choose,'Value');if(val==1)[yy,fs,nbits]=wavread('D:\f.wav'); %语音信号加载sound(yy,fs); %回放语音endif(val==2)sound(z1,22050);endif(val==3)sound(z3,22050);endif(val==4)sound(z2,22050);end% --- Executes on mouse press over axes background.function axes1_ButtonDownFcn(hObject, eventdata, handles)% hObject handle to axes1 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)% --- If Enable == 'on', executes on mouse press in 5 pixel border. % --- Otherwise, executes on mouse press in 5 pixel border or over tag_start.function tag_start_ButtonDownFcn(hObject, eventdata, handles)% hObject handle to tag_start (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)采样后信号滤波器数字波形IIR低通滤波后波形图IIR高通滤波后波形图IIR带通滤波后波形图教师见习报告总结期待已久的见习已经结束了,在龙岩三中高中部见习听课,虽然只是短短的两个星期,但感触还是蛮深的,以前作为一名学生坐在课室听课,和现在作为一名准教师坐在课室听课是完全不同的感受,感觉自己学到了一些在平时课堂上学不到的东西。
数字信号处理课程设计报告姓名:蒲钇霖学号:201021030619学院:微固利用Matlab实现对三种音频信号的采样和分析一、前言:数字信号处理(Digital Signal Processing,简称DSP)是一门涉及许多方面而又广泛应用于很多领域的学科。
它是一种使用数学手段转换或提取信息,来处理现实信号的方法。
随着信息时代和数字世界的到来,数字信号处理技术得到了迅速的发展,已经成为了一个极其重要的研究领域。
本次课程设计可以算是对于数字信号处理技术一个基础的应用实例,主要是通过Matlab软件对现实中的音频信号进行采样以及分析研究。
二、设计目的:通过此次课程设计,让我们能够更好地巩固和运用在数字信号课程中学习到的理论知识和实验方法,加强我们将理论知识化为实践技巧的能力,主要是熟悉和学习如何使用Matlab对信号进行采集、截取、显示、存储和分析。
在这过程中同时培养我们发现问题、分析问题以及解决问题的能力。
三、主要内容:这次课程设计将对三种音频信号进行分析研究与相互比较,其中的两种信号是用Matlab软件来录制的一段自己发出的声音和用汤匙敲击不锈钢杯的声音,然后再截取出它们的有效部分。
另一种是从电脑里找的Windows XP的开机启动声音。
完成这三种信号的采集工作之后,就分别用音频分析软件spectrogram和Matlab两种手段对它们进行分析研究和相互比较,得出相应的结论,从而完成课程设计的任务。
四、设计步骤:1.采集声音信号Windows XP开机启动的声音可直接由电脑中找出,这里主要是采集自己发出的声音和汤匙敲击不锈钢杯的声音。
一般来说,我们采集声音信号最简便的方法就是直接使用Windows自带的录音器。
但为了帮助学习Matlab,这里我们使用该软件来进行声音的录制。
下面就是录制自己发出的声音的一段程序(参照了网上查找的一个例子):>>fs=8000;>>channel=1;>>t=3;>>fprintf('按任意键后开始 %d秒录音:',t);pause;>>fprintf('录音中...');>>x=wavrecord(t*fs,fs,channel,'double');>>fprintf('录音结束\n');>>wavwrite(x,fs,'C:\Program Files\MATLAB\R2007a\work\UESTC.wav')>>fprintf('按任意键后回放:');pause>>wavplay(x,fs);这里不同于一般的命令操作方式,而是采用的编程操作方式。
目录目录 (1)摘要 (2)一.设计目的和要求 (2)二.设计原理及方法 (2)2.1设计原理 (2)2.2设计方法 (5)三.实验内容 (5)3.1信号的产生 (5)3.2滤波器的设计 (7)3.3信号滤波分析 (9)总结与致谢 (16)参考文献 (17)摘要几乎所有的工程技术领域都要涉及到信号处理问题,信号处理一般是包括数据采集以及对信号进行分析、变换、综合、估计与识别。
对于数字信号来说,数字信号的幅度和时间都是离散值,数字信号处理是采用数值计算的方法完成对信号的处理。
而待处理的的信号往往夹带着噪声。
这就需要数字滤波器对信号进行滤波处理,滤除其中的噪声,得到想要的信号。
所谓数字滤波器,就是输入、输出都是数字信号的,通过数值计算处理改变输入信号所含频率成分的相对比例,或者滤除某些频率成分的数字器件或程序。
常用的经典滤波器有低通、高通、带通、带阻。
关键字:信号产生数字滤波器噪声频谱分析一.设计目的和要求1、产生一个连续信号,包含低频,中频,高频分量。
2、对产生的信号进行采样,进行频谱分析。
3、分别设计高通、低通、带通滤波器对信号进行滤波处理,观察滤波后信号的频谱。
二.设计原理及方法2.1设计原理理论上信号的采样要符合奈奎斯特采样定律,就是采样频率要高一点,一般为被采信号最高频率的2倍,只有这样,才能保证频域不混叠,也就是采样出来数字信号中包含了被采信号的所有信息,而且没有引入干扰。
这就是信号的时域采样。
频谱分析是指对信号进行频域谱的分析,观察其频域的各个分量的功率大小,其理论基础是傅立叶变换,现在一般采用数字的方法,也就是将时域信号数字化后做FFT,可以得到频域的波形。
数字滤波器是一种用来过滤时间离散信号的数字系统,通过对抽样数据进行数学处理来达到频域滤波的目的。
可以设计系统的频率响应,让它满足一定的要求,从而对通过该系统的信号的某些特定的频率成分进行过滤,这就是滤波器的基本原理。
如果系统是一个连续系统,则滤波器称为模拟滤波器。
数字信号处理课程设计报告-基于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在音频信号处理中的应用Matlab作为一种功能强大的科学计算软件,提供了丰富的工具箱和函数,可以方便地进行音频信号处理与分析。
下面将介绍Matlab在音频信号处理中常用的几种功能:1. 音频文件读取与播放利用Matlab可以轻松读取各种格式的音频文件,如.wav、.mp3等,并进行播放。
通过读取音频文件,可以对音频信号进行可视化显示和分析。
2. 音频滤波滤波是音频信号处理中常用的技术之一,可以通过设计不同类型的滤波器对音频信号进行去噪、降噪等处理。
Matlab提供了丰富的滤波函数和工具箱,可以方便地实现各种滤波操作。
3. 音频特征提取在音频信号分析中,提取音频特征是非常重要的一步。
Matlab提供了各种特征提取函数,如时域特征、频域特征、时频域特征等,可以帮助用户快速准确地提取音频信号的特征信息。
4. 音频信号合成与分析除了对已有的音频信号进行处理外,Matlab还可以实现音频信号的合成与分析。
用户可以根据需要生成各种类型的声音,并对合成声音进行进一步分析。
三、案例分析:基于Matlab的语音情感识别作为一个典型的应用案例,我们以基于Matlab的语音情感识别为例进行介绍。
语音情感识别是近年来备受关注的研究领域,通过对语音信号进行分析和处理,可以准确地识别说话者的情感状态。
基于MATLAB的声音信号处理与分析摘要:本设计要求选取一段WAV格式的音乐后,在MATLAB中采集声音信号,回放音乐,并画出该声音信号时域波形和频谱,改变采样频率,观察并分析信号的变化。
然后在MATLAB 中设计不同形式的FIR数字滤波器,通过滤波观察采集的声音信号在不同频率段的特点。
对比处理前后的时域和频谱图,观察并分析经过不同的滤波器信号波形的变化。
最后,分别收听处理之后的声音信号,了解各种滤波器对声音信号的影响。
关键词:声音信号、MATLAB、采样、滤波器The Design of ProcessingAnd Analysis Voice Signal InMATLABShiJieying(College of Physics and Electronic Engineering InformationWenzhou University)Abstract:This design, makingin the MATLAB, requires to find a WAV format music, to collect sound signals, playback of music, and draw the sound signal time domain waveform and frequency spectrum.Changing the sampling frequency, observe and analyze of changes in the signal. And then design different forms of FIR digital filter in the MATLAB, observe the characteristics of the collected sound signal in different frequency paring the time domain waveform and the frequency spectrum beforeand after the processing, observe and analyze the changes of signal waveform through different filter.Finally, listen to the voice signal after processing respectively,understand the impact of a variety of filters on the sound signal.Keywords: sound signals, MATLAB, sampling, filters1.设计内容及步骤步骤一:在“我的电脑”搜索wav格式的音乐文件,选取约10s时长且声音频率跨度较大的一段音乐(便于对声音信号滤波并比较音调变化)并记录其所在位置。
目录1、课程设计的目的 (1)2、课程设计的基本要求 (1)3、课程设计内容 (1)3.1 基于USB总线或PCI总线A/D卡的报告 (1)3.1.1 USB总线介绍 (1)3.1.2 USB接口的数据采集系统的设计实现 (1)3.1.3 USB接口电路设计 (2)3.1.4 A/D转换电路 (3)3.1.5 控制电路及数据缓冲电路 (3)3.2 基于MATLAB的音乐信号的处理 (5)3.2.1 音乐信号的音谱和频谱观察 (5)3.2.2音乐信号的采样 (7)4、学习matlab的心得体会与本次课程设计的心得体会 (10)5、参考文献 (11)1、课程设计的目的本课程设计通过对音乐信号的采样、抽取、分析、等多种处理过程的理论分析和MATLAB实现,使学生进一步巩固数字信号处理的基本概念、理论以及频谱分析方法和数字滤波器设计方法;使学生掌握的基本理论和分析方法只是得到进一步扩展;使学生能有效地将理论和实际紧密结合;增强学生软件编程实现能力和解决实际问题的能力。
2、课程设计的基本要求1 学会MATLAB的使用,掌握MATLAB的基本编程语句。
2掌握USB总线或PCI总线的基本结构,了解基于USB总线或PCI总线A/D卡的通用结构。
3 掌握在Windows环境下音乐信号采集的方法。
4掌握数字信号处理的基本概念、基本理论和基本方法。
5 掌握使用MATLAB处理数字信号、进行频谱分析的编程方法。
3、课程设计内容3.1.基于USB总线A/D卡的报告3.1.1 USB总线介绍USB总线是Intel,DEC,M ic rosoft,IBM等公司联合提出的一种新的串行总线接口规范,是为了解决日益增加的PC外设与有限的主板插槽和端口之间的矛盾而制定的一种串行通信标准。
USB具有较高的传输速度: USB协议1.1支持低速(1.5 Mb/s)和全速(12 Mb/s)2种传输模式,而2.0协议支持的速度提高到480 Mb/s。
基于Matlab的数字信号处理课程设计一、课程设计目的:1.熟悉Matlab运行环境,熟练使用Matlab语言进行编程,进行数字信号处理。
2.全面复习数字信号课程所学理论知识,巩固所学知识重点和难点,将理论与实践很好地结合起来。
3.提高综合运用所学知识独立分析和解决问题的能力;二、MATLAB简介MATLAB是功能强大的科学及计算软件,它不但具有以矩阵计算为基础的强大数学计算和分析功能,而且还具有丰富的可视化图形表现功能和方便的程序设计能力。
MATLAB的应用领域极为广泛,除了数学计算和分析外,还被广泛地应用于自动控制、系统仿真、数字信号处理、图形图像分析、数理统计、人工智能、虚拟现实技术、通信工程、金融系统等领域,因此,MATLAB是面向21世纪的计算机程序设计及科学计算语言。
三、MATLAB的主要组成部分MATLAB系统包括5个主要部分:(1)开发环境MATLAB开发环境由一组工具和组件组成,这些工具是图形化的用户界面,包括MATLAB桌面和命令窗口、命令历史窗口、帮助信息浏览器、文件和搜索路径浏览器。
(2)MATLAB数学函数库MATLAB集成了丰富的数学函数库,其强大的计算能力覆盖了从基本函数(如求和、正弦、余弦和复数运算等)到高级函数(如矩阵求逆、矩阵特征值、贝塞尔函数和快速傅立叶变换等)的范围。
(3)MATLAB语言MATLAB语言是一种以矩阵运算为基础的高级语言,包括控制流的描述、函数、数据结构、输入输出及面向对象的编程环境,既可以编制快速使用小程序,也可以编制大型复杂的应用程序。
(4)图形功能MATLAB提供了功能强大的图形系统,既可以用高级命令完成二维和三维数据的可视化、图像处理、动画和图形表达等功能,也可以通过使用图形句柄完成复杂的图形功能,实现对所有图形对象的操作。
(5)应用程序接口(API)MATLAB还提供了应用程序接口库函数,允许用户使用C或FORTRAN语言编写程序与MATLAB连接,功能包括与MATLAB的动态连接、调用MATLAB作为运算引擎、读写MAT文件等。
《数字信号处理》课程设计设计题目:基于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); % 音乐信号有电流声,而且噪声比较明显。