数字信号处理--变声器报告

合集下载

数字信号处理实验报告8

数字信号处理实验报告8

实验报告学院(系)名称:计算机与通信工程学院 姓名 学号 专业班级实验项目实验七 音乐信号处理课程名称 数字信号处理 课程代码实验时间2013年06月07日实验地点 主校区计算机基础实验室批改意见成绩教师签字:一,实验目的1、了解现代音乐信号制作时的时域处理方法。

2、了解现代音乐信号制作时的频域处理方法。

3、处理MATLAB 的常用函数来实现音乐信号的时域及频域的处理。

二,实验原理现代音乐的处理和加工基本上是采用数字处理技术来完成的,大概分以下几个步骤:首先在一个隔音的舞台上,把乐队中各个乐器的声音分别录制在一个多磁道的磁带中的各个独立的磁道上;然后再把各个磁道上的信号进行单独处理,即加入特定的声音效果;最后在一个混音系统中把这些信号进行合成,即录制在一个立体声的双磁道的磁带上。

这里简单地验证语音信号的时域处理方法和频域处理方法。

1. 时域处理方法在音乐厅中听到的悦耳音乐,主要是一次反射声音和混响造成的,而这两种声音实质上都是回声形成的。

在隔音舞台上录制的声音听起来会不自然,这时就需要用数字滤波器来人为地改变录制的信号,以增加回声,使其接近于音乐厅的效果。

回声可以用延迟单元来形成。

直接声音和它延迟了R 个周期的单个回声可以用如下的差分方程来表示:()()()y n x n x n R α=+-,1αp其中1αp 表示回声的衰减系数。

上述的差分方程的传递函数为:()1RH z z α-=+它可以作为一个FIR 滤波器来实现,它实际上是一个梳状的滤波器,其结构图如图4.3.1(a )所示。

为了生成间隔为R 个周期的多重回声,上式应该改写成: ()()12211...N RRRN H z zzzααα-----=++⋅++⋅=RNRN --•-•z1z -1αα 其结构图如图4.3.1(b )所示。

如果反射的次数很多,则N α→0,则多重回声可以用一个IIR 滤波器来实现。

其传递函数为:R z z H -•-=α11)(,|α|<1set(gcf,'color','w');%置图形背景色为白色从图中可以看出,调节K可以改变低频端幅度特性的提升程度,调节α则用来控制低频滤波器的边界频率。

数字信号处理报告

数字信号处理报告

《数字信号处理》课程设计报告设计一信号的基本运算【一】设计目的熟悉信号的基本运算,通过仿真结果加深理解。

【二】设计内容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的工作空间。

数字信号处理综合报告--数字音频信号的分析与处理

数字信号处理综合报告--数字音频信号的分析与处理

数字信号处理综合报告--数字音频信号的分析与处理数字信号处理实验题目数字音频信号的分析与处理班级姓名学号日期 2013.06.10-2013.06.24一、实验目的1.复习巩固数字信号处理的基本理论;2.利用所学知识研究并设计工程应用方案。

二、实验原理数字信号处理技术在音频信号处理中的应用日益增多,其灵活方便的优点得到体现。

分频器即为其中一种音频工程中常用的设备。

人耳能听到的声音频率范围为20Hz~20000Hz,但由于技术所限,扬声器难以做到在此频率范围内都有很好的特性,因此一般采用两个以上的扬声器来组成一个系统,不同的扬声器播放不同频带的声音,将声音分成不同频带的设备就是分频器。

下图是一个二分频的示例。

图8.1 二分频示意图高通滤波器和低通滤波器可以是FIR或IIR 类型,其中FIR易做到线性相位,但阶数太高, 不仅需要耗费较多资源,且会带来较长的延时;IIR阶数低,但易出现相位失真及稳定性问题。

对分频器的特性,考虑最多的还是两个滤波器合成的幅度特性,希望其是平坦的,如图8.2所示:图8.2 分频器幅度特性由于IIR的延时短,因此目前工程中大量应用的还是Butterworth、Bessel、Linkwitz-Riley 三种IIR滤波器。

其幅频特性如图8.3所示:图8.3 三种常用IIR 分频器的幅度特性巴特沃斯、切比雪夫、椭圆等类型的数字滤波器系数可通过调用MATLAB 函数很方便的计算得到,但Bessel 、Linkwitz-Riley 数字滤波器均无现成的Matlab 函数。

并联系统的系统函数为l h h l l h()()()()()()()()()()()()()()()B=conv(B ,A )+conv(B ,A )A=conv(A ,A )l h l h l h l h h l l h B z B z H z H z H z A z A z B z A z B z A z B z A z A z A z =+=++==⎧⇒⎨⎩级联系统的系统函数为宁可瑞滤波器(Linkwitz-Riley ),由两个巴特沃斯滤波器级联而成。

数字信号处理实验报告

数字信号处理实验报告

数字信号处理实验报告引言数字信号处理(Digital Signal Processing,DSP)是一门研究数字信号的获取、分析、处理和控制的学科。

在现代科技发展中,数字信号处理在通信、图像处理、音频处理等领域起着重要的作用。

本次实验旨在通过实际操作,深入了解数字信号处理的基本原理和实践技巧。

实验一:离散时间信号的生成与显示在实验开始之前,我们首先需要了解信号的生成与显示方法。

通过数字信号处理器(Digital Signal Processor,DSP)可以轻松生成和显示各种类型的离散时间信号。

实验设置如下:1. 设置采样频率为8kHz。

2. 生成一个正弦信号:频率为1kHz,振幅为1。

3. 生成一个方波信号:频率为1kHz,振幅为1。

4. 将生成的信号通过DAC(Digital-to-Analog Converter)输出到示波器上进行显示。

实验结果如下图所示:(插入示波器显示的正弦信号和方波信号的图片)实验分析:通过示波器的显示结果可以看出,正弦信号在时域上呈现周期性的波形,而方波信号则具有稳定的上下跳变。

这体现了正弦信号和方波信号在时域上的不同特征。

实验二:信号的采样和重构在数字信号处理中,信号的采样是将连续时间信号转化为离散时间信号的过程,信号的重构则是将离散时间信号还原为连续时间信号的过程。

在实际应用中,信号的采样和重构对信号处理的准确性至关重要。

实验设置如下:1. 生成一个正弦信号:频率为1kHz,振幅为1。

2. 设置采样频率为8kHz。

3. 对正弦信号进行采样,得到离散时间信号。

4. 对离散时间信号进行重构,得到连续时间信号。

5. 将重构的信号通过DAC输出到示波器上进行显示。

实验结果如下图所示:(插入示波器显示的连续时间信号和重构信号的图片)实验分析:通过示波器的显示结果可以看出,重构的信号与原信号非常接近,并且能够还原出原信号的形状和特征。

这说明信号的采样和重构方法对于信号处理的准确性有着重要影响。

DSP男女声变换报告

DSP男女声变换报告

DSP课程设计实验报告——男女声变换学院:电子信息工程学院成员:指导教师:钱满义目录男女声变换实验 (3)一、实验目的 (3)二、设计要求及目标 (3)三、实验内容 (3)四、设计方案、算法原理说明 (4)1、频谱变换 (4)2、男女声变换 (6)3、本实验DMA使用情况 (8)五、程序设计 (8)六、参考文献 (11)男女声变换实验一、实验目的1、掌握DSP集成开发环境CCS的使用和调试方法;2、掌握DSP片上资源和片外资源访问的基本方法;3、通过对DSP信号处理器及D/A和A/D转换器的编程,培养学生C语言编程能力以及使用DSP硬件平台实现数字信号处理算法的能力;4、掌握男女声音调变换系统的DSP设计可使学生将数字信号处理算法与工程实践相结合,提高学生系统地思考问题和解决实际问题的能力;二、设计要求及目标基本部分:(1) 利用DSP的DMA方式对外部信号进行实时采集、传输与处理。

(2) 使用C语言编写并实现男女生声音的实时变换。

发挥部分:(1) 能够智能识别男女声音。

(2) 通过算法中参数值的选择,调整信号频率变化的程度,实现男女声音相互转化程度可变。

三、实验内容本实验以DMA与McBSP相结合的方式,实现实时的男女生声音变换。

主要包括以下几方面:(1)对DMA进行初始化;(2)对McBSP进行初始化(3)对A/D、D/A进行初始化;(4)编写DMA中断服务程序;编写快速傅里叶变换(FFT)算法程序,获得输入信号频谱,并对频谱的峰值频率进行比较实现男女声自动识别;频率变换算法程序,使用内插或抽取,实现男女生声音的实时变换;四、设计方案、算法原理说明1、频谱变换将gBufferRcvPing左声道的512个点(即偶数个点)抽出放在长度为1024的temp 的偶数点中,看作复数的实部,在temp的奇数点插0值,看作复数的虚部,temp经过cfft后,得到相应频谱,所得的频谱中心对称,以实部,虚部交替存储。

数字信号处理实验报告

数字信号处理实验报告

一、实验目的1. 理解数字信号处理的基本概念和原理。

2. 掌握离散时间信号的基本运算和变换方法。

3. 熟悉数字滤波器的设计和实现。

4. 培养实验操作能力和数据分析能力。

二、实验原理数字信号处理(Digital Signal Processing,DSP)是利用计算机对信号进行采样、量化、处理和分析的一种技术。

本实验主要涉及以下内容:1. 离散时间信号:离散时间信号是指时间上离散的信号,通常用序列表示。

2. 离散时间系统的时域分析:分析离散时间系统的时域特性,如稳定性、因果性、线性等。

3. 离散时间信号的变换:包括离散时间傅里叶变换(DTFT)、离散傅里叶变换(DFT)和快速傅里叶变换(FFT)等。

4. 数字滤波器:设计、实现和分析数字滤波器,如低通、高通、带通、带阻滤波器等。

三、实验内容1. 离散时间信号的时域运算(1)实验目的:掌握离散时间信号的时域运算方法。

(2)实验步骤:a. 使用MATLAB生成两个离散时间信号;b. 进行时域运算,如加、减、乘、除等;c. 绘制运算结果的时域波形图。

2. 离散时间信号的变换(1)实验目的:掌握离散时间信号的变换方法。

(2)实验步骤:a. 使用MATLAB生成一个离散时间信号;b. 进行DTFT、DFT和FFT变换;c. 绘制变换结果的频域波形图。

3. 数字滤波器的设计和实现(1)实验目的:掌握数字滤波器的设计和实现方法。

(2)实验步骤:a. 设计一个低通滤波器,如巴特沃斯滤波器、切比雪夫滤波器等;b. 使用MATLAB实现滤波器;c. 使用MATLAB对滤波器进行时域和频域分析。

4. 数字滤波器的应用(1)实验目的:掌握数字滤波器的应用。

(2)实验步骤:a. 采集一段语音信号;b. 使用数字滤波器对语音信号进行降噪处理;c. 比较降噪前后的语音信号,分析滤波器的效果。

四、实验结果与分析1. 离散时间信号的时域运算实验结果显示,通过MATLAB可以方便地进行离散时间信号的时域运算,并绘制出运算结果的时域波形图。

DSP(数字信号处理)实验报告2

DSP(数字信号处理)实验报告2

本科学生实验报告学号124090314 姓名何胜金学院物电学院专业、班级12电子实验课程名称数字信号处理(实验)教师及职称杨卫平开课学期第三至第四学年下学期填报时间2015 年 3 月 1 9 日云南师范大学教务处编印2.产生幅度调制信号x[t]=cos(2t)cos(200t),推导其频率特性,确定抽样频率,并会出波形。

程序: clc,clear,close all t=[0:0.01:5];x=cos(2*pi*t).*cos(200*pi*t); plot(t,x);clc,clear,close allt0=0:0.001:0.1;x0=0.5*(cos(202*pi*t0)+cos(198*pi*t0)); plot(t0,x0,'r') hold on fs=202;t=0:1/fs:0.1;x=0.5*(cos(202*pi*t)+cos(198*pi*t)); stem(t,x);3.对连续信号x[t]=cos(4t)进行抽样以得到离散序列,并进行重建。

(1)生成信号x(t),时间为t=0:0.001:4,画出x(t)的波形。

程序clc,clear,close all t0=0:0.001:3; x0=cos(4*pi*t0); plot(t0 ,x0,'r');(2)以faam=10HZ对信号进行抽样,画出在0≤t≤1范围内的抽样序列,x[k],利用抽样内插函数恢复连续时间信号,画出重逢信号的波形。

程序:clc,clear,close all t0=0:0.001:3; x0=cos(4*pi*t0); plot(t0,x0); hold onfs=10;t=0:1/fs:3; x=cos(4*pi*t); stem(t,x);4.若x[k]是对连续信号x(t)=cos(0.5t)以samf=2Hz抽样得到的离散序列,如何通过在抽样点之间内插,恢复原连续时间信号x(t)?程序:clc,clear,close all t=0:0.0001:4; x=cos(0.5*pi*t); plot(t,x); Figure1:clc,clear,close allt=0:0.0001:4; x=cos(0.5*pi*t); subplot(2,1,1); plot(t,x);t0=0:0.5:4;x0=cos(0.5*pi*t0); subplot(2,1,2); stem(t0,x0);5.已知序列x[k]={1,3,2,-5;k=0,1,2,3},分别取N=2,3,4,5对其频谱X(e j)进行抽样,再由频域抽样点恢复时域序列,观察时域序列是否存在混叠,有何规律?k=[0,1,2,3]; x=[1,3,2,-5]; n=100;omega=[0:n-1]*2*pi/n;X0=1+3*exp(-j*omega)+2*exp(-2*j*omega)-5*exp(-3*j*omega); subplot(3,4,1);stem(k,x);title('原序列');subplot(3,4,2);plot(omega./pi,abs(X0));title('序列的频谱 N=100');N=2;omega=[0:N-1]*2*pi/N;X1=1+3*exp(-j*omega)+2*exp(-2*j*omega)-5*exp(-3*j*omega); subplot(3,4,5);stem(omega./pi,abs(X1));title('频域抽样 N=2');rx1=real(ifft(X1)); subplot(3,4,9);stem(rx1);title('时域恢复');N=3;omega=[0:N-1]*2*pi/N;X2=1+3*exp(-j*omega)+2*exp(-2*j*omega)-5*exp(-3*j*omega); subplot(3,4,6);stem(omega./pi,abs(X2));title('频域抽样 N=3');rx2=real(ifft(X2)); subplot(3,4,10);stem(rx2);title('时域恢复');N=4;omega=[0:N-1]*2*pi/N;X3=1+3*exp(-j*omega)+2*exp(-2*j*omega)-5*exp(-3*j*omega); subplot(3,4,7);stem(omega./pi,abs(X3));title('频域抽样 N=4');rx3=real(ifft(X3)); subplot(3,4,11);stem(rx3);title('时域恢复');。

【精品】DSP实验报告

【精品】DSP实验报告

【精品】DSP实验报告一、实验目的1.探究数字信号处理器(DSP)的功能和应用。

2.熟悉DSP软件、硬件设计实验环境。

3.掌握DSP的基本编程方法。

4.实现数字信号的变换。

二、实验原理DSP是一种基于数字信号处理器的技术,是数码信号处理器技术和信号处理技术的一种应用。

DSP硬件处理器可以对数字信号进行滤波、基带处理和解调等。

DSP软件编程极为常见,可以设计各种数字信号处理算法、信号处理系统和软件运行环境。

使用DSP软件,我们可以过滤和处理模拟信号,包括声音和图像等。

三、实验器材和器件1.TMS320C5416数字信号处理器。

2.折标器。

3.信号源和信号处理器。

4.电器安全器材。

5.计算机和开发环境工具包。

四、实验步骤1.安装开发工具包,启动环境配置,并初始化DSP开发板和相关环境工具。

2.编写程序,加入滤波、处理和变换算法,提取有用信号和滤除噪声信号。

3.建立计算机接口和控制模块,并调试程序,验证结果。

五、实验结果本次实验结果如下:1.对于模拟信号输入,DSP通过滤波、变换等算法,进行信号分析和处理,有效提取信号,并消除噪声信号。

2.DSP的数字信号处理使得信号的提取和分析更加精确和高效,可以用于音频、视频、遥感等领域的处理。

3.当信号处理效果不佳时,需要调整算法和变换参数,重新调整信号滤波、变换和输出的参数,以获得更好的处理效果。

六、问题和分析在实验中,我们遇到了一些问题。

例如,信号处理的时候,出现了滤波不足,噪声信号无法完全滤除的情况。

我们通过调整算法和参数,进行重新优化,并在重新调整参数之后再次进行了测试,发现信号处理效果显著提高。

七、实验心得体会数字信号处理在现代信息技术领域是非常重要的,因此我们必须掌握DSP的理论原理和编程方法。

本次实验中,我们实际操作了DSP平台,并编写程序艇筏和优化算法,有效地提取信号,其结果是很有收获的。

通过本次实验,我们不仅学习了DSP的基本特性,还成功应用该技术处理信号数据,建立了初步的实践能力。

数字信号处理实验报告完整版[5篇模版]

数字信号处理实验报告完整版[5篇模版]

数字信号处理实验报告完整版[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中的绘图工具对产生的信号进行观察,加深对常用离散信号和信号卷积和运算的理解。

数字信号处理课设报告-基于matlab的数字音效处理器

数字信号处理课设报告-基于matlab的数字音效处理器

数字信号处理课设报告-基于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可以对声音进行回放。

数字信号处理实验报告

数字信号处理实验报告

数字信号处理实验报告
数字信号处理是指利用数字技术对模拟信号进行采样、量化、编码等处理后,再通过数字信号处理器进行数字化处理的技术。

在数字信号处理实验中,我们通过对数字信号进行滤波、变换、解调等处理,来实现信号的处理和分析。

在实验中,我们首先进行了数字信号采集和处理的基础实验,采集了包括正弦信号、方波信号、三角波信号等在内的多种信号,并进行了采样、量化、编码等处理。

通过这些处理,我们可以将模拟信号转换为数字信号,并对其进行后续处理。

接着,我们进行了数字信号滤波的实验。

滤波是指通过滤波器对数字信号进行处理,去除其中的噪声、干扰信号等不需要的部分,使其更加纯净、准确。

在实验中,我们使用了低通滤波器、高通滤波器、带通滤波器等多种滤波器进行数字信号滤波处理,得到了更加干净、准确的信号。

除了滤波,我们还进行了数字信号变换的实验。

数字信号变换是指将数字信号转换为另一种表示形式的技术,可以将信号从时域转换到频域,或者从离散域转换到连续域。

在实验中,我们使用了傅里叶变换、离散傅里叶变换等多种变换方式,对数字信号进行了变换处理,得到了信号的频谱信息和其他相关参数。

我们进行了数字信号解调的实验。

数字信号解调是指将数字信号转换为模拟信号的技术,可以将数字信号还原为原始信号,并进行后续处理。

在实验中,我们使用了频率解调、相干解调等多种解调方式,将数字信号转换为模拟信号,并对其进行了分析和处理。

总的来说,数字信号处理实验是一项非常重要的实验,可以帮助我们更好地理解数字信号处理的原理和方法,为我们今后从事相关领域的研究和工作打下坚实的基础。

dsp信号处理实验报告

dsp信号处理实验报告

dsp信号处理实验报告DSP信号处理实验报告一、引言数字信号处理(DSP)是一种将连续信号转换为离散信号,并对其进行处理和分析的技术。

在现代通信、音频处理、图像处理等领域中,DSP技术被广泛应用。

本实验旨在通过对DSP信号处理的实践,加深对该技术的理解与应用。

二、实验目的本实验旨在通过对DSP信号处理的实践,掌握以下内容:1. 学习使用DSP芯片进行信号采集和处理;2. 理解离散信号的采样和重构过程;3. 掌握常见的DSP信号处理算法和方法。

三、实验原理1. 信号采集与重构在DSP信号处理中,首先需要对模拟信号进行采样,将连续信号转换为离散信号。

采样过程中需要注意采样频率的选择,以避免混叠现象的发生。

采样完成后,需要对离散信号进行重构,恢复为连续信号。

2. DSP信号处理算法DSP信号处理涉及到多种算法和方法,如滤波、频谱分析、时域分析等。

其中,滤波是一种常见的信号处理方法,可以通过滤波器对信号进行去噪、增强等处理。

频谱分析可以将信号在频域上进行分析,了解信号的频率成分和能量分布。

时域分析则关注信号的时序特征,如幅值、相位等。

四、实验步骤1. 信号采集与重构在实验中,我们使用DSP芯片进行信号采集与重构。

将模拟信号输入DSP芯片的模拟输入端口,通过ADC(模数转换器)将模拟信号转换为数字信号。

然后,通过DAC(数模转换器)将数字信号转换为模拟信号输出。

2. 滤波处理为了演示滤波处理的效果,我们选择了一个含有噪声的信号进行处理。

首先,使用FIR滤波器对信号进行低通滤波,去除高频噪声。

然后,使用IIR滤波器对信号进行高通滤波,增强低频成分。

3. 频谱分析为了对信号的频率成分和能量分布进行分析,我们使用FFT(快速傅里叶变换)算法对信号进行频谱分析。

通过观察频谱图,可以了解信号的频率特性。

4. 时域分析为了对信号的时序特征进行分析,我们使用时域分析方法对信号进行处理。

通过计算信号的均值、方差、峰值等指标,可以了解信号的幅值、相位等特性。

matlab变声器课程设计

matlab变声器课程设计

matlab变声器课程设计一、课程目标知识目标:1. 理解Matlab编程基础,掌握其音频处理功能;2. 学习并掌握数字信号处理中音频变声的基本原理;3. 了解不同声音变换技术的应用场景及其效果。

技能目标:1. 能够使用Matlab编写简单的音频读取、播放程序;2. 能够运用Matlab进行音频信号的时域、频域分析;3. 能够独立设计并实现基础的变声器程序,完成声音的变调、变速等效果。

情感态度价值观目标:1. 培养学生对音频信号处理的兴趣,激发其探索精神;2. 增强学生团队协作意识,提高沟通与表达能力;3. 引导学生正确看待变声技术,培养其遵守网络道德和法律法规的意识。

课程性质:本课程为实践性较强的选修课程,结合Matlab软件与数字信号处理理论,旨在提高学生的实际操作能力和创新能力。

学生特点:学生具备一定的编程基础,对新鲜事物充满好奇,喜欢动手实践。

教学要求:注重理论与实践相结合,鼓励学生自主探究,关注学生个体差异,提供个性化指导。

通过课程学习,使学生能够将所学知识应用于实际问题解决中,提高其综合素质。

二、教学内容1. Matlab编程基础:- 变量、数据类型及运算符;- 程序控制结构;- 函数编写与调用。

2. 音频处理基本理论:- 音频信号的数字化;- 音频信号的时域和频域分析;- 变声技术原理。

3. Matlab音频处理工具箱:- 音频文件的读取与播放;- 音频信号的编辑与处理;- 音频效果器的应用。

4. 变声器设计与实现:- 变调技术;- 变速技术;- 声音特效添加。

教学内容安排与进度:第一周:Matlab编程基础及音频处理基本理论;第二周:音频处理工具箱的使用方法;第三周:变声器设计原理及实例分析;第四周:学生动手实践,完成变声器设计与实现;第五周:成果展示与评价。

教材章节及内容:第一章:Matlab编程基础;第二章:数字信号处理基础;第三章:音频信号处理;第四章:Matlab音频处理工具箱;第五章:音频变声器设计与实现案例。

数字信号处理语音处理课程设计实验报告

数字信号处理语音处理课程设计实验报告

实验报告(1)语音采样和观察clear,clc;[y,fs]=audioread('E:\大学课程\大三上\数字信号处理\201400121184吴蔓.mp3'); %语音信号的采集,把采样值放在y中subplot(3,1,1)plot(y);title('时域波形');sound(y,fs); %语音信号的播放n=length(y) %计算语音信号的长度Y=fft(y) ; %快速傅里叶变换subplot(3,1,2)plot(abs(Y)); %绘出频域波形title('幅频特性');subplot(3,1,3)plot(angle(Y));title('相频特性');plot(angle(Y1)); title('延时后相频特性');0.511.522.533.544.5x 105-0.500.5延时后时域波形0.511.522.533.544.5x 10505001000延时后幅频特性0.511.522.533.544.5x 105-505延时后相频特性我延时了和原信号一样长的点数,可以看出来延时后的信号要后播放一小段时间并且幅频相频差别不大。

(3)混响: clear,clc;[y,fs]=audioread('E:\大学课程\大三上\数字信号处理\201400121184吴蔓.mp3'); %语音信号的采集一,加一撇表示转置。

如右图二,语音信号真的大多数是在3.4khz以内的,由下面三图对比可以发现,实际人的声音只在一段频率范围内,并且主要集中在3400hz以内。

但录制的语音还有一些少许的幅度很低的高频信号达到了100khz,那都是人耳听不见的声音。

也可以看出声音占得频谱很宽,并且是在数字域的pi也就是模拟域的FS以内,audioread函数读取Mp3格式的采样率大约是44100hz。

也可以看出采样时大致满足奈奎斯特定理,fs约等于2fh.(5)多重回声(回声数量有限):clear,clc;[y,fs]=audioread('E:\大学课程\大三上\数字信号处理\201400121184吴蔓.mp3') ; %语音信号的采集,从命令行窗口的输出可以看出%采样后的信号矩阵是多行一列的,下面n=length(y0)语句计算出来有220032个采样数据,有的数据为0,大多数数据是复数y0= y (:,1);%冒号代表“所有的”,这里指的是把y的所有行的第一列给y0,实际上y0和y 一样的,这句指令用来取单声道信号N=3; %三重回声y1=filter(1,[1,zeros(1,80000/(N+1)),0.5],y');%这里的y'指的是y的转置矩阵,故是一行多列的,y'作为filter函数的输入矩阵%[1,zeros(1,30000),0.5]是分母矩阵,1是分子,就相当于这是个无限长的信号,求其差分方程,y1是输出矩阵,这里filter函数相当于是个IIR滤波器,系统函数%相当于H(Z)=1/(1-0.5Z.^(-30001)).sound(10*y1,fs); %回放三重回声信号,这里乘以10以加强信号,便于听取,因为如果衰减系数太大则回声难以听见n=length(y0) ;Y0=fft(y0) ;Y=fft(y1) ;figure(1);subplot(2,1,1)plot(y);title('原音时域波形');axis([0 225000 -0.4 0.6]);subplot(2,1,2)plot(y1);title('多重回声时域波形');。

数字信号处理实验报告--含噪语音信号的分析

数字信号处理实验报告--含噪语音信号的分析

大连理工大学实验报告学院(系):专业:班级:姓名:学号:组:___实验时间:实验室:实验台:指导教师签字:成绩:实验五含噪语音信号的分析一、实验目的和要求二、实验原理和内容三、实验结果与分析第一部分:产生含噪的语音信号首先分析原始的语音信号的波形和频谱:[x,fs,bits]=wavread('009.wav');%sound(x,fs,bits);X=fft(x);t1=(0:length(x)-1)*fs/length(x)-fs/2;figure(1);subplot(2,1,1);plot(x);axis([0,400000,-2,2]);title('原始语音信号时域波形');subplot(2,1,2);plot(t1,fftshift(abs(X)));title('原始语音信号的频谱');%添加噪声N=length(x);noise=0.3*randn(size(x));x1=x+noise;X1=fft(x1);t2=(0:length(x1)-1)*fs/length(x1)-fs/2;%sound(x1,fs,bits);figure(2);subplot(2,1,1);plot(x1);title('加噪语音信号时域波形');subplot(2,1,2);plot(t2,fftshift(abs(X1)));title('加噪语音信号的频谱');0.511.522.533.54x 105-2-1012原始语音信号时域波形-2.5-2-1.5-1-0.500.51 1.52 2.5x 104050001000015000原始语音信号的频谱0.511.522.533.54x 105-2-1012加噪语音信号时域波形-2.5-2-1.5-1-0.500.51 1.52 2.5x 104050001000015000加噪语音信号的频谱利用MATLAB 命令生成含噪语音信号:wavwrite(x1,fs,16,'x1.wav'); 将生成的x1.wav 文件作为后续的GUI 图形界面中用于分析的语音信号。

数字信号处理实验报告

数字信号处理实验报告

Digital Signal ProcessMid-term TaskClass:Dian Zi 2Member:Li Ming 20111794Wu Xun 20111787Gao Feng 20111767Liao Feng 20111769Ren BingTao 20111768题目:关于男女生声音信号的采集和分析一、声音采集部分Matlab中提供了强大的数据采集工具箱,可以满足控制声卡对数据进行采集的要求。

语音数据采集过程如图:在Matlab环境中,可以通过多种编程方法驱动声卡实现对语音信号的采集和播放。

驱动声卡的方式共有四种:一是将声卡作为对象处理采集语音信号;二是调用wavrecord功能函数采集语音信号;三是通过audiorecorder对象采集语音信号;四是可以直接用windows自带的录音机采集声音信号,再通过函数读取和分析(不过这种方式并不利于参数的设置)。

1、将声卡作为处理对象采集语音信号Matlab将声卡作为对象处理,其后的一切操作都不与硬件直接相关,而是通过该对象的操作来作用于硬件设备(声卡)。

操作时首先要对声卡产生一个模拟输入对象(ai),给ai对象添加一个通道,设置采样频率后,就可以启动设备对象,开始采集数据,采集完成后停止对象并删除对象,具体的程序如下:ai=analoginput('winsound'); %为声卡建立一个模拟输入设备对象addchannel(ai,1); %设置声卡通道,1为单声道,2为双声道fs=22050; %采样频率设置为22050Hzai.samplerate=fs; %设置采样频率t=2; %设置采样时间start(ai); %启动并触发声卡设备采集数据stop(ai); %停止采集delete(ai); %去除设备对象clear ai; %清除变量2、调用wavrecord功能函数采集语音信号fs=22050; %样本采集频率y=wavrecord(5*fs,fs,'int16');%fs代表样本采集频率,nbits代表每%个样本的位数,ch代表采集通道,1%为单声道,2为双声道,默认值为1 wavplay(y,fs); %播放声音信号或sound(y,fs);3、运用audiorecorder对象采集语音信号ar=audiorecorder(11025,16,2);%这里的三个参数与wavrecord的三个%参数相同ar.record; %开始录音ar.pause; %暂停录音p=ar.play; %播放录音ar.resume; %继续录音p=ar.play; %播放完整录音4、通过windows自带的录音器采集信号我们通过windows的内容采集到标准的声音信号,这时将会生成一个wav 文件(win7的系统生成的是wma文件,可以转换格式)。

数字信号处理实验报告

数字信号处理实验报告

数字信号处理实验报告数字信号处理实验报告一、实验目的本实验旨在通过数字信号处理的方法,对给定的信号进行滤波、频域分析和采样率转换等操作,深入理解数字信号处理的基本原理和技术。

二、实验原理数字信号处理(DSP)是一种利用计算机、数字电路或其他数字设备对信号进行各种处理的技术。

其主要内容包括采样、量化、滤波、变换分析、重建等。

其中,滤波器是数字信号处理中最重要的元件之一,它可以用来提取信号的特征,抑制噪声,增强信号的清晰度。

频域分析是指将时域信号转化为频域信号,从而更好地理解信号的频率特性。

采样率转换则是在不同采样率之间对信号进行转换,以满足不同应用的需求。

三、实验步骤1.信号采集:首先,我们使用实验室的信号采集设备对给定的信号进行采集。

采集的信号包括噪声信号、含有正弦波和方波的混合信号等。

2.数据量化:采集到的信号需要进行量化处理,即将连续的模拟信号转化为离散的数字信号。

这一步通常通过ADC(模数转换器)实现。

3.滤波处理:将量化后的数字信号输入到数字滤波器中。

我们使用不同的滤波器,如低通、高通、带通等,对信号进行滤波处理,以观察不同滤波器对信号的影响。

4.频域分析:将经过滤波处理的信号进行FFT(快速傅里叶变换)处理,将时域信号转化为频域信号,从而可以对其频率特性进行分析。

5.采样率转换:在进行上述处理后,我们还需要对信号进行采样率转换。

我们使用了不同的采样率对信号进行转换,并观察采样率对信号处理结果的影响。

四、实验结果及分析1.滤波处理:经过不同类型滤波器处理后,我们发现低通滤波器可以有效抑制噪声,高通滤波器可以突出高频信号的特征,带通滤波器则可以提取特定频率范围的信号。

这表明不同类型的滤波器在处理不同类型的信号时具有不同的效果。

2.频域分析:通过FFT处理,我们将时域信号转化为频域信号。

在频域分析中,我们可以更清楚地看到信号的频率特性。

例如,对于噪声信号,我们可以看到其频率分布较为均匀;对于含有正弦波和方波的混合信号,我们可以看到其包含了不同频率的分量。

数字信号处理(DSP)实验报告

数字信号处理(DSP)实验报告

数字信号处理(DSP)实验报告学院电子科学与工程学院姓名学号指导教师2016年6月2日实验一M2.1Write a MATLAB program to the generate the conjugate-symmetric and conjugate-antisymmetric parts of a finite length complex sequence. Using this program verify the results of Example 2.8.Code:x = [0 1+4j -2+3j 4-2j -5-6j -2j 3];cs = 0.5*(x + conj(fliplr(x)));ca = 0.5*(x - conj(fliplr(x)));M2.2 (a) Using Program 2-2, generate the sequences shown in Figures 2.23 and 2.24.)n for 0≤n≤82using(b)Generate and plot the complex exponential sequence -2.7e(-0.4+jπ6Program 2-2.Code:% Program 2_2% Generation of complex exponential sequence%a = input('Type in real exponent = ');b = input('Type in imaginary exponent = ');c = a + b*i;K = input('Type in the gain constant = ');N = input ('Type in length of sequence = ');n = 1:N;x = K*exp(c*n);%Generate the sequencestem(n,real(x));%Plot the real partxlabel('Time index n');ylabel('Amplitude');title('Real part');disp('PRESS RETURN for imaginary part');pausestem(n,imag(x));%Plot the imaginary partxlabel('Time index n');ylabel('Amplitude'); title('Imaginary part');Figure 2.23Figure 2.24Figure 2.2bM2.4 (a) Write a MATLAB program to generate a sinusoidal sequence x[n]=Asin(ω0n+φ), and plotTime index nA m p l i t u d eImaginary partTime index nA m p l i t u d eTime index nA m p l i t ud eReal partTime index nA m p l i t u d ethe sequence using the stem function. The input data specified by the user the desired length L, amplitude A, the angular frequency ω0, and the phase φ where 0<ω0<πand 0≤ ∅≤2π. Using this program, generate the sinusoidal sequences shown in Figure 2.22.(b) Generate sinusoidal sequences with the angular frequencies given in Problem 2.40. Determine the period of each sequence from the plot, and verify the result theoretically. Code:L = input('Desired length = ');A = input('Amplitude = ');omega = input('Angular frequency = ');phi = input('Phase = ');n = 0:L-1;x = A*cos(omega*n + phi);stem(n,x);xlabel('Time Index'); ylabel('Amplitude');title(['\omega_{o} = ',num2str(omega/pi),'\pi']);Figure 2.22M2.6Write a MA TLAB program to plot a continuous-time sinusoidal signal and its sampled version, and verify Figure 2.28. You need to the hold function to keep both plots.Code:t = 0:0.001:1;fo = input('Frequency of sinusoid in Hz = ');FT = input('Sampling frequency in Hz = ');g1 = cos(2*pi*fo*t);plot(t,g1,':');xlabel('time'); ylabel('Amplitude'); holdn = 0:1:FT;gs = cos(2*pi*fo*n/FT);plot(n/FT,gs,'o'); hold offM3.2 Using Program 3-1, determine and plot the real and imaginary parts and the magnitude and phase spectra of the DTFTs of the sequence of Problem 3.18 for N=10.,Code:% Program 3_1% Discrete-Time Fourier Transform Computation%% Read in the desired number of frequency samplesk = input('Number of frequency points = ');% Read in the numerator and denominator coefficientsnum = input('Numerator coefficients = ');den = input('Denominator coefficients = ');% Compute the frequency responsew = 0:pi/(k-1):pi;h = freqz(num, den, w);%%%%%%%h = h.*exp(1i*w*10);% Plot the frequency response%h=sin(21*w/2)./sin(w/2);%h=exp(-1i*w*5).*sin(w*11/2)./sin(w/2);subplot(2,2,1)plot(w/pi,real(h));gridtitle('Real part')xlabel('\omega/\pi'); ylabel('Amplitude')subplot(2,2,2)plot(w/pi,imag(h));gridtitle('Imaginary part')xlabel('\omega/\pi'); ylabel('Amplitude')subplot(2,2,3)plot(w/pi,abs(h));gridtitle('Magnitude Spectrum')xlabel('\omega/\pi'); ylabel('Magnitude')subplot(2,2,4)plot(w/pi,angle(h));gridtitle('Phase Spectrum')xlabel('\omega/\pi'); ylabel('Phase, radians')M3.3 Using Program 3-1, determine and plot the real and imaginary parts and the magnitude and phase spectra of the following DTFTs:(a)X(e jω)=0.1323(1+0.1444e−jω−0.4519e−j2ω+0.1444e−j3ω+e−j4ω),1+0.1386e−jω+0.8258e−j2ω+0.1393e−j3ω+0.4153e−j4ω.(b) X(e jω)=0.3192(1+0.1885e−jω−0.1885e−j2ω−e−j3ω)1+0.7856e−jω+1.4654e−j2ω−0.2346e−j3ωCode:% Program 3_1% Discrete-Time Fourier Transform Computation%% Read in the desired number of frequency samplesk = input('Number of frequency points = ');% Read in the numerator and denominator coefficientsnum = input('Numerator coefficients = ');den = input('Denominator coefficients = ');% Compute the frequency responsew = 0:pi/(k-1):pi;h = freqz(num, den, w);%%%%%%%h = h.*exp(1i*w*10);% Plot the frequency response%h=sin(21*w/2)./sin(w/2);%h=exp(-1i*w*5).*sin(w*11/2)./sin(w/2);subplot(2,2,1)plot(w/pi,real(h));gridtitle('Real part')xlabel('\omega/\pi'); ylabel('Amplitude')subplot(2,2,2)plot(w/pi,imag(h));gridtitle('Imaginary part')xlabel('\omega/\pi'); ylabel('Amplitude') subplot(2,2,3)plot(w/pi,abs(h));gridtitle('Magnitude Spectrum')xlabel('\omega/\pi'); ylabel('Magnitude') subplot(2,2,4)plot(w/pi,angle(h));gridtitle('Phase Spectrum')xlabel('\omega/\pi'); ylabel('Phase, radians')Figure aFigure bM3.4 Using MATLAB, verify the symmetry relations of the DTFT of a real sequence as listed in Table 3.1.Code:N = 8; % Number of samples in sequencegamma = 0.5; k = 0:N-1;x = 0.5.^k;w = -3*pi:pi/1024:3*pi;X = freqz(x,1,w);subplot(2,2,1)plot(w/pi,real(X));gridtitle('Real part')xlabel('\omega/\pi'); ylabel('Amplitude')subplot(2,2,2)plot(w/pi,imag(X));gridtitle('Imaginary part')xlabel('\omega/\pi'); ylabel('Amplitude')subplot(2,2,3)plot(w/pi,abs(X));gridtitle('Magnitude Spectrum')xlabel('\omega/\pi'); ylabel('Magnitude')subplot(2,2,4)plot(w/pi,angle(X));gridtitle('Phase Spectrum')xlabel('\omega/\pi'); ylabel('Phase, radians')M4.1 Using Program 4-1(new), investigate the effect of signal smoothing by a moving-average filter of length 5, 7 and 9. Does the signal smoothing improve with an increase in the length? What is the effect of the length on the delay between the smoothing output and the noisy input? Code:% Program 4_1% Signal Smoothing by a Moving-Average FilterR = 50;d = rand(R,1)-0.5;m = 0:1:R-1;s = 2*m.*(0.9.^m);x = s + d';plot(m,d,'r-',m,s,'b--',m,x,'g:')xlabel('Time index n'); ylabel('Amplitude')legend('d[n]','s[n]','x[n]');pauseM = input('Number of input samples = ');b = ones(M,1)/M;y = filter(b,1,x);plot(m,s,'r-',m,y,'b--')legend('s[n]','y[n]');xlabel ('Time index n');ylabel('Amplitude')实验二M5.1 Using MATLAB, compute the N-point DFTs the length-N sequences of Problem 3.18 for N=4,6,8 and 10. Compare your result with that obtained by evaluating the DTFTs computed inProblem 3.18 at ω=2πkN,k=0,1…..,N-1.Code:N = input('The value of N = ');k = -N:N;y = ones(1,2*N+1);w = 0:2*pi/255:2*pi;Y = freqz(y, 1, w);Ydft = fft(y);n = 0:1:2*N;plot(w/pi,abs(Y),n*2/(2*N+1),abs(Ydft),'o');xlabel('\omega/\pi'),ylabel('Amplitude');M6.1 Using Program 6-1, determine the factored form of the following z-transforms:(a)G1=3z4−2.4z3+15.36z2+3.84z+95z4−8.5z3+17.6z2+4.7z−6,(b)G2=2z4+0.2z3+6.4z2+4.6z+2.4.5z4+z3+6.6z2+0.42z+24Code:% Program 6_1% Determination of the Factored Form% of a Rational z-Transform%num = input('Type in the numerator coefficients = '); den = input('Type in the denominator coefficients = '); K = num(1)/den(1);Numfactors = factorize(num);Denfactors = factorize(den);disp('Numerator factors');disp(Numfactors);disp('Denominator factors');disp(Denfactors);disp('Gain constant');disp(K);zplane(num,den);Figure aFigure bM8.1 Using MATLAB, develop a cascade realization of each of the following linear-phase FIR transfer function:(a)H1(z)=-0.3+0.16z−1+0.1z−2+1.2z−3+0.1z−4+0.16z−5−0.3z−6,(b) H2(z)=2-3.8z−1+1.5z−2−4.2z−3+1.5z−4−3.8z−5+2z−6,(c) H3(z)=-0.3+0.16z−1+0.1z−2−0.1z−4+0.16z−5−0.3z−6,(d) H4(z)=--2+3.8z−1−0.15z−2+0.15z−4−3.8z−5+2z−6,Code:num = input('Type in the numerator coefficients = ');Numfactors = factorize(num);disp('Numerator factors');disp(Numfactors);Figure aFigure bFigure cFigure dM8.2 Consider the fourth-oder IIR transfer function.G(z)=0.1103−0.4413z−1+0.6619z−2−0.4413z−3+0.1103z−41−0.1510z−1+0.8042z−2+0.1618z−3+0.1872z−4(a)Using MATLAB, express G(z) in factored form.(b)Develop two different cascade realizations of G(z).(c)Develop two different parallel form realization of G(z).Realize each second-order section in direct from II.Code:% Program 8_2% Factorization of a Rational IIR Transfer Function %format shortnum = input('Numerator coefficients = ');den = input('Denominator coefficients = '); Numfactors = factorize(num);Denfactors = factorize(den);K = num(1)/den(1);disp('Numerator Factors'),disp(Numfactors)disp('Denominator Factors'),disp(Denfactors)disp('Gain constant');disp(K);Figure aM9.1 Design a digital Butterworth lowpass filter operating at a sampling rate of 100kHz with a 0.3dB cutoff frequency at 15kHz and a minimum stopband attenuation of 45 dB at 25 kHz using the bilinear transformation method. Determine the order of the analog filter prototype using the formula given in Eq.(A.9), and then design the analog prototype filter using the M-file buttap of MATLAB. Transform the analog filter transform function to the desired digital transfer function using the M-file bilinear. Plot the gain and phase response using MA TLAB. Show all step used in the design. Code:wp=2*1/4;ws=2*15/40;[n1,wn1]=buttord(wp,ws,3,35);[B,A]=butter(n1,wn1);[h1,w]=freqz(B,A);f=w/pi*20000;plot(f,20*log10(abs(h1)),'r');axis([0,20000,-80,10]);grid;xlabel('Frequency/Hz');ylabel('Magnitude/dB');M10.1 Plot the magnitude response of a linear-phase FIR highpass filter by truncating the impulse response h HP[n] of the ideal highpass filter of Eq.(10.17) to length N=2M+1 for two different values of M, and show that the truncated filter exhibits oscillatory behavior on both sides of the cutoff frequency.Code:M=800;n= -M:M;hn= -sin(0.4*pi*n)./(pi*n);%hn= -0.4*sinc(0.4*n);hn(M+1)=0.6;[H,w] = freqz(hn,1);plot(n,hn)figure,plot(w/pi,abs(H))M10-1M10-2M11-1 Using Program 11-1,determine the first 30 samples of the impulse response coeFfiicients of the following filters:(a)Filter-oder elliptic lowpass filter developed in Example 9.14,(b)Fourth-oder Type 1 Chebyshev highpass filter developed in Example 9.15,(c)Eight-oder Butterworth bandpass filter develped in Example 9.16. Code:N=8;xa=input('8点xa =');xb=input('8点xb =');xak=fft(xa,N);xbk=fft(xb,N);f=ifft(xak.*xbk,N);figure(1);subplot(5,1,1);stem(0:N-1,xa);title('xa(n)');subplot(5,1,2);stem(0:N-1,xb);title('xb(n)');subplot(5,1,3);stem(0:N-1,f);title('xa(n)⊙xb(n)');xak1=fft(xa,2*N);xbk1=fft(xb,2*N);h=ifft(xak1.*xbk1,2*N);subplot(5,1,4);stem(0:2*N-2,h(1:2*N-1));title('xa*xb');h=conv(xa,xb);subplot(5,1,5);stem(0:2*N-2,h(1:2*N-1));M11-1实验体会通过本次实验,通过此次DSP上机实验,进一步掌握和巩固了数字信号的相关知识,以及Matlab的相关操作,体验了将实际问题用软件进行实际应用的方法,为今后的学习和毕设夯实基础。

数字信号处理--变声器报告

数字信号处理--变声器报告

数字信号处理--变声器报告1项目目标:把自己(男)的声音分别变成小孩的声音、女人的声音和老人的声音。

2变声原理:语音科学家将人类发声过程视作一个由声门源输送的气流经以声道、口、鼻腔组成的滤波器调制而成的。

人类语音可分为有声语音和无声语音,前者是由声带振动激励的脉冲信号经声腔调制变成不同的音,它是人类语言中元音的基础,声带振动的频率称为基频。

无声语音则是声带保持开启状态,禁止振动引发的。

一般来说,由声门振动决定的基频跟说话人的性别特征有关,如下表,而无声语音则没有体现这个特征。

说话人的个性化音色和语音的另外一个声学参数——共振峰频率的分布有关。

儿童由于声道短,其共振峰频率高于成年人,成年女性的声道一般短于成年男性,所以女性的共振峰频率一般高于男性。

表男声、女声和童声基频、共振峰频率关系表由上可知,在进行性别变声时,主要考虑基频和共振峰频率的变化。

当基频伸展,共振峰频率也同时伸展时,可由男声变成女声,女声变成童声;反之,基频收缩,共振峰频率也同时收缩时,则由童声变女声,女声变男声。

为了获得自然度、真实感较好的变声效果,基频和共振峰频率通常必须各自独立地伸缩变化如图1。

图1 基频和共振峰频率分布的变化共振峰频率的改变是基于重采样实现的,从重采样原理知道,这也同时引发了基频的变化,为保证基频变化和共振峰频率变化的独立、互不相关,在基频移动时必须考虑抵消重采样带来的偏移,理论上只要基频检测足够精确,确实可以保证基频改变和共振峰频率改变间的互不相关。

3设计方案:1录入自己(小孩、女人、老人)的一段声音 2用MATLAB做fft得到其频谱 3做fft频谱分析 4搬移和改变基频、语速,实现变声4程序流图5程序清单:元语音信号[s,fs,nbits] = wavread(‘wo.wav’); % 载入语音ss = s/max(s); %归一化L = length(s); % 读入语音长度S=fft(s,L);pigure_ubplot(2,1,1);plot(s);title(‘原语音信号波形’);_ubplot(2,1,2);plot(abs(S));title(‘原语音信号频谱’);变声:小孩的声音clear all,close all, clc;% 定义常数FL =80; % 帧长WL = 240; % 窗长P = 10; % 预测系数个数[s,fs,nbits] = wavread('wo.wav'); % 载入语音s s = s/max(s); %归一化L = length(s); % 读入语音长度FN = floor(L/FL)-2; % 计算帧长% 预测和重建滤波器exc = zeros(L,1); % 激励信号zi_pre = zeros(P,1); % 预测滤波器的状态s_rec = zeros(L,1); % 重建语音zi_rec = zeros(P,1);% 变调不变速滤波器exc_syn_t = zeros(L,1); % 合成的激励信号s_syn_t = zeros(L,1); % 合成语音last_syn_t = 0; %存储上一个(或多个)段的最后一个脉冲的下标zi_syn_t = zeros(P,1); % 合成滤波器的状态hw = hamming(WL); % 汉明窗% 依次处理每帧语音for n = 3:FN% 计算预测系数s_w = s(n*FL-WL+1:n*FL).*hw; %汉明窗加权后的语音[A E] = lpc(s_w, P); %用线性预测法计算P个预测系数% A是预测系数,E会被用来计算合成激励的能量s_f = s((n-1)*FL+1:n*FL); % 本帧语音,下面就要对它做处理% (4) 用filter函数s_f计算激励,注意保持滤波器状态[exc1,zi_pre] = filter(A,1,s_f,zi_pre);exc((n-1)*FL+1:n*FL) = exc1; %计算得到的激励% (5) 用filter函数和exc重建语音,注意保持滤波器状态[s_rec1,zi_rec] = filter(1,A,exc1,zi_rec);s_rec((n-1)*FL+1:n*FL) = s_rec1; %计算得到的重建语音% 注意下面只有在得到exc后才会计算正确s_Pitch = exc(n*FL-222:n*FL);PT = findpitch(s_Pitch); % 计算基音周期PTG = sqrt(E*PT); % 计算合成激励的能量G% (13) 将基音周期减小一半,将共振峰频率增加7000Hz,重新合成语音PT1 =floor(PT/2); %减小基音周期poles = roots(A);deltaOMG = 700*2*pi/8000;for p=1:10 %增加共振峰频率,实轴上方的极点逆时针转,下方顺时针转if imag(poles(p))>0 poles(p) = poles(p)*exp(j*deltaOMG);elseif imag(poles(p))<0 poles(p) = poles(p)*exp(-j*deltaOMG);endendA1=poly(poles);tempn_syn_t = [1:n*FL-last_syn_t]';exc_syn1_t = zeros(length(tempn_syn_t),1);exc_syn1_t(mod(tempn_syn_t,PT1)==0) = G; %某一段算出的脉冲exc_syn1_t = exc_syn1_t((n-1)*FL-last_syn_t+1:n*FL-last_syn_t); [s_syn1_t,zi_syn_t] = filter(1,A1,exc_syn1_t,zi_syn_t);exc_syn_t((n-1)*FL+1:n*FL) = exc_syn1_t; %计算得到的合成激励s_syn_t((n-1)*FL+1:n*FL) = s_syn1_t; %计算得到的合成语音last_syn_t = last_syn_t+PT1*floor((n*FL-last_syn_t)/PT1);endS=(s_syn_t,L)%变调不变速figure;subplot(2,1,1), plot(exc_syn_t), xlabel('n (samples)'),ylabel('Amplitude'), title('合成高调激励信号') ,XLim([0,length(exc_syn_t)]);subplot(2,1,), plot(abs(S))), title('合成高调语音信号频谱'), XLim([0,length(s_syn_t)]);sound(s_syn_t);女人的声音把上面程序中的(deltaOMG = 700*2*pi/8000; )改为(deltaOMG = 100*2*pi/8000;)老人的声音clear all,close all, clc;% 定义常数FL =80; % 帧长WL = 240; % 窗长P = 10; % 预测系数个数[s,fs,nbits] = wavread('wo.wav'); % 载入语音s s = s/max(s); %归一化L = length(s); % 读入语音长度FN = floor(L/FL)-2; % 计算帧数% 预测和重建滤波器exc = zeros(L,1); % 激励信号zi_pre = zeros(P,1); % 预测滤波器的状态s_rec = zeros(L,1); % 重建语音zi_rec = zeros(P,1);% 变速不变调滤波器v=.38;exc_syn_v = zeros(v\L,1); % 合成的激励信号s_syn_v = zeros(v\L,1); % 合成语音last_syn_v = 0; %存储上一个(或多个)段的最后一个脉冲的下标zi_syn_v = zeros(P,1); % 合成滤波器的状态hw = hamming(WL); % 汉明窗% 依次处理每帧语音for n = 3:FN% 计算预测系数(不需要掌握)s_w = s(n*FL-WL+1:n*FL).*hw; %汉明窗加权后的语音[A E] = lpc(s_w, P); %用线性预测法计算P个预测系数% A是预测系数,E会被用来计算合成激励的能量s_f = s((n-1)*FL+1:n*FL); % 本帧语音,下面就要对它做处理% (4) 用filter函数s_f计算激励,注意保持滤波器状态[exc1,zi_pre] = filter(A,1,s_f,zi_pre);exc((n-1)*FL+1:n*FL) = exc1; %计算得到的激励% (5) 用filter函数和exc重建语音,注意保持滤波器状态[s_rec1,zi_rec] = filter(1,A,exc1,zi_rec);s_rec((n-1)*FL+1:n*FL) = s_rec1; %计算得到的重建语音% 注意下面只有在得到exc后才会计算正确s_Pitch = exc(n*FL-222:n*FL);PT = findpitch(s_Pitch); % 计算基音周期PT(不要求掌握)G = sqrt(E*PT); % 计算合成激励的能量G(不要求掌握)% (11) 不改变基音周期和预测系数,将合成激励的长度增加一倍,再作为filter% 的输入得到新的合成语音,听一听是不是速度变慢了,但音调没有变。

matlab实现声音转换

matlab实现声音转换

小孩声音的基频要比女声的高,老年人的基频要比男声的低。 经过整理统计可知 女声基频=男声基频*1.5。 本程序使用的是通过抽样与插值的方式来到达基频的转变。 以女变男为例:
用整数 D 对语音信号 X〔n〕进行抽取 Xd=X〔Dn〕;
信号合成,识别和增添等; 处理后的数据如是音频数据,则可用 wavread 转换成 wav 格式文件或用
为了能使上面的参数更简单理解,用下面的图标是各参量之间的关系。
解,然后以帧间距 ss 进行合成。
整个算法首先将语音段中的前 W 个数值取出来,直接存入到输出序列
sa 与 ss 的的比值确定了时长规整因子 F=sa/ss。为保证重叠区域幅 中。然后依据 Sa 的值取出下一段语音,也就是从第 Sa 个点开始取,始终
转变, 因此通过时长规整的方式来使播放速度 和时间恢复到原来。
4〕 kmax:查找延时。这一延时是指分析窗口为了与输出信号的尾
本程序使用的是用重叠叠加算法来到达时长规整。
部相一致而必需发生的一段延时。
重叠叠加算法原理:
5〕 Wov:后一段语音与前一段语音相叠加的长度。
它分为两个阶段——分解和合成 将原始信号以帧长 N,帧间距 sa 进行分
点与输出序列中的最终 Wov 个点的一致性。取出其中一致性最好的那个语 据这一比例关系,我们就可以认为地操纵输出序列的长度〔当然,这种操
音段将其前 Wov 个点叠加到输出序列中去。设叠加时所用的窗用表示,输 纵是十分粗略的,并且出序列中的最终 Wov 个点通过与所选
然后将 X〔n〕的抽样频率提高到 I〔整数〕倍 ,即为对 X〔n〕的插值。
第1页共5页
D/I=3/2;
本文格式为 Word 版,下载可任意编辑,页眉双击删除即可。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数字信号处理--变声器报告1项目目标:把自己(男)的声音分别变成小孩的声音、女人的声音和老人的声音。

2变声原理:语音科学家将人类发声过程视作一个由声门源输送的气流经以声道、口、鼻腔组成的滤波器调制而成的。

人类语音可分为有声语音和无声语音,前者是由声带振动激励的脉冲信号经声腔调制变成不同的音,它是人类语言中元音的基础,声带振动的频率称为基频。

无声语音则是声带保持开启状态,禁止振动引发的。

一般来说,由声门振动决定的基频跟说话人的性别特征有关,如下表,而无声语音则没有体现这个特征。

说话人的个性化音色和语音的另外一个声学参数——共振峰频率的分布有关。

儿童由于声道短,其共振峰频率高于成年人,成年女性的声道一般短于成年男性,所以女性的共振峰频率一般高于男性。

表男声、女声和童声基频、共振峰频率关系表由上可知,在进行性别变声时,主要考虑基频和共振峰频率的变化。

当基频伸展,共振峰频率也同时伸展时,可由男声变成女声,女声变成童声;反之,基频收缩,共振峰频率也同时收缩时,则由童声变女声,女声变男声。

为了获得自然度、真实感较好的变声效果,基频和共振峰频率通常必须各自独立地伸缩变化如图1。

V1 男声变童声V2 男声变女声图1 基频和共振峰频率分布的变化共振峰频率的改变是基于重采样实现的,从重采样原理知道,这也同时引发了基频的变化,为保证基频变化和共振峰频率变化的独立、互不相关,在基频移动时必须考虑抵消重采样带来的偏移,理论上只要基频检测足够精确,确实可以保证基频改变和共振峰频率改变间的互不相关。

3设计方案:1录入自己(小孩、女人、老人)的一段声音 2用MATLAB 做fft得到其频谱 3做fft频谱分析 4搬移和改变基频、语速,实现变声4程序流图5程序清单:元语音信号[s,fs,nbits] = wavread(‘wo.wav’); % 载入语音s s = s/max(s); %归一化L = length(s); % 读入语音长度S=fft(s,L);pigureubplot(2,1,1);plot(s);title(‘原语音信号波形’);ubplot(2,1,2);plot(abs(S));title(‘原语音信号频谱’);变声:小孩的声音clear all,close all, clc;% 定义常数FL =80; % 帧长WL = 240; % 窗长P = 10; % 预测系数个数[s,fs,nbits] = wavread('wo.wav'); % 载入语音ss = s/max(s); %归一化L = length(s); % 读入语音长度FN = floor(L/FL)-2; % 计算帧长% 预测和重建滤波器exc = zeros(L,1); % 激励信号zi_pre = zeros(P,1); % 预测滤波器的状态s_rec = zeros(L,1); % 重建语音zi_rec = zeros(P,1);% 变调不变速滤波器exc_syn_t = zeros(L,1); % 合成的激励信号s_syn_t = zeros(L,1); % 合成语音last_syn_t = 0; %存储上一个(或多个)段的最后一个脉冲的下标zi_syn_t = zeros(P,1); % 合成滤波器的状态hw = hamming(WL); % 汉明窗% 依次处理每帧语音for n = 3:FN% 计算预测系数s_w = s(n*FL-WL+1:n*FL).*hw; %汉明窗加权后的语音[A E] = lpc(s_w, P); %用线性预测法计算P个预测系数% A是预测系数,E会被用来计算合成激励的能量s_f = s((n-1)*FL+1:n*FL); % 本帧语音,下面就要对它做处理% (4) 用filter函数s_f计算激励,注意保持滤波器状态[exc1,zi_pre] = filter(A,1,s_f,zi_pre);exc((n-1)*FL+1:n*FL) = exc1; %计算得到的激励% (5) 用filter函数和exc重建语音,注意保持滤波器状态[s_rec1,zi_rec] = filter(1,A,exc1,zi_rec);s_rec((n-1)*FL+1:n*FL) = s_rec1; %计算得到的重建语音% 注意下面只有在得到exc后才会计算正确s_Pitch = exc(n*FL-222:n*FL);PT = findpitch(s_Pitch); % 计算基音周期PTG = sqrt(E*PT); % 计算合成激励的能量G% (13) 将基音周期减小一半,将共振峰频率增加7000Hz,重新合成语音PT1 =floor(PT/2); %减小基音周期poles = roots(A);deltaOMG = 700*2*pi/8000;for p=1:10 %增加共振峰频率,实轴上方的极点逆时针转,下方顺时针转if imag(poles(p))>0 poles(p) = poles(p)*exp(j*deltaOMG);elseif imag(poles(p))<0 poles(p) = poles(p)*exp(-j*deltaOMG);endendA1=poly(poles);tempn_syn_t = [1:n*FL-last_syn_t]';exc_syn1_t = zeros(length(tempn_syn_t),1);exc_syn1_t(mod(tempn_syn_t,PT1)==0) = G; %某一段算出的脉冲exc_syn1_t = exc_syn1_t((n-1)*FL-last_syn_t+1:n*FL-last_syn_t);[s_syn1_t,zi_syn_t] = filter(1,A1,exc_syn1_t,zi_syn_t);exc_syn_t((n-1)*FL+1:n*FL) = exc_syn1_t; %计算得到的合成激励s_syn_t((n-1)*FL+1:n*FL) = s_syn1_t; %计算得到的合成语音last_syn_t = last_syn_t+PT1*floor((n*FL-last_syn_t)/PT1);endS=(s_syn_t,L)%变调不变速figure;subplot(2,1,1), plot(exc_syn_t), xlabel('n (samples)'), ylabel('Amplitude'), title('合成高调激励信号') ,XLim([0,length(exc_syn_t)]);subplot(2,1,), plot(abs(S))), title('合成高调语音信号频谱'), XLim([0,length(s_syn_t)]);sound(s_syn_t);女人的声音把上面程序中的(deltaOMG = 700*2*pi/8000;)改为(deltaOMG = 100*2*pi/8000;)老人的声音clear all,close all, clc;% 定义常数FL =80; % 帧长WL = 240; % 窗长P = 10; % 预测系数个数[s,fs,nbits] = wavread('wo.wav'); % 载入语音ss = s/max(s); %归一化L = length(s); % 读入语音长度FN = floor(L/FL)-2; % 计算帧数% 预测和重建滤波器exc = zeros(L,1); % 激励信号zi_pre = zeros(P,1); % 预测滤波器的状态s_rec = zeros(L,1); % 重建语音zi_rec = zeros(P,1);% 变速不变调滤波器v=.38;exc_syn_v = zeros(v\L,1); % 合成的激励信号s_syn_v = zeros(v\L,1); % 合成语音last_syn_v = 0; %存储上一个(或多个)段的最后一个脉冲的下标zi_syn_v = zeros(P,1); % 合成滤波器的状态hw = hamming(WL); % 汉明窗% 依次处理每帧语音for n = 3:FN% 计算预测系数(不需要掌握)s_w = s(n*FL-WL+1:n*FL).*hw; %汉明窗加权后的语音[A E] = lpc(s_w, P); %用线性预测法计算P个预测系数% A是预测系数,E会被用来计算合成激励的能量s_f = s((n-1)*FL+1:n*FL); % 本帧语音,下面就要对它做处理% (4) 用filter函数s_f计算激励,注意保持滤波器状态[exc1,zi_pre] = filter(A,1,s_f,zi_pre);exc((n-1)*FL+1:n*FL) = exc1; %计算得到的激励% (5) 用filter函数和exc重建语音,注意保持滤波器状态[s_rec1,zi_rec] = filter(1,A,exc1,zi_rec);s_rec((n-1)*FL+1:n*FL) = s_rec1; %计算得到的重建语音% 注意下面只有在得到exc后才会计算正确s_Pitch = exc(n*FL-222:n*FL);PT = findpitch(s_Pitch); % 计算基音周期PT(不要求掌握)G = sqrt(E*PT); % 计算合成激励的能量G(不要求掌握)% (11) 不改变基音周期和预测系数,将合成激励的长度增加一倍,再作为filter% 的输入得到新的合成语音,听一听是不是速度变慢了,但音调没有变。

FL_v = floor(FL/v);tempn_syn_v = [1:n*FL_v-last_syn_v]';exc_syn1_v = zeros(length(tempn_syn_v),1);exc_syn1_v(mod(tempn_syn_v,PT)==0) = G; %某一段算出的脉冲exc_syn1_v = exc_syn1_v((n-1)*FL_v-last_syn_v+1:n*FL_v-last_syn_v);[s_syn1_v,zi_syn_v] = filter(1,A,exc_syn1_v,zi_syn_v);last_syn_v = last_syn_v+PT*floor((n*FL_v-last_syn_v)/PT);exc_syn_v((n-1)*FL_v+1:n*FL_v) =exc_syn1_v; %计算得到的加长合成激励s_syn_v((n-1)*FL_v+1:n*FL_v) = s_syn1_v; %计算得到的加长合成语音endS=fft(s_syn_v,L);%变速不变调figure;subplot(2,1,1), plot(s_syn_v), xlabel('n (samples)'), ylabel('Amplitude'), title('合成慢速语音信号'),subplot(2,1,2), plot(abs(S)), title('合成慢速语音信号频谱'),sound(s_syn_v);6操作界面操作说明操作界面如上图(1)点击按钮“录音”表示开始录音;“原声”按钮表示播放录入的声音;(2)“小孩的声音”按钮表示把录入的声音变成小孩的声音;(3)“女人的声音”按钮表示把原声变成女人的声音;(4)“老人的声音”按钮表示把原声变成老人的声音。

相关文档
最新文档