数字信号处理课程设计报告
数字信号处理课程设计报告_3

目录1.设计概述(目的和要求) 32.设计任务 33.设计题目(简要描述三个题目) 44.内容及结果 45.思考及体会14一、课程设计目的及要求数字信号处理是一门理论性和实践性都很强的学科,通过课程设计可以加深理解掌握基本理论,培养学生分析问题和解决问题的综合能力,为将来走向工作岗位奠定坚实的基础,因此做好课程设计是学好本课程的重要教学辅助环节。
本指导书结合教材《数字信号处理教程》的内容,基于MATLAB程序语言提出课程设计的题目及要求,在做课程设计之前要求学生要尽快熟悉MATLAB语言,充分预习相关理论知识,独立编写程序,以便顺利完成课程设计。
二、课程设计任务课程设计的过程是综合运用所学知识的过程。
课程设计主要任务是围绕数字信号的频谱分析、特征提取和数字滤波器的设计来安排的。
根据设计题目的具体要求,运用MATLAB语言完成题目所规定的任务及功能。
设计任务包括:查阅专业资料、工具书或参考文献,了解设计课题的原理及算法、编写程序并在计算机上调试,最后写出完整、规范的课程设计报告书。
课程设计地点在信息学院机房,一人一机,在教师统一安排下独立完成规定的设计任务。
三、课程设计题目根据大纲要求提供以下三个课程设计题目供学生选择,根据实际情况也可做其它相关课题。
1.DFT在信号频谱分析中的应用1. 用MATLAB语言编写计算序列x(n)的N点DFT的m函数文件dft.m。
并与MA TLAB中的内部函数文件fft.m作比较。
2. 对离散确定信号()cos(0.48)cos(0.52)x n n n ππ=+ 作如下谱分析:(1) 截取()x n 使()x n 成为有限长序列N(0≤≤n N -1),(长度N 自己选)写程序计算出()x n 的N 点DFT ()X k ,并画出相应的幅频图()~X k k 。
(2) 将 (1)中()x n 补零加长至M 点(长度M 自己选),编写程序计算()x n 的M 点DFT 1()X k ,并画出相应的图1()~X k k 。
数字信号处理课程设计报告

目录一、课程设计要求二、设计过程(1)设计题目(2)设计源代码(3)设计结果(4)结果分析三、设计总结与心得体会四、课程设计指导书一、课程设计要求1、课程设计指导书①《数字信号处理(第二版)》,丁玉美等,西安电子科技大学出版社;②《MATLAB 及在电子信息课程中的应用》,陈怀琛等,电子工业出版社。
2、课程设计内容:⑴语音信号去噪处理主要要求:1)在windows系统下的录音机录制一段1s左右的语音信号作为原声信号,在MATLAB软件平台下,利用函数wavread对语音信号进行采样,记住采样频率和采样点数;2)画出语音信号的时域波形,对采样后的语音进行fft变换,得到信号的频谱特性;对语音信号分别加入正弦噪声和白噪声,画出加噪信号的时域波形和频谱图;3)根据对加噪语音信号谱分析结果,确定滤除噪声滤波器的技术指标,设计合适的数字滤波器,并画出滤波器的频域响应;4)用所设计的滤波器对加噪的信号进行滤波,在同一个窗口画出滤波前后信号的时域图和频谱图,对滤波前后的信号进行对比,分析信号变化;5)利用sound(x)回放语音信号,验证设计效果。
⑵语音信号的延时和混响主要要求:1)利用Windows下的录音机或其他软件,录制一段自己的语音信号,时间控制在1s左右,并对录制的信号进行采样;2)语音信号的频谱分析,画出采样后语音信号的时域波形和频谱图;3)将信号加入延时和混响,再分析其频谱,并与原始信号频谱进行比较;4)设计几种特殊类型的滤波器:单回声滤波器,多重回声滤波器,全通结构的混响器,并画出滤波器的频域响应;5)用自己设计的滤波器对采集的语音信号进行滤波;6)分析得到信号的频谱,画出滤波后信号的时域波形和频谱,并对滤波前后的信号进行对比,分析信号的变化;7)回放语音信号。
⑶数字滤波器的设计及实现主要要求:1)调用信号产生函数mstg产生三路抑制载波调幅信号相加构成的复合信号st,观察st的时域波形和幅频特性曲线;2)由要求将st中的三路调幅信号分离,通过观察st的幅频特性曲线,分别确定可以分离st中三路抑制载波单频调幅信号的三个滤波器(低通滤波器、带通滤波器、高通滤波器)的通带截止频率和阻带截止频率,要求滤波器的通带最大衰减为0.1dB,阻带最小衰减为60dB;3)编程调用MATLAB滤波器设计函数分别设计这三个数字滤波器,并绘图显示其幅频特性曲线;4)调用滤波函数filter,用所设计的三个滤波器分别对复合信号st进行滤波,分离出st中的三路不同载波频率的调幅信号,并绘图显示滤波后信号的时域波形和频谱,观察分离效果。
数字信号处理DSP 课程设计报告

语音信号滤波去噪——使用脉冲响应不变法设计的巴特沃斯滤波摘要本课程设计主要运用麦克风采集一段语音信号,绘制波形并观察其频谱,给定相应技术指标,用脉冲响应不变法设计的一个满足指标的巴特沃斯IIR滤波器,对该语音信号进行滤波去噪处理,比较滤波前后的波形和频谱并进行分析,根据结果和学过的理论得出合理的结论。
关键词课程设计;滤波去噪;巴特沃斯滤波器;脉冲响应不变法;MATLAB1.课程设计目的和要求1.1 课程设计目的《数字信号处理》课程设计是在学生完成数字信号处理和MATLAB的结合后的基本实验以后开设的。
本课程设计的目的是为了让学生综合数字信号处理和MATLAB并实现一个较为完整的小型滤波系统。
这一点与验证性的基本实验有本质性的区别。
开设课程设计环节的主要目的是通过系统设计、软件仿真、程序安排与调试、写实习报告等步骤,使学生初步掌握工程设计的具体步骤和方法,提高分析问题和解决问题的能力,提高实际应用水平。
1.2课程设计的要求(1)滤波器指标必须符合工程设计。
(2)设计完后应检查其频率响应曲线是否满足指标。
(3)处理结果和分析结论应该一致,而且应符合理论。
(4)独立完成课程设计并按要求编写课程设计报告。
2 .设计原理用麦克风采集一段语音信号,绘制波形并观察其频谱,给定相应技术指标,用脉冲响应不变法设计的一个满足指标的巴特沃斯IIR 滤波器,对该语音信号进行滤波去噪处理,比较滤波前后的波形和频谱并进行分析。
2.1 IIR 滤波器从离散时间来看,若系统的单位抽样(冲激)响应延伸到无穷长,称之为“无限长单位冲激响应系统”,简称为IIR 系统。
无限长单位冲激响应(IIR )滤波器有以下几个特点:(1)系统的单位冲激响应h(n)是无限长; (2)系统函数H(z)在有限z 平面(0<z <∞); (3) 结构上存在着输出到输入的反馈,也就是结构上是递归型的。
IIR 滤波器采用递归型结构,即结构上带有反馈环路。
数字信号处理课程设计实验报告

数字信号处理课程设计实验报告数字信号处理课程设计实验报告(基础实验篇)实验⼀离散时间系统及离散卷积⼀、实验⽬的和要求实验⽬的:(1)熟悉MATLAB软件的使⽤⽅法。
(2)熟悉系统函数的零极点分布、单位脉冲响应和系统频率响应等概念。
(3)利⽤MATLAB绘制系统函数的零极点分布图、系统频率响应和单位脉冲响应。
(4)熟悉离散卷积的概念,并利⽤MATLAB计算离散卷积。
实验要求:(1)编制实验程序,并给编制程序加注释;(2)按照实验内容项要求完成笔算结果;(3)验证编制程序的正确性,记录实验结果。
(4)⾄少要求⼀个除参考实例以外的实例,在实验报告中,要描述清楚实例中的系统,并对实验结果进⾏解释说明。
⼆、实验原理δ的响应输出称为系统1.设系统的初始状态为零,系统对输⼊为单位脉冲序列()n的单位脉冲响应()h n。
对于离散系统可以利⽤差分⽅程,单位脉冲响应,以及系统函数对系统进⾏描述。
单位脉冲响应是系统的⼀种描述⽅法,若已知了系统的系统函数,可以利⽤系统得出系统的单位脉冲响应。
在MATLAB中利⽤impz 由函数函数求出单位脉冲响应()h n2.幅频特性,它指的是当ω从0到∞变化时,|()|Aω,H jω的变化特性,记为()相频特性,指的是当ω从0到∞变化时,|()|∠的变化特性称为相频特性,H jωω。
离散系统的幅频特性曲线和相频特性曲线直观的反应了系统对不同记为()频率的输⼊序列的处理情况。
三、实验⽅法与内容(需求分析、算法设计思路、流程图等)四、实验原始纪录(源程序等)1.离散时间系统的单位脉冲响应clcclear alla=[1,-0.3];b=[1,-1.6,0.9425];impz(a,b,30);%离散时间系统的冲激响应(30个样值点)title('系统单位脉冲响应')axis([-3,30,-2,2]);2.(1)离散系统的幅频、相频的分析⽅法21-0.3()1 1.60.9425j j j e H z e e ωωω---=-+clcclear alla=[1,-0.3];b=[1,-1.6,0.9425];%a 分⼦系数,b 分母系数 [H,w]=freqz(a,b,'whole'); subplot(2,1,1); plot(w/pi,abs(H));%幅度 title('幅度谱');xlabel('\omega^pi');ylabel('|H(e^j^\omega)'); grid on;subplot(2,1,2);plot(w/pi,angle(H));%相位 title('相位谱');xlabel('\omega^pi'); ylabel('phi(\omega)'); grid on;(2)零极点分布图clc; clear all a=[1,-0.3];b=[1,-1.6,0.9425]; zplane(a,b);%零极图 title('零极点分布图')3.离散卷积的计算111()()*()y n x n h n =clcclear all% x=[1,4,3,5,3,6,5] , -4<=n<=2 % h=[3,2,4,1,5,3], -2<=n<=3 % 求两序列的卷积 clear all;x=[1,4,3,5,3,6,5]; nx=-4:2; h=[3,2,4,1,5,3];nh=-2:3;ny=(nx(1)+nh(1)):(nx(length(x))+nh(length(h))); y=conv(x,h);n=length(ny);subplot(3,1,1);stem(nx,x);xlabel('nx');ylabel('x'); subplot(3,1,2);stem(nh,h);xlabel('nh');ylabel('h'); subplot(3,1,3);stem(ny,y);xlabel('n');ylabel('x 和h 的卷积')五、实验结果及分析(计算过程与结果、数据曲线、图表等)1.离散时间系统的单位脉冲响应051015202530-2-1.5-1-0.500.511.52n (samples)A m p l i t u d e系统单位脉冲响应2.离散系统的幅频、相频的分析⽅法00.20.40.60.81 1.2 1.4 1.6 1.82 102030幅度谱ωp i|H (e j ω)0.20.40.60.811.21.41.61.82-2-1012相位谱ωp ip h i (ω)-1-0.500.51-1-0.8-0.6-0.4-0.200.20.40.60.81Real PartI m a g i n a r y P a r t零极点分布图3.离散卷积的计算-4-3-2-1012nxx-2-1.5-1-0.500.51 1.522.53nhh -6-4-20246nx 和h 的卷积六、实验总结与思考实验⼆离散傅⽴叶变换与快速傅⽴叶变换⼀、实验⽬的和要求实验⽬的:(1)加深理解离散傅⾥叶变换及快速傅⾥叶变换概念; (2)学会应⽤FFT 对典型信号进⾏频谱分析的⽅法; (3)研究如何利⽤FFT 程序分析确定性时间连续信号; (4)熟悉应⽤FFT 实现两个序列的线性卷积的⽅法;实验要求:(1)编制DFT 程序及FFT 程序,并⽐较DFT 程序与FFT 程序的运⾏时间。
《数字信号处理》课程设计报告-卷积运算及算法实现

《数字信号处理》课程设计报告卷积运算及算法实现专业:通信工程班级:通信08-2BF组次:第10组姓名:学号:卷积运算及算法实现一、 设计目的卷积运算是一种有别于其他运算的新型运算,是信号处理中一种常用的工具。
随着信号与系统理论的研究的深入及计算机技术发展,卷积运算被广泛地运用到现代地震勘测,超声诊断,光学诊断,光学成像,系统辨识及其他诸多新处理领域中。
了解并灵活运卷积运算用去解决问题,提高理论知识水平和动手能力,才是学习卷积运算的真正目的。
通过这次课程设计,一方面加强对《数字信号处理》这门课程的理解和应用,另一方面体会到学校开这些大学课程的意义。
二、设计任务探寻一种运算量更少,算法步骤更简单的算法来实现卷积运算,文中主要通过阶梯函数卷积计算方法和斜体函数卷积计算方法对比来得出最终结论。
三、设计原理1,什么是卷积?卷积是数字信号处理中经常用到的运算。
其基本的表达式为:()()()∑=-=nm m n x m h n y 0换而言之,假设两个信号f 1(t)和f 2(t),两者做卷积运算定义为 f(t)d做一变量代换不难得出: f(t)d =f 1(t)*f 2(t)=f 2(t)*f 1(t)在教材上,我们知道用图解法很容易理解卷积运算的过程,在此不在赘述。
2,什么是阶梯函数所谓阶梯函数,即是可以用阶梯函数u(t) 和u(t-1)的线性组合来表示的函数,可以看做是一些矩形脉冲的集合,图1-1给除了两个阶梯函数的例子。
1—1其中f(t)=2u(t)+u(t-1)-2u(t-2)-u(t-3),h(t)= 2u(t)-u(t-1)+2u(t-2)-3u(t-3).以图1—1中两个阶梯函数为例介绍本文提出的阶梯函数卷积算法。
根据卷积的性质(又称为杜阿美尔积分),上述f(t)与h(t)的卷积等于f(t)的导数与h(t)的积分的卷积,即:f(t)*h(t)=*由于f(t)为阶梯函数,因此其导数也为冲击函数及其延时的线性组合,如图1—2(a)所示。
数字信号处理报告

《数字信号处理》课程设计报告设计一信号的基本运算【一】设计目的熟悉信号的基本运算,通过仿真结果加深理解。
【二】设计内容1.现有一段以采样频率8192Hz采样得到的语音数据x(k),为了模仿出回音的效果,可以对数据进行如下处理:x(k)=x(k)+a*x(k-d),其中d为时延,a为时延信号的衰减幅度。
根据上述原理,进行仿真实验,并演示回声的效果。
(参数:时延d=0.4秒,衰减幅度a=0.5)2.对上述语音信号进行时间反转x(-k)、上采样x(2k)、下采样x(k/2)操作,并演示这些运算的效果。
【三】设计过程,调试,分析。
数字信号处理的主要研究对象是语音信号和图像信号,语音信号的研究可以从时域和频域两个方面来进行。
其中时域的分析处理有两种方法: 一种是进行语音信号分析, 这属于线性处理的范畴,主要是通过信号的加减、时移、倍乘、卷积、求相关函数等来实现;另一种是生成和变换成各种调制信号, 这属于非线性的范畴,主要是对信号平均累加器的动态范围进行压缩扩张, 用门限方法对噪声的抑制。
对频域分析处理, 即对信号的频率特性在频谱中加以分析研究, 这拓展了信号分析的范围, 是对不确定信号分析的主要方法。
在实际应用中, 信号的时域频分析经常同时进行。
1 语音信号的采集与时频分析1. 1 语音信号的采集利用 PC 机上的声卡和WINDOWS操作系统可以进行数字信号的采集。
将话筒输入计算机的语音输入插口上, 启动录音机。
按下录音按钮, 接着对话筒说话/大家好0 ,说完后停止录音, 屏幕左侧将显示所录声音的长度。
点击放音按钮,可以实现所录音的重现。
以文件名/ dajiahao0 保存入 g:\MATLAB\ work中。
可以看到, 文件存储器的后缀默认wav。
在 Matlab 软件平台下可以利用函数wavread对语音信号进行采样,得到了声音数据变量x,同时把x的采样频率Fs= 8000Hz和数据位Nbits= 8Bit放进了MATALB的工作空间。
数字信号处理课程设计报告实验三

数字信号处理课程设计报告实验三目录1. 实验三概述 (2)1.1 实验目的 (2)1.2 实验要求 (3)1.3 实验内容 (4)2. 实验原理 (5)2.1 数字信号处理的简介 (6)2.2 数字滤波器的类型 (6)2.3 FIR和IIR滤波器的区别 (7)3. 实验软件与硬件环境 (9)3.1 软件环境 (10)3.2 硬件环境 (12)3.3 实验设备介绍 (13)4. 实验步骤 (14)4.2 设计数字滤波器 (15)4.3 滤波器实现与调试 (16)4.4 实验数据分析 (17)5. 实验设计 (18)5.1 数字滤波器的设计方法 (19)5.2 滤波器参数的选择 (20)5.3 滤波器实现代码实现 (21)6. 实验结果 (22)6.1 滤波前后的信号对比 (24)6.2 滤波效果分析 (25)6.3 滤波器性能指标评价 (26)7. 实验讨论 (27)7.1 实验中发现的问题 (29)7.2 解决问题的方法与思考 (29)8. 实验心得 (32)8.1 数字信号处理的理解加深 (33)8.2 编程能力的提升 (34)8.3 对实验中遇到的挑战的看法 (35)1. 实验三概述本实验课题为“数字滤波器设计与分析”,旨在使学生深入理解数字滤波器的原理及设计方法,并掌握使用仿真工具进行实际滤波器设计与性能分析的能力。
实验通过MATLAB平台,分别实现低通、高通及带通滤波器的设计与模拟,并进行频率响应分析、时域响应分析以及信号处理效果的评价。
不同类型的数字滤波器设计方法原理介绍,包括IIR和FIR滤波器。
不同设计方法的优缺点分析,并结合实际应用场景选择合适的滤波器类型。
使用MATLAB自带函数和滤波器设计工具包进行滤波器设计,以及根据不同指标对滤波器参数进行调整。
通过完成本实验,学生将能掌握数字滤波器的理论知识和应用技能,并对其优缺点及应用场景有更深入的理解。
1.1 实验目的加载、分析和可视化语音信号:学生需学会使用高级软件工具加载语音信号数据,并运用绘图工具展示信号的时域波形及频谱图。
数字信号处理课程设计报告——数字听诊器

目录一. 课程设计任务 (1)1、掌握MATLAB及其在数字信号处理中的应用 (1)2、课程设计题目:数字听诊器信号分析 (1)二. 课程设计原理及设计方案 (2)1、滤波器设计原理 (2)1.1滤波器概述 (2)1.2FIR数字滤波器设计原理 (2)1.3 FIR数字滤波器的特性 (2)1.4窗函数的介绍 (4)2、设计方案 (5)三. 课程设计的步骤和结果 (6)1、读取病人心肺声音信号并对其进行频谱分析 (6)2、设计滤波器对信号进行滤波(以凯塞窗为例) (7)2.1 低通滤波器 (7)2.2带通滤波器 (8)2.3带阻滤波器 (10)3、GUI界面设计 (11)3.1 BUTTON1 病人心肺声音信号提取 (11)3.2 BUTTON2 退出系统 (12)3.3 BUTTON3 运行 (12)3.4文本编辑框 (15)3.5 GUI整体界面 (15)四. 课程设计总结 (16)五. 设计体会 (17)六. 参考文献 (18)一. 课程设计任务1、掌握MATLAB及其在数字信号处理中的应用MATLAB 计算软件是一套进行科学计算的高性能软件,可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。
Matlab语言可以很容易实现Fourier 变换和数字滤器的设计,广泛应用于数字信号处理中,给我们对数字信号的研究工作带来很大方便,同时具有功能全面的GUI程序设计,使所设计的应用程序具有图形用户界面,方便用户操作。
2、课程设计题目:数字听诊器信号分析目前大夫主要以听诊器倾听病人的气管、肺部区域的声音,对病人的疾病进行判断;请设计一个听诊的软件,要求如下:1)可记录病人的姓名、年龄、性别、病史、不同疾病部位等状况;2)对病人的气管、肺部等区域的声音进行采集、分析、存储(前端听诊部分不用考虑,只考虑数据采集部分)。
数字信号处理课程设计报告

目录一、课程设计名称二、课程设计前期介绍(凌阳单片机)1、源来2、简介3、优点4、语音模块三、课程设计内容及要求四、课程设计原理1、硬件设计2、软件设计五、主程序代码六、调试七、心得及体会八、附录1、原件清单2、原理图3、实物图、课程设计名称基于凌阳16位单片机的定时报警器二、课程设计前期介绍(凌阳单片机)2.1源来随着单片机功能集成化的发展,其应用领域也逐渐地由传统的控制,扩展为控制处理数据处理以及数字信号处理,DSP( Digital Signal Processing )等领域。
凌阳的16位单片机就是为适应这种发展而设计的。
2.2简介它的CPU内核采用凌阳最新推出的Microcontroller and Signal Processor 16 位微机处理器芯片,以下简称µ ' nSP。
围绕micro; ' nSP所形成的16位u ' nSP系列单片机,以下简称µ ' nSP家族。
采用的是模块式集成结构,它以µ' nSP内核为中心集成不同规模的ROM PAM和功能丰富的各种外设部件。
µ ' nSP内核是一个通用的和结构。
除此之外的其它功能模块均为可选结构。
以及这种结构可大可小可有可无,借助这种通用结构附加可选结构的积木式的构成,便可成为各种系列的派生产品,以适合不同场合,这样做无疑会使每种派生产品具有更强的功能和更低的成本。
µ ' nSP家族有有以下特点:体积小,集成度高,可靠性好易于扩展。
µ ' nSP家族把各功能把各功能部件模块化地集成在一个芯片里。
内部采用总线结构,因为减少了各功能部件之间的连接,提高了其可靠性和抗干扰能力,另外,模块化的结构易于系列的扩展,以适应不同用户的需求。
具有较强的中断处理能力。
口’ nSPTM家族的中断系统支持10个中断向量及10 余个中断源,适合实时应用领域。
数字信号处理实验报告完整版[5篇模版]
![数字信号处理实验报告完整版[5篇模版]](https://img.taocdn.com/s3/m/7b21a71bb5daa58da0116c175f0e7cd184251866.png)
数字信号处理实验报告完整版[5篇模版]第一篇:数字信号处理实验报告完整版实验 1利用 T DFT 分析信号频谱一、实验目的1.加深对 DFT 原理的理解。
2.应用 DFT 分析信号的频谱。
3.深刻理解利用DFT 分析信号频谱的原理,分析实现过程中出现的现象及解决方法。
二、实验设备与环境计算机、MATLAB 软件环境三、实验基础理论T 1.DFT 与与 T DTFT 的关系有限长序列的离散时间傅里叶变换在频率区间的N 个等间隔分布的点上的 N 个取样值可以由下式表示:212 /0()|()()0 1Nj knjNk NkX e x n e X k k Nπωωπ--====≤≤-∑由上式可知,序列的 N 点 DFT ,实际上就是序列的 DTFT 在 N 个等间隔频率点上样本。
2.利用 T DFT 求求 DTFT方法 1 1:由恢复出的方法如下:由图 2.1 所示流程可知:101()()()Nj j n kn j nNn n kX e x n e X k W eNωωω∞∞----=-∞=-∞=⎡⎤==⎢⎥⎣⎦∑∑∑由上式可以得到:IDFT DTFT第二篇:数字信号处理实验报告JIANGSUUNIVERSITY OF TECHNOLOGY数字信号处理实验报告学院名称:电气信息工程学院专业:班级:姓名:学号:指导老师:张维玺(教授)2013年12月20日实验一离散时间信号的产生一、实验目的数字信号处理系统中的信号都是以离散时间形态存在的,所以对离散时间信号的研究是数字信号的基本所在。
而要研究离散时间信号,首先需要产生出各种离散时间信号。
使用MATLAB软件可以很方便地产生各种常见的离散时间信号,而且它还具有强大绘图功能,便于用户直观地处理输出结果。
通过本实验,学生将学习如何用MATLAB产生一些常见的离散时间信号,实现信号的卷积运算,并通过MATLAB中的绘图工具对产生的信号进行观察,加深对常用离散信号和信号卷积和运算的理解。
数字信号处理课程设计实验报告

数字信号处理课程设计实验报告通信与信息工程学院数字信号处理课程设计班级:姓名:学号:指导教师:设计时间:成绩:评语:通信与信息工程学院二〇一四年题目一:采样定理的验证1.课程设计目的及要求:1). 掌握利用MATLAB分析系统频率响应的方法,增加对仿真软件MATLAB的感性认识,学会该软件的操作和使用方法。
2). 掌握利用MATLAB实现连续信号采用与重构的方法,加深理解采样与重构的概念。
3 ). 初步掌握线性系统的设计方法,培养独立工作能力。
4). 学习MATLAB中信号表示的基本方法及绘图函数的调用,实现对常用连续时间信号的可视化表示,加深对各种电信号的理解。
5). 验证信号与系统的基本概念、基本理论,掌握信号与系统的分析方法。
6). 加深对采样定理的理解和掌握,以及对信号恢复的必要性;掌握对连续信号在时域的采样与重构的方法。
2.详细设计过程及调试结果:1).设()(0.8)()n,利用filter函数求出()*()x n u nx n x n的源程序:n=0:49xn=(0.8).^nB=1A=[1,-0.8]yn=filter(B,A,xn)stem(n,yn)xlabel('n');ylabel('yn')本题验结果及分析:2):模拟信号()sin(20),010.01a s x t t t T s π=≤≤=,在,0.050.1s s 和间隔采样得到()x n :a.每一个s T 画出()x n 的源程序:t=0:0.01:1;T0=0.1; T1=0.01;n1=0:100; T2=0.05;n2=0:20; T3=0.1;n3=0:10; xt=sin(20*pi*t); xn1=sin(20*pi*n1*T1); xn2=sin(20*pi*n2*T2);xn3=sin(20*pi*n3*T3);subplot(4,1,1);plot(t,xt);title('模拟信号xt图');xlabel('t');ylabel('xt');grid on; subplot(4,1,2);stem(n1,xn1,'.');title('0.01s采样图');xlabel('n');ylabel('xn1');grid on; subplot(4,1,3);stem(n2,xn2,'.');title('0.05s采样图');xlabel('n');ylabel('xn2');grid on; subplot(4,1,4);stem(n3,xn3,'.');title('0.1s采样图');xlabel('n');ylabel('xn3');grid on;调试结果分析:b.采用sin c内插从样本()y t的源程序:x n重建模拟信号()at=0:0.01:1;T0=0.1;xt=sin(20*pi*t);T1=0.01;n1=0:100;T2=0.05;n2=0:20;T3=0.1;n3=0:10;xt=sin(20*pi*t);subplot(4,1,1);plot(t,xt);title('原信号xt模拟图');xlabel('t');ylabel('xt');grid on;xn1=sin(20*pi*n1*T1);xn2=sin(20*pi*n2*T2);xn3=sin(20*pi*n3*T3);t1=0:T1:1;t2=0:T2:1;t3=0:T3:1;tn1=ones(length(n1),1)*t1-n1'*T1*ones(1,length(t1));tn2=ones(length(n2),1)*t2-n2'*T2*ones(1,length(t2));tn3=ones(length(n3),1)*t3-n3'*T3*ones(1,length(t3));yt1=xn1*sinc(tn1*pi/T1);subplot(4,1,2);plot(t1,yt1);axis([ 0 1 -1 1]); title('sinc内插0.01恢复的xt1图');xlabel('n');ylabel('xt1');grid on; yt2=xn2*sinc(tn2*pi/T2);subplot(4,1,3);plot(t2,yt2);axis([ 0 1 -1 1]); title('sinc内插0.05恢复的xt2图');xlabel('n');ylabel('xt2');grid on; yt3=xn3*sinc(tn3*pi/T3);subplot(4,1,4);plot(t3,yt3);axis([ 0 1 -1 1]); title('sinc内插0.1恢复的xt3图');xlabel('n');ylabel('xt3');grid on;调试结果分析:c.采用三次样条内插从样本()x n重建模拟信号源程序:t=0:0.01:1; xt=sin(20*pi*t);T1=0.01;n1=0:100;T2=0.05;n2=0:20;T3=0.1;n3=0:10;T1=0:T1:1;T2=0:T2:1;T3=0:T3:1;xt=sin(20*pi*t);xn1=sin(20*pi*T1);xn2=sin(20*pi*T2);xn3=sin(20*pi*T3);yt1=spline(T1,xn1,t);yt2=spline(T2,xn2,t);yt3=spline(T3,xn3,t);subplot(4,1,1);plot(t,xt);title('原信号xt模拟图');xlabel('t');ylabel('xt');grid on;subplot(4,1,2);plot(t,yt1);axis([ 0 1 -1 1]);title('三次样条0.01恢复的xt1图');xlabel('n');ylabel('xt1');grid on; subplot(4,1,3);plot(t,yt2);axis([ 0 1 -1 1]);title('三次样条0.05恢复的xt2图');xlabel('n');ylabel('xt2');grid on; subplot(4,1,4);plot(t,yt3);axis([ 0 1 -1 1]);title('三次样条0.1恢复的xt3图');xlabel('n');ylabel('xt3');grid on; 调试结果分析:3.总结体会:连续信号是指自变量的取值范围是连续的,且对于一切自变量的取值,除了有若干个不连续点以外,信号都有确定的值与之对应。
数字信号处理课程设计报告_4

目录一、课程设计的目的 (2)二、数字滤波器的设计步骤 (2)2.2、IIR数字滤波器与FIR数字滤波器的区别 (2)三、IIR数字滤波器 (3)3.1、IIR数字滤波器的特点 (3)3.1.2、IIR数字滤波器采用递归型结构 (3)3.1.3、借助成熟的模拟滤波器的成果 (3)3.1.4、需加相位校准网络 (3)3.2、用双线性法设计IIR数字滤波器 (3)3.3、巴特沃斯低通滤波器的设计 (4)3.4、巴特沃斯高通滤波器的设计 (5)3.4.1、巴特沃斯高通滤波器各参数图形 (5)3.4.2、巴特沃斯高通滤波器滤波效果图 (5)四、FIR数字滤波器 (5)4.1、FIR滤波器的特点 (5)4.2、窗函数法设计FIR数字滤波器 (6)五、程序实例源码 (8)六、问题分析 (12)七、心得体会 (13)八、参考文献 (13)一、课程设计的目的数字滤波是数字信号分析中最重要的组成部分之一,与模拟滤波相比,它具有精度和稳定性高、系统函数容易改变、灵活性强、便于大规模集成和可实现多维滤波等优点。
在信号的过滤、检测和参数的估计等方面,经典数字滤波器是使用最广泛的一种线性系统。
本次课程设计是通过对常用数字滤波器的设计和实现,掌握数字信号处理的工作原理及设计方法;熟悉用双线性变换法设计 IIR 数字滤波器和用窗函数法设计FIR数字滤波器的原理与方法,掌握利用数字滤波器对信号进行滤波的方法,掌握数字滤波器的计算机仿真方法,并能够对设计结果加以分析。
二、数字滤波器的设计步骤2.1、不论是IIR滤波器还是FIR滤波器的设计都包括三个步骤:(1)按照实际任务的要求,确定滤波器的性能指标。
(2)用一个因果、稳定的离散线性时不变系统的系统函数去逼近这一性能指标。
根据不同的要求可以用IIR系统函数,也可以用FIR系统函数去逼近。
(3)利用有限精度算法实现系统函数,包括结构选择,字长选择等。
2.2、IIR数字滤波器与FIR数字滤波器的区别2.2.1、单位响应IIR数字滤波器单位响应为无限脉冲序列,而FIR数字滤波器单位响应为有限的;FIR滤波器,也就是“非递归滤波器”,没有引入反馈。
数字信号处理课程设计实验报告

华北电力大学实验报告实验环境MATLAB 7.1实验名称实验一:FFT的应用实验目的1、熟悉MATLAB在数字信号处理中的应用。
2、掌握利用FFT计算序列线性卷积的基本原理及编程实现。
3、掌握对连续信号进行采样的基本原理和方法,并利用FFT对信号进行频谱分析。
实验原理1.线性卷积和圆周卷积设x(n)为L点序列,h(n)为M点序列,x(n)和h(n)的线性卷积为的长度为L+M-1。
x(n)和h(n)的N点圆周卷积为圆周卷积与线性卷积相等而不产生交叠的必要条件为圆周卷积定理:根据DFT的性质,x(n)和h(n)的N点圆周卷积的DFT等于它们DFT的乘积2.快速卷积快速卷积算法用圆周卷积实现线性卷积,根据圆周卷积定理利用FFT算法实现圆周卷积。
可以将快速卷积的步骤归纳如下:(1)为了使线性卷积可以用圆周卷积来计算,必须选择;同时为了能使用基-2FFT完成卷积运算,要求。
采用补零的办法使x(n)实验原理和h(n)的长度均为N。
(2)计算x(n)和h(n)的N点FFT(3)组成乘积(4)利用IFFT计算Y(K)的IDFT,得到线性卷积y(n)3.分段卷积我们考察单位取样响应为h(n)的线性系统,输入为x(n),输出为y(n),则当输入序列x(n)极长时,如果要等x(n)全部集齐时再开始进行卷积,会使输出相对输入有较大的延时,再者如果序列太长,需要大量存贮单元。
为此我们把x(n)分段,分别求出每段的卷积,合在一起得到最后总的输出。
这种方法称为分段卷积分段卷积可细分为重叠保留法和重叠相加法。
重叠保留法:设x(n)的长度为,h(n)的长度为M。
我们把序列x(n)分成多段N点序列(n),每段与前一段重叠M-1个样本。
由于第一段没有前一段保留信号,为了修正,我们在第一个输入端前面填充M-1个零。
计算每一段与h(n)的圆周卷积,则其每段卷积结果的前M-1个样本不等于线性卷积值,不是正确的样本值。
所以我们将每段卷积结果的前M-1个样本社区,只保留后面的N-M+1个正确输出样本,把这些输出样本合起来,得到总输出。
数字信号处理课程设计报告

1 绪论1.1设计目的通过本次数字信号处理课程设计,综合运用数字信号处理课程和其他有关课程的理论和生产实际知识去分析和解决具体问题,并使所学知识得到进一步巩固、深化和发展。
学习设计滤波器的一般方法,通过课程设计树立正确的设计思想,提高分析问题、解决问题的能力。
进行设计基本技能的训练,如查阅设计资料和手册、程序的设计、调试等。
1.2设计要求(1)掌握数字信号处理的基本概念,基本理论和基本方法。
(2)熟悉离散信号和系统的时域特性。
(3)掌握序列快速傅里叶变换方法。
(4)学会MATLAB的使用,掌握MATLAB的程序设计方法。
(5)掌握利用MATLAB对语音信号进行频谱分析。
(6)掌握滤波器的网络结构。
1.3 设计内容1.3.1预习题1、设计卷积运算的演示程序:(1)可输入任意两个序列x1(n)、x2(n),指定x1(n)为自己的学号,例如x1(n)={2, 0, 1, 0, 5, 7, 0, 5, 0, 2, 0, 1}。
x2(n)的内容和长度自选。
例如x2(n)={0.5, 2.43, 6.17, 12.93, 22.17, 32.25, 40.88, 45.87, 45.87, 40.88, 32.25, 22.17, 12.93, 6.17, 2.43,1.007}。
(2)分别动态演示两个序列进行线性卷积x1(n)*x2(n)和圆周卷积x1(n)⊙x2(n)的过程;要求分别动态演示翻转、移位、乘积、求和的过程;(3)圆周卷积默认使用两个序列中的最大长度,但卷积前可以指定卷积长度N用以进行混叠分析;(4)改变圆周卷积长度N,根据实验结果分析两类卷积的关系;(5)在计算机操作系统中选一段声音文件(XP系统在“C:\WINDOWS\Media”),读取文件取 10ms的声音数据产生时域序列x1(n),序列内容自定义。
利用x2(n)={0.5, 2.43, 6.17, 12.93, 22.17, 32.25, 40.88, 45.87, 45.87, 40.88, 32.25, 22.17, 12.93, 6.17, 2.43, 1.007}。
数字信号处理课程设计报告

设计一信号的基本运算一、设计目的熟悉信号的基本运算,通过运用Matlab进行仿真,加深对信号基本运算的理解。
通过对数据的处理,加深对Matlab中数据存取,数值运算,矩阵运算的方式及工作原理的了解。
二、设计原理Matlab是以矩阵为基础的一种软件,其集成了数值运算、矩阵运算、信号处理和图形等众多功能。
其中,对数据的存取都是以矩阵的方式进行的。
Matlab工具箱中提供了很多已经编写好的函数,我们这用些函数的时候只需要从工具箱中调用就可以了,这些函数都十分的方便。
如其中的wavread( )函数,我们可以用来从音频文件中获取数据,然后对这些数据进行运算,然后通过sound( )函数对音频文件进行回放;还有一些特殊矩阵的生成函数,如用函数zeros生成全0矩阵:格式B=zeros(m,n)生成m×n的全0阵;用函数ones生成全1矩阵:格式B=ones(m,n)生成m×n的全1阵;用函数rand生成随机矩阵:格式B=rand(m,n)生成m×n的随机矩阵;用函数eye生成单位阵:格式B=eye(m,n)生成m×n矩阵,其中对角线元素全为1,其他元素为0。
通过类似这样的操作,我们就可以方便的对信号进行相应的处理。
本次实验中,我们对一段音频信号,进行回音的模仿,然后经过上采样和下采样,反转的处理,并演示处理后的效果。
三、设计内容本次实验,我们通过采样得到一段以采样频率为8192Hz的语音信号x(k),然后通过编写Matlab程序对这段语音信号进行回音模仿,采用函数x(k)=x(k)+a*x(k-d),期中d为时延,a为时延信号的衰减幅度。
然后对语音信号进行下采样x(k/2)、上采样x(2k)、反转x(-k)。
下采样即在得到的语音信号的基础上,隔一个k值取一个函数值;上采样,即在得到的信号的基础上进行每两个k值之间进行插值;反转即把得到的信号的k变为-k。
通过这样的处理后,回放语音信号,观察效果,再看处理后的信号的时域波形。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数字信号处理课程设计报告题目:数字调音台学院:信息工程学院专业:通信工程指导教师:指导时间:目录1背景与内容 (1)2设计目的 (1)3设计原理 (1)3.1研究语音信号的特点; (1)3.2IIR数字滤波器 (2)3.3滤波器设计所涉及的matlab函数 (2)3.4总体方案 (3)4设计过程 (4)4.1系统流程图 (4)4.2具体设计 (4)5实验代码及结果 (7)5.1MATLAB源程序 (7)5.2系统运行与测试 (19)6实验体会及总结 (24)7参考文献 (24)1.背景与内容根据数字信号处理课程设计教学大纲的要求,利用Matlab(工程设计软件)设计数字调音台,并且给出了具体的软件实施方案。
Matlab功能强大、简单易学、编程效率高,深受广大科技工作者的欢迎。
特别是Matlab还具有信号分析工具箱,不需具备很强的编程能力,就可以很方便地进行信号分析、处理和设计。
此次设计利用Matlab对音频信号进行采样后;并画出音频信号的时域波形、频谱图;然后利用IIR设计高通、低通、带通以及帯阻滤波器对现有的音频信号进行滤波,实现音频音色的改变实现调音台的功能,并画出滤波后信号的时域波形和频谱,对滤波前后的信号进行对比,分析信号的变化;最后利用GUI设计一个数字信号系统界面。
1、选一首歌曲,采用已经学过的信号处理知识,设计高通、带通、低通、带阻几种滤波器,对其进行数字信号滤波,观察信号的变化;2、实时显示处理前的信号频谱和处理后的信号频谱;3、设计系统界面:为了使编制的程序操作方便,设计处理系统的用户界面,在所设计的系统界面上可以选择滤波器的类型,输入滤波器的参数、显示滤波器的频率响应等。
2.设计目的1、通过对常用数字滤波器的设计和实现,掌握数字信号处理的工作原理及设计方法;熟悉用IIR 数字滤波器和FIR滤波器的原理与方法,掌握利用数字滤波器对信号进行滤波的方法2、掌握数字滤波器的计算机仿真方法,并能够对设计结果加以分析。
3、通过对Matlab的使用,掌握Matlab的程序设计方法,掌握Matlab设计IIR数字滤波器和FIR滤波器的方法,并学会用Matlab对信号分析和处理。
4、学习使用MATLAB GUI设计工具应用平面。
3.设计原理3.1研究语音信号的特点;语音信号的带宽约为5KHz,主要能量集中在低频段。
语音信号是典型的随机信号,人的每次发音过程都是一个随机过程。
很难得到两次完全相同的发音样本。
语音时域信号特征1)清音段:能量低,过零率高,波形特点有点像随机的噪声。
这部分信号常与语音的辅音段对应。
2)浊音段:能量高,过零率低,波形具有周期性特点。
所谓的短时平稳性质就是处于这个语音浊音(元音)段中。
3)过渡段:一般是指从辅音段向元音段信号变化之间的部分。
信号变化快,是语音信号处理中最复杂、困难的部分。
3.2 IIR数字滤波器设计IIR数字滤波器一般采用间接法(脉冲响应不变法和双线性变换法),应用最广泛的是双线性变换法。
基本设计过程是:①先将给定的数字滤波器的指标转换成过渡模拟滤波器的指标;②设计过渡模拟滤波器;③将过渡模拟滤波器系统函数转换成数字滤波器的系统函数。
3.3滤波器设计所涉及的matlab函数[y,fs]= wavread(wavFile1),此函数能读取.wav格式的音频文件。
其中y为语音信号,fs为采样频率,wavFile1为WA V音频文件存放路径。
[N,wc]=buttord(wp,ws,Rp,As),用于计算巴特沃斯数字滤波器的阶数N和3dB 截止频率wc。
调用参数wp,ws分别为数字滤波器的通带、阻带截止频率的归一化值,要求:0 ≤wp≤1,0≤ws≤1。
1表示数字频率pi。
rp,rs分别为通带最大衰减和组带最小衰减(dB)。
当ws≤wp时,为高通滤波器;当ws≥wp时,为低通通滤波器;当wp 和ws为二元矢量时,当wsl<wpl<wpu<wsu为带通滤波器;当wpl<wsl<wss<wps 为带阻滤波器。
N,wc作为butter函数的调用参数。
[B,A]=butter:[b,a]=butter(N,wc,'high'):设计N阶高通滤波器。
[b,a]=butter(N,wc,'low'):设计N阶低通滤波器。
[b,a]=butter(N,wc):当wc为具有两个元素的矢量wc=[w1,w2]时,它设计2N 阶带通滤波器[b,a]=butter(N,wc,'stop'):若wc=[w1,w2],则它设计2N阶带阻滤波器。
利用冲激响应不变法,把系统函数为(式1)模拟滤波器变换成等价的数字滤波器,采样间隔T=1S。
先经过计算得到:(式2)则有如下式子(式3) Matlab实验参考程序如下:B=[1,1];A=[1,5,6];T=1;Fs=1/T;[Bz,Az]=impinvar(B,A,Fs); %用冲激响应不变法将模拟滤波器变换成数字滤波器运行结果:Bz =1.0000 -0.2209Az = 1.0000 -0.1851 0.0067得到的数据和先前计算得到的数据相同,故利用冲激响应不变化法把模拟滤波器设计成数字滤波器正确。
z=filter(B,A,x) (式4) 输入X为滤波前序列,Y为滤波结果序列,B/A 提供滤波器系数,B为分子,A为分母。
整个滤波过程是通过下面差分方程实现的:a(1)*y(n) = b(1)*x(n) + b(2)*x(n-1) + ... + b(nb+1)*x(n-nb) - a(2)*y(n-1) - ... - a(na+1)*y(n-na)3.4总体方案系统的总体设计界面主要分为三个区域:播放区域、滤波器参数设置区域、滤波器类型选择区域。
3.4.1播放区域包括播放和停止音乐的功能按键。
3.4.2滤波器参数设置区域能够设置数字滤波器的各参数3.4.3滤波器类型选择区域在设置数字滤波器的参数之后,点击各类型滤波器按钮后弹出相应的波形图。
4设计过程4.1系统流程图图1:系统流程图4.2具体设计(1)首先建立GUI界面,具体界面如下:图2 GUI界面建立(2)系统的总体设计界面主要分为四个区域:播放区域、滤波器参数设置区域、滤波器类型选择区域。
具体界面如下图图3 GUI界面建立(3)播放区域设计包括播放、停止两个按钮,界面如下:图4 播放按钮(4)滤波器参数设置区域包括,包括六个参数:wp(fp1) ws(fs1) rp rs fsu fpu区域界面如图所示:图5 参数设置按钮(5)滤波器类型选择区域包括高通、低通、带通、帯阻四个按钮,区域界面如下图所示。
图6 选择按钮5.实验代码及结果5.1 MATLAB源程序(1)HIGH PASS FILTER 按钮所对应代码:function pushbutton1_Callback(hObject, eventdata, handles)global name1;global name2;global p;name1='D:\WWW\m2.wav';name2='D:\WWW\tu1.jpg';[x,Fs]=wavread(name1);h=axes('units','normalized','position',[0,0,1,1]);uistack(h,'up');i=imread(name2);image(i);set(h,'handlevisibility','off','visible','off');x1=x(:,1);N=length(x);f=Fs*(0:N/2-1)/N;figure(2);subplot(4,1,1);plot(x1);title('滤波前信号时域波形'));X2k=abs(fft(x1,N));subplot(4,1,2);plot(f,X2k(1:N/2));title('滤波前信号频谱图');wp=2*str2num(get(handles.edit1,'String'))/Fs;ws=2*str2num(get(handles.edit2,'String'))/Fs;Rp=str2num(get(handles.edit3,'String'));As=str2num(get(handles.edit4,'String'));[N,wc]=buttord(wp,ws,Rp,As);%巴特沃斯滤波法[B,A]=butter(N,wc,'high');%求模拟滤波器的两个参数[Bz,Az]=impinvar(B,A,Fs);%将模拟滤波器转换成数字滤波器w=pi/2:pi;Hk=freqz(Bz,Az,w); %求H(z)的频响wf=w*Fs/(2*pi); % 转化为Hzz=filter(B,A,x);subplot(4,1,3);plot(z);title('滤波后信号时域波形');Y1=abs(fft(z,Fs));subplot(4,1,4);plot(Y1(1:length(Y1)/2));title('滤波后信号的频谱');p=audioplayer(z,Fs);play(p);% hObject handle to pushbutton1 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) (2)LOW PASS FILTER 按钮所对应代码:function pushbutton2_Callback(hObject, eventdata, handles)global name1;global name2;global p;name1='D:\WWW\m2.wav';name2='D:\WWW\tu1.jpg';[x,Fs]=wavread(name1);h=axes('units','normalized','position',[0,0,1,1]);uistack(h,'up');i=imread(name2);image(i);set(h,'handlevisibility','off','visible','off');x1=x(:,1);N=length(x);f=Fs*(0:N/2-1)/N;figure(2);subplot(4,1,1);plot(x1);title('滤波前信号时域波形');X2k=abs(fft(x1,N));subplot(4,1,2);plot(f,X2k(1:N/2));title('滤波前信号频谱图'); wp=2*str2num(get(handles.edit1,'String'))/Fs;ws=2*str2num(get(handles.edit2,'String'))/Fs;Rp=str2num(get(handles.edit3,'String'));As=str2num(get(handles.edit4,'String'));[N,wc]=buttord(wp,ws,Rp,As);[B,A]=butter(N,wc,'low');[Bz,Az]=impinvar(B,A,Fs);w=pi/2:pi;Hk=freqz(Bz,Az,w); %求H(z)的频响wf=w*Fs/(2*pi); % 转化为Hzz=filter(B,A,x);subplot(4,1,3);plot(z);title('滤波后信号时域波形');Y1=abs(fft(z,Fs));subplot(4,1,4);plot(Y1(1:length(Y1)/2));title('滤波后信号的频谱');p=audioplayer(z,Fs);play(p);(3) BAND PASS TILTER 按钮所对应代码function pushbutton3_Callback(hObject, eventdata, handles) global name1;global name2;global p;name1='D:\WWW\m2.wav';name2='D:\WWW\tu1.jpg';[x,Fs]=wavread(name1);h=axes('units','normalized','position',[0,0,1,1]);uistack(h,'up');i=imread(name2);image(i);set(h,'handlevisibility','off','visible','off');x1=x(:,1);N=length(x);f=Fs*(0:N/2-1)/N;figure(2);subplot(4,1,1);plot(x1);title('滤波前信号时域波形');X2k=abs(fft(x1,N));subplot(4,1,2);plot(f,X2k(1:N/2));title('滤波前信号频谱图');fsl=str2num(get(handles.edit2,'String'));fsu=str2num(get(handles.edit5,'String')); fpl=str2num(get(handles.edit1,'String'));fpu=str2num(get(handles.edit6,'String')); wp=[2*fpl/Fs,2*fpu/Fs];ws=[2*fsl/Fs,2*fsu/Fs];Rp=str2num(get(handles.edit3,'String'));As=str2num(get(handles.edit4,'String'));[N,wc]=buttord(wp,ws,Rp,As);[B,A]=butter(N,wc);[Bz,Az]=impinvar(B,A,Fs);w=pi/2:pi;Hk=freqz(Bz,Az,w); %求H(z)的频响wf=w*Fs/(2*pi); % 转化为Hzz=filter(B,A,x);subplot(4,1,3);plot(z);title('滤波后信号时域波开形');Y1=abs(fft(z,Fs));subplot(4,1,4);plot(Y1(1:length(Y1)/2));title('滤波后信号的频谱');p=audioplayer(z,Fs);play(p);(4)BAND STOP TILTER 按钮所对应代码function pushbutton4_Callback(hObject, eventdata, handles)global name1;global name2;global p;name1='D:\WWW\m2.wav';name2='D:\WWW\tu1.jpg';[x,Fs]=wavread(name1);h=axes('units','normalized','position',[0,0,1,1]);uistack(h,'up');i=imread(name2);image(i);set(h,'handlevisibility','off','visible','off');x1=x(:,1);N=length(x);f=Fs*(0:N/2-1)/N;figure(2);subplot(4,1,1);plot(x1);title('滤波前信号时域波形');X2k=abs(fft(x1,N));subplot(4,1,2);plot(f,X2k(1:N/2));title('滤波前信号频谱图');fsl=str2num(get(handles.edit2,'String'));fsu=str2num(get(handles.edit5,'String')); fpl=str2num(get(handles.edit1,'String'));fpu=str2num(get(handles.edit6,'String')); wp=[2*fpl/Fs,2*fpu/Fs];ws=[2*fsl/Fs,2*fsu/Fs];Rp=str2num(get(handles.edit3,'String'));As=str2num(get(handles.edit4,'String'));[N,wc]=buttord(wp,ws,Rp,As);[B,A]=butter(N,wc,'stop');[Bz,Az]=impinvar(B,A,Fs);w=pi/2:pi;Hk=freqz(Bz,Az,w); %求H(z)的频响wf=w*Fs/(2*pi); % 转化为Hzz=filter(B,A,x);subplot(4,1,3);plot(z);title('滤波后信号时域波开形');Y1=abs(fft(z,Fs));subplot(4,1,4);plot(Y1(1:length(Y1)/2));title('滤波后信号的频谱');p=audioplayer(z,s);play(p);(5) PLAY按钮所对应代码function pushbutton5_Callback(hObject, eventdata, handles) global name1;global name2;global p;[x,Fs]=wavread(name1);h=axes('units','normalized','position',[0,0,1,1]);uistack(h,'up');i=imread(name2);image(i);set(h,'handlevisibility','off','visible','off');%全屏背景p=audioplayer(x,Fs);play(p);% hObject handle to pushbutton5 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)(6) STOP 按钮所对应代码function pushbutton6_Callback(hObject, eventdata, handles)global p;stop(p);% hObject handle to pushbutton6 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)其他相关代码function varargout = projecttry(varargin)% PROJECTTRY M-file for projecttry.fig% PROJECTTRY, by itself, creates a new PROJECTTRY or raises the existing% singleton*.% H = PROJECTTRY returns the handle to a new PROJECTTRY or the handle to% the existing singleton*.%% PROJECTTRY('CALLBACK',hObject,eventData,handles,...) calls the local% function named CALLBACK in PROJECTTRY.M with the given input arguments.%% PROJECTTRY('Property','Value',...) creates a new PROJECTTRY or raises the% existing singleton*. Starting from the left, property value pairs are% applied to the GUI before projecttry_OpeningFcn gets called. An% unrecognized property name or invalid value makes propertyapplication% stop. All inputs are passed to projecttry_OpeningFcn via varargin.%% *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one% instance to run (singleton)".%% See also: GUIDE, GUIDATA, GUIHANDLES% Edit the above text to modify the response to help projecttry% Last Modified by GUIDE v2.5 21-May-2014 22:53:44% Begin initialization code - DO NOT EDITgui_Singleton = 1;gui_State = struct('gui_Name', mfilename, ...'gui_Singleton', gui_Singleton, ...'gui_OpeningFcn', @projecttry_OpeningFcn, ...'gui_OutputFcn', @projecttry_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 projecttry is made visible.function projecttry_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 projecttry (see V ARARGIN)% Choose default command line output for projecttryhandles.output = hObject;% Update handles structureguidata(hObject, handles);% UIWAIT makes projecttry wait for user response (see UIRESUME)% uiwait(handles.figure1);% --- Outputs from this function are returned to the command line.function varargout = projecttry_OutputFcn(hObject, eventdata, handles)% varargout cell array for returning output args (see V ARARGOUT);% 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;function edit1_Callback(hObject, eventdata, handles)% hObject handle to edit1 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% Hints: get(hObject,'String') returns contents of edit1 as text% str2double(get(hObject,'String')) returns contents of edit1 as a double% --- Executes during object creation, after setting all properties.function edit1_CreateFcn(hObject, eventdata, handles)% eventdata reserved - to be defined in a future version of MATLAB% handles empty - handles not created until after all CreateFcns called% Hint: edit controls usually have a white background on Windows.% See ISPC and COMPUTER.if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))set(hObject,'BackgroundColor','white');endfunction edit2_Callback(hObject, eventdata, handles)% hObject handle to edit2 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% Hints: get(hObject,'String') returns contents of edit2 as text% str2double(get(hObject,'String')) returns contents of edit2 as a double% --- Executes during object creation, after setting all properties.function edit2_CreateFcn(hObject, eventdata, handles)% hObject handle to edit2 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles empty - handles not created until after all CreateFcns called% Hint: edit controls usually have a white background on Windows.% See ISPC and COMPUTER.if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))set(hObject,'BackgroundColor','white');endfunction edit3_Callback(hObject, eventdata, handles)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% Hints: get(hObject,'String') returns contents of edit3 as text% str2double(get(hObject,'String')) returns contents of edit3 as a double% --- Executes during object creation, after setting all properties.function edit3_CreateFcn(hObject, eventdata, handles)% hObject handle to edit3 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles empty - handles not created until after all CreateFcns called% Hint: edit controls usually have a white background on Windows.% See ISPC and COMPUTER.if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))set(hObject,'BackgroundColor','white');endfunction edit4_Callback(hObject, eventdata, handles)% hObject handle to edit4 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% Hints: get(hObject,'String') returns contents of edit4 as text% str2double(get(hObject,'String')) returns contents of edit4 as a double% --- Executes during object creation, after setting all properties.function edit4_CreateFcn(hObject, eventdata, handles)% hObject handle to edit4 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles empty - handles not created until after all CreateFcns called% Hint: edit controls usually have a white background on Windows.% See ISPC and COMPUTER.if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))set(hObject,'BackgroundColor','white');endfunction edit5_Callback(hObject, eventdata, handles)% hObject handle to edit5 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% Hints: get(hObject,'String') returns contents of edit5 as text% str2double(get(hObject,'String')) returns contents of edit5 as a double % --- Executes during object creation, after setting all properties.function edit5_CreateFcn(hObject, eventdata, handles)% hObject handle to edit5 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles empty - handles not created until after all CreateFcns called% Hint: edit controls usually have a white background on Windows.% See ISPC and COMPUTER.if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))set(hObject,'BackgroundColor','white');endfunction edit6_Callback(hObject, eventdata, handles)% hObject handle to edit6 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% Hints: get(hObject,'String') returns contents of edit6 as text% str2double(get(hObject,'String')) returns contents of edit6 as a double% --- Executes during object creation, after setting all properties.function edit6_CreateFcn(hObject, eventdata, handles)% hObject handle to edit6 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles empty - handles not created until after all CreateFcns called% Hint: edit controls usually have a white background on Windows.% See ISPC and COMPUTER.if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))set(hObject,'BackgroundColor','white');end5.2 系统运行与测试(1)播放曲目单击GUI右侧“PLAY”按钮播放音乐,GUI会出现歌曲相应背景图图7:系统界面(2)停止曲目单击GUI右侧“STOP”按钮停止播放音乐。