声音的延时和混响仿真

更新时间:2024-04-04 12:49:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

武汉理工大学《信息处理课群综合应用设计》课程设计说明书

课程设计任务书

学生姓名:专业班级: 指导教师:工作单位:

题 目: 声音的延时和混响仿真

初始条件:MATLAB软件、Windows自带的录音功能 要求完成的主要任务:

(1)利用Windows下的录音机或其他软件,录制一段自己的语音信号,时间控制在1s左右,并对录制的信号进行采样。

(2)语音信号的频谱分析,画出采样后语音信号的时域波形和频谱图。 (3)将信号加入延时和混响,再分析其频谱,并与原始信号频谱进行比较。 (4)设计几种特殊类型的滤波器:单回声滤波器,多重回声滤波器,无限个回声滤波器,全通结构的混响器,并画出滤波器的频域响应。

(5)用自己设计的滤波器对采集的语音信号进行滤波。

(6)分析得到信号的频谱,画出滤波后信号的时域波形和频谱,并对滤波前后的信号进行对比,分析信号的变化。

(7)回放语音信号。

时间安排:

序号 1 2 3 4 阶段内容 根据课题的技术指标,确定整体方案,并进行参数设计计算 根据实验条件进行全部或部分程序的编写与调试,并完成基本功能 总结编写课程设计报告 答辩 合计 所需时间 2天 5天 2天 1天 10天 指导教师签名: 年月 日

系主任(或责任教师)签名: 年 月 日

武汉理工大学《信息处理课群综合应用设计》课程设计说明书

目录

摘要 ................................................................... I Abstract ............................................................. II 1、引言 ............................................................... 1

1.1 简介 .......................................................................................................................... 1 1.2设计任务与要求 ....................................................................................................... 1

2、设计原理 ........................................................... 3

2.1 延时和混响的基本原理 .......................................................................................... 3

2.1.1基本原理 ........................................................................................................ 3 2.1.2延时 ................................................................................................................ 4 2.1.3混响 ................................................................................................................ 5 2.2 信号处理基本原理 .................................................................................................. 6

2.2.1离散傅立叶变换 ............................................................................................ 6 2.2.2滤波器设计 .................................................................................................... 6

3、系统框架及详细设计 ............................................... 8

3.1总体方案 ................................................................................................................... 8 3.2 程序流程图 .............................................................................................................. 9 3.3详细设计 ................................................................................................................. 10

3.3.1读取语音信号 .............................................................................................. 10 3.3.2采样后信号的时域波形和频谱 .................................................................. 10 3.3.3信号的延时 .................................................................................................. 10 3.3.4信号的混响 .................................................................................................. 11 3.3.5单回声滤波器 .............................................................................................. 11 3.3.6多重回声滤波器 .......................................................................................... 12 3.3.7无限回声滤波器 .......................................................................................... 12 3.3.8全通结构的混响器 ...................................................................................... 13 3.3.9自己设计的LPF .......................................................................................... 14

武汉理工大学《信息处理课群综合应用设计》课程设计说明书

4 实验仿真及结果分析 ............................................... 16

4.1原始采样语音信号 ................................................................................................. 16 4.2加延时的语音信号 ................................................................................................. 16 4.3加混响的语音信号 ................................................................................................. 17 4.4经特殊类型滤波器的语音信号 ............................................................................. 18

4.4.1单回声滤波器 .............................................................................................. 18 4.4.2多重回声滤波器 .......................................................................................... 19 4.4.3无限个回声滤波器 ...................................................................................... 20 4.4.4全通结构的混响器 ...................................................................................... 19 4.5经LPF的语音信号 ................................................................................................ 19

5总结 ................................................................ 23 参考文献 ............................................................. 24 附录 .................................................................. 25

武汉理工大学《信息处理课群综合应用设计》课程设计说明书

摘要

语音信号处理是一门比较实用的专业课程,语音是人类获取信息的重要来源和获得信息的重要手段。通过语言相互传递信息是人类最重要的基本功能之一。语言是人类特有的功能,它是创造和发展几千年人类文明史的根本手段,没有语言就没有今天的人类文明。语音是语言的声学表现,是相互传递信息的最重要的手段。

语音信号处理有两个需要解决的问题:语音的时变性和直接进行DFT的庞大运算量,其解决措施是加窗函数和运用FFT变换。利用MATLAB语言强大的数据分析和处理功能,我们可以将声音文件变换为离散的数据文件,然后利用其强大的矩阵运算能力处理数据,如数字滤波、傅里叶变换、时域和频域分析、声音回放以及各种信号图的呈现等,进行语音信号处理和分析。

声音的延时和混响是改善听觉特性中最常用的效果器。延时是一种对信号进行重复的效果,而混响通常是由上百万个延时组合而成的结果,它们在语音信号处理中有着非常广泛的作用。本课程设计是对声音的延时和混响的matlab仿真,报告结构是先介绍声音的延时和混响的基本原理以及语音信号处理的基本知识,然后对编写好的matlab程序进行分析,最后对仿真结果进行分析。

关键字:语音信号,延时,混响,MATLAB仿真

I

武汉理工大学《信息处理课群综合应用设计》课程设计说明书

Abstract

The speech is an important means of access to important sources of information and use of information. It’s mankind's most important and most effective, the most common and easiest to exchange information in the form of transmission of information by voice. Speech Signal Processing is a very rapid development, it is widely used in cutting-edge interdisciplinary, but it is also a comprehensive applied research an interdisciplinary and emerging technologies.

Speech Signal Processing There are two problems to be solved: time-varying voice and a huge amount of calculation directly DFT, the solution is for the use of windowing functions and FFT transform. Using MATLAB language powerful data analysis and processing functions, we can sound files converted into discrete data file, and then use its powerful matrix computation ability to process data, such as digital filtering, Fourier transform, time domain and frequency domain analysis, sound playback and presenting various figures, etc., voice signal processing and analysis.

Sound delay and reverb is to improve the auditory characteristics of the most commonly used effects. Delay is a signal repetition effect, and reverb is usually caused by millions of delay from the combination of effects, they have a very wide range of applications in speech signal processing. This course is designed to MATLAB simulation of sound delay and reverb, the reporting structure is to introduce delay and reverb sound background and knowledge related to speech signal processing MATLAB, and MATLAB program to write good code analysis key Finally, a detailed analysis of their simulation results. Keywords: speech signal, delay, reverb, MATLAB simulation

II

武汉理工大学《信息处理课群综合应用设计》课程设计说明书

函数FFT用于序列快速傅立叶变换。函数的一种调用格式为 :y=fft(x) 其中,x是序列,y是序列的FFT,x可以为一向量或矩阵,若x为一向量,y是x的FFT。且和x相同长度。若x为一矩阵,则y是对矩阵的每一列向量进行FFT。

如果x长度是2的幂次方,函数fft执行高速基-2FFT算法;否则fft执行一种混合基的离散傅立叶变换算法,计算速度较慢。

函数FFT的另一种调用格式:y=fft(x,N) 式中,x,y意义同前,N为正整数。

函数执行N点的FFT。若x为向量且长度小于N,则函数将x补零至长度N。若向量x的长度大于N,则函数截短x使之长度为N。若x为矩阵,按相同方法对x进行处理。

经函数fft求得的序列y一般是复序列,通常要求其幅值和相位。MATLAB提供求复数的幅值和相位函数:abs,angle,这些函数一般和FFT同时使用。

用MATLAB工具箱函数fft进行频谱分析时需注意: (1)函数fft返回值y的数据结构对称性。 (2)频率计算。

作FFT分析时,幅值大小与FFT选择点数有关,但不影响分析结果。

2.2.2滤波器设计

数字滤波器的作用是利用离散时间系统的特性对输入信号波形(或频谱)进行加工处理,或者说利用数字方法按预定的要求对信号进行变换。

数字滤波器可以理解为是一个计算程序或算法,将代表输入信号的数字时间序列转化为代表输出信号的数字时间序列,并在转化过程中,使信号按预定的形式变化。

特殊滤波器的系统函数: (1)单回声滤波器的系统函数: H(z)= 1?a?z?(?R)a<1 (式2.1) (2)多重回声滤波器的系统函数: H(z)=[1?aN?z?NR][1?a?z?R]a<1 (式2.2)

(3)无限个回声滤波器的系统函数: H(z)=z?(?R)[1?a?z?(?R)]a<1 (式2.3)

6

武汉理工大学《信息处理课群综合应用设计》课程设计说明书

(4)全通结构的混响器的系统函数: H(z)=[a?z?(?R)][1?a?z*(?R)]a<1 (式2.4)

系统对输入信号的响应,实质上就是输入信号通过离散时间LTI系统后的频谱进行不同选择处理的过程,这个过程称为滤波。因此,在MATLAB的信息处理工具箱中,提供了一维滤波器函数filter和二维滤波器函数filter2。

函数filter的调用格式为 :y=filter(b,a,x)

该格式采用数字滤波器对数据进行滤波,既可以用于IIR滤波器,也可以用于FIR滤波器。其中向量b和a分别表示系统函数的分子、分母多项式的系数,若a=1,此时表示FIR滤波器,否则就是IIR滤波器。该函数是利用给出的向量b和a,对x中的数据进行滤波,结果放入向量y。

7

武汉理工大学《信息处理课群综合应用设计》课程设计说明书

3、系统框架和详细设计

3.1总体方案

根据课程设计任务以及具体要求,MATLAB程序的设计可以按照如图3-1所示的总体方案程序总体结构框图来设计。

利用Windows下的录音机录制一段自己的语音信号,时间控制在1s左右,并对录制的信号进行采样信号加入延时和混响,再分析其频谱并与原信号频谱进行比较设计几种特殊类型的滤波器:无限个回声滤波器,全通结构的混响器,并画出滤波器的频域响应。用自己设计的滤波器对采集的语音信号进行滤波分析得到信号的频谱,画出滤波后信号的时域波形和频谱,并对滤波前后的信号进行对比,分析信号的变化回放语音信号

图3.1程序总体框图

8

武汉理工大学《信息处理课群综合应用设计》课程设计说明书

3.2 程序流程图

根据上节的图3-1所示的总体方案程序总体结构框图,结合相关的MATLAB函数,设计出如图3-2所示的MATLAB程序流程图。

用wavread读入音频文件,得到采样信号。用fft做傅里叶变换,画出采样信号时域波形和频谱图对采样信号延时2000,用fft做傅里叶变换,画出延时信号时域波形和频谱图,与原信号比较。原信号与延时信号相加,用fft做傅里叶变换,画出混响信号时域波形和频谱图,与原信号比较。对原信号单回声滤波,a=0.5;snf=x+a*dx;fsnf=fft(snf); 对原信号多重回声滤波,a=0.5;N=5;Bz1=[1,0,0,0,0,0,0,0,0,0,-a^N] ;Az1=[1,0,0,0,0,0,0,0,0,0,-a]; 对原信号无限回声滤波,a=0.5;Bz=[0,0,0,0,0,0,0,0,0,0,1]; Az=[1,0,0,0,0,0,0,0,0,0,-a];对原信号单回声滤波,a=0.5;Bz1=[a,0,0,0,0,0,0,0,0,0,1];Az1=[1,0,0,0,0,0,0,0,0,0,a]; 对原信号巴特沃兹低通滤波wp=0.25*pi;ws=0.3*pi;Rp=1;Rs=15; 用sound回放语音 图3.2 MATLAB程序流程图

9

武汉理工大学《信息处理课群综合应用设计》课程设计说明书

3.3 详细设计

3.3.1读取语音信号

[x,fs]=audioread(filename); %读取信号

可以使用matlab中的audioread函数把录制好的语音信号文件读入。

3.3.2采样后语音信号的时域波形和频谱

[x,fs]=audioread(filename);

x=x(:,1);%只读取单声道,便于画时域波形和频谱图 sound(5*x,fs); %对声音的回放 figure;

subplot(2,1,1);plot(x);grid on; %画出时域波形 title('采样后语音信号的时域波形'); fx=fft(x); fx=fftshift(fx);

subplot(2,1,2); %对信号做FFT变换

derta=fs/length(x); %计算频谱间隔 plot(-fs/2:derta:fs/2-derta,abs(fx));grid on; %画出频谱图 title('采样后语音信号的频谱图');

其中,[x,fs]=audioread(filename);用于读取语音,采样值放在向量x中,fs表示采样频率(Hz)。Sound函数用来对于声音的回放,x代表一个信号。fft函数是用于求解傅里叶变换,得出采样信号。

3.3.3信号的延时

dx=[zeros(2000,1);x];figure; %信号的延时 subplot(2,1,1); plot(z);grid on;

title('加延时后语音信号的时域波形'); fdx=fft(dx); derta=fs/length(dx);

10

武汉理工大学《信息处理课群综合应用设计》课程设计说明书

plot(-fs/2:derta:fs/2-derta,abs(fdx));grid on; title('加延时后语音信号的频谱图');

其中,用zeros函数来使信号延时,zeros是用来生成全0矩阵的,比如,zeros(M,N) 表示的是M行*N列的0矩阵。

3.3.4信号的混响

x=[x;zeros(2000,1)];%对原信号延长至与延时信号相同的长度 ax=x+dx; %将延长的原信号与延时信号相加得到混响信号 figure; subplot(2,1,1); plot(ax);grid on;

title('加混响后语音信号的时域波形'); fax=fft(ax); fax=fftshift(fax); subplot(2,1,2); derta=fs/length(ax);

plot(-fs/2:derta:fs/2-derta,abs(fax));grid on; title('加混响后语音信号的频谱图');

对语音信号进行延时后,在使原语音信号的长度变换得与延时的信号同长,最后时这两个信号相加便可以得到混响后的信号。

3.3.5单回声滤波器

a=0.5; r=2000;

Bz0=[1,zeros(1,r-1),a]; Az0=(1);

freqz(Bz0,Az0);

title('单回声滤波器'); snf=x+a*dx; figure;

subplot(2,1,1); plot(snf);grid on;

11

武汉理工大学《信息处理课群综合应用设计》课程设计说明书

title('经单回声滤波后语音信号的时域波形'); fsnf=fft(snf);

fsnf=fftshift(fsnf); subplot(2,1,2);

derta=fs/length(snf);

plot(-fs/2:derta:fs/2-derta,abs(fsnf));grid on; title('经单回声滤波后语音信号的频谱图'); disp('按enter键播放录音');input('');clc; sound(snf,fs);

disp('按enter键继续');input('');clc;

其中,用函数snf=x+a*dx来对信号进行单回声滤波。用freqz函数画出单回声滤波器的频率响应图。再用fft函数进行傅里叶变换,就可以得出对应的时域波形和频谱图。

3.3.6多重回声滤波器

a=0.5; N=10;

Bz1=[1,0,0,0,0,0,0,0,0,0,-a^N]; Az1=[1,0,0,0,0,0,0,0,0,0,-a]; freqz(Bz1,Az1);

title('多重回声滤波器') mnf=filter(Bz1,Az1,x); figure;

subplot(2,1,1); plot(mnf);grid on;

title('经多重回声滤波后语音信号的时域波形'); fmnf=fft(mnf);

fmnf=fftshift(fmnf); subplot(2,1,2);

derta=fs/length(mnf);

plot(-fs/2:derta:fs/2-derta,abs(fmnf));grid on; title('经多重回声滤波后语音信号的频谱图'); disp('按enter键播放录音');input('');clc; sound(mnf,fs);

disp('按enter键继续');input('');clc;

其中,编写出如上对应的多重回声滤波器函数,然后用filter函数调用滤波器,用freqz函数画出多重回声滤波器的频率响应图。再用fft函数进行傅里叶变换,就可以得出对应的时域波形和频谱图。

12

武汉理工大学《信息处理课群综合应用设计》课程设计说明书

3.3.7无限回声滤波器

a=0.5;

Bz=[0,0,0,0,0,0,0,0,0,0,1]; Az=[1,0,0,0,0,0,0,0,0,0,-a]; freqz(Bz,Az);

title('无限回声滤波器')

inf=filter(Bz,Az,x); figure;

subplot(2,1,1); plot(inf); grid on;

title('经无限回声滤波后语音信号的时域波形'); finf=fft(inf); finf=fftshift(finf); subplot(2,1,2);

derta=fs/length(inf);

plot(-fs/2:derta:fs/2-derta,abs(finf));grid on; title('经无限回声滤波后语音信号的频谱图'); disp('按enter键播放录音');input('');clc; sound(inf,fs);

disp('按enter键继续');input('');clc;

其中,编写出如上对应的无限回声滤波器函数,然后用filter函数调用滤波器,用freqz函数画出无限回声滤波器的频率响应图。再用fft函数进行傅里叶变换,就可以得出对应的时域波形和频谱图。

3.3.8全通结构的混响器

a=0.5;

Bz4=[a,0,0,0,0,0,0,0,0,0,1]; Az4=[1,0,0,0,0,0,0,0,0,0,a]; freqz(Bz4,Az4);

title('全通结构混响器')

af=filter(Bz4,Az4,x); figure;subplot(2,1,1);plot(af); gridon;

title('经全通结构混响器后语音信号的时域波形'); faf=fft(af); faf=fftshift(faf); subplot(2,1,2);

derta=fs/length(faf);

plot(-fs/2:derta:fs/2-derta,abs(faf));grid on;

title('经全通结构混响器后语音信号的频谱图');

13

武汉理工大学《信息处理课群综合应用设计》课程设计说明书

disp('按enter键播放录音');input('');clc; sound(af,fs);

disp('按enter键继续');input('');clc;

同理,得出全通结构滤波器的函数,用filter函数调用滤波器,用freqz函数画出全通结构混响器的频率响应图。再用fft函数进行傅里叶变换,就可以得出对应的时域波形和频谱图。

3.3.9自己设计的LPF

[x1,fs]=audioread('sound.wav');

x1=x1(:,1);

t=0:1/44100:(size(x1)-1)/44100; wp=0.25*pi; ws=0.3*pi; Rp=1; Rs=15; Fs=44100; Ts=1/Fs;

wp1=2/Ts*tan(wp/2); ws1=2/Ts*tan(ws/2);

[N,Wn]=buttord(wp1,ws1,Rp,Rs,'s'); [Z,P,K]=buttap(N); [Bap,Aap]=zp2tf(Z,P,K); [b,a]=lp2lp(Bap,Aap,Wn); [bz,az]=bilinear(b,a,Fs); freqz(bz,az);

f1=filter(bz,az,x1); figure;

subplot(2,2,1); plot(t,x1);

title('滤波前的时域波形'); subplot(2,2,3); plot(t,f1);

title('滤波后的时域波形'); F0=fft(f1,1024); f=fs*(0:511)/1024; y2=fft(x1,1024); subplot(2,2,2);

plot(f,abs(y2(1:512))); title('滤波前的频谱') xlabel('Hz'); ylabel('fuzhi');

14

武汉理工大学《信息处理课群综合应用设计》课程设计说明书

subplot(2,2,4);

F1=plot(f,abs(F0(1:512))); title('滤波后的频谱'); xlabel('Hz'); ylabel('fuzhi');

disp('按enter键继续');input('');clc; sound(f1,fs);

本节采用的滤波器是巴特沃斯低通滤波器,然后通过双线性变换法将模拟滤波器变换为数字滤波器,从而实现语音信号的低通滤波。用freqz函数画出低通滤波器的频率响应图。再用fft函数进行傅里叶变换,就可以得出对应的时域波形和频谱图。

15

武汉理工大学《信息处理课群综合应用设计》课程设计说明书

4、实验仿真及结果分析

4.1原始采样语音信号

图4.1原语音信号的时域波形和频谱图

结果分析:由图可以得到,经过对时域信号进行傅里叶变换,很容易看出人类语音信号的大部分能量主要集中在低频段,频带大致位于300Hz到3400Hz。偶尔有些高频分量可能是由于周围的环境噪声引起。

4.2加延时的语音信号

图4.2 延时后信号的时域波形和频谱图

16

武汉理工大学《信息处理课群综合应用设计》课程设计说明书

结果分析:对语音信号延时2000后,时域波形向右移动2000,波形没有发生变化。延时后,信号频谱的幅值有所变化,但频谱形状不变。由傅里叶变换的性质可以知道,信号在时域的移位,等效于在频域乘以常数。

4.3加混响的语音信号

图4.3混响后信号的时域波形和频谱图

结果分析:在加入混响以后,语音信号的时域波形幅值有所增加,波形形状也发生变化,时域拓宽,等效于两个相差固定延时的波形进行叠加。,语音信号的频谱幅值增大,回放的语音声音变得融合,能听到回音。

17

武汉理工大学《信息处理课群综合应用设计》课程设计说明书

4.4经特殊类型滤波器的语音信号

4.4.1单回声滤波器

图4.4经单回声滤波器后信号的时域波形和频谱图

图4.5单回声滤波器频率响应图

结果分析:由运行结果可以看出,时域波形的幅值变大,毛刺变多,频谱的中心频率两边的频率分量展宽、幅值变大,回放的声音立体感变强。

18

武汉理工大学《信息处理课群综合应用设计》课程设计说明书

4.4.2多重回声滤波器

图4.6经多重回声滤波器后信号的时域波形和频谱图

图4.7多重回声滤波器频率响应图

结果分析:由运行结果可以看出,时域波形的幅值变大,毛刺变得更多,频谱的中心频率幅值变大,回放的声音立体感变的更强。

19

武汉理工大学《信息处理课群综合应用设计》课程设计说明书

4.4.3无限个回声滤波器

图4.8经无限回声滤波器后信号的时域波形和频谱图

图4.9无限回声滤波器频率响应图

结果分析:由运行结果可以看出,时域波形的幅值变大,频谱的中心频率不变,中心频率两边的频率分量变得密集、幅值变小,回放的声音变得清晰,音量变大。

20

武汉理工大学《信息处理课群综合应用设计》课程设计说明书

4.4.4全通结构的混响器

图4.10经全通结构混响器后信号的时域波形和频谱图

图4.11全通结构混响器频率响应图

结果分析:由运行结果可以看出,语音信号时域波形和频谱幅度和形状基本不变,回放的声音跟原语音信号很接近。

21

武汉理工大学《信息处理课群综合应用设计》课程设计说明书

4.5经LPF的语音信号

图4.12经低通滤波器后语音信号的时域波形和频谱图

图4.13巴特沃兹低通滤波器频率响应图

结果分析:由运行结果可以看出,语音信号时域波形的幅值稍微降低,形状基本不变。而从频谱图可以明显看出,语音信号的高频部分被低通滤波器滤除了,回放的声音跟原语音信号相比比较浊重。

22

武汉理工大学《信息处理课群综合应用设计》课程设计说明书

5总结

信息处理课群综合设计对我来说是一次很好的锻炼,不仅巩固了以前学过的数字信号理论知识,还学习到了许多与语音信号处理有关的知识,熟练了使用MATLAB软件进行数字信号处理仿真的能力。刚开始拿到题目时,觉得不是很难,但是认真地做起来发现还是有一定的难度的。于是便去图书馆找各种关于MATLAB与语音信号处理相关的资料书,掌握了一些语音信号处理的基本知识和技能,渐渐有了自己的设计方案,然后便开始动手实践起来,动手实践的过程也是充满困难的,经过很多次仿真才成功。但最令人欣慰的就是学到了很多有用的知识和技能。

在自己的努力与同学老师的帮助指导下,终于在一周的时间内完成了相应的程序代码的编写,然后就是写报告了,写报告向来是我的弱项,花了两三天的时间终于完成了报告的书写,至此差不多就完成了课设的任务。

最后,要感谢李瑞芳老师对我们认真负责地指导,还有身边帮助我的同学,有了你们我才能顺顺利利地完成了整个课设。这次课程设计受益匪浅,使我的能力有了很大的提升。

23

武汉理工大学《信息处理课群综合应用设计》课程设计说明书

参考文献

[1] 赵力,《语音信号处理》,机械工业出版社, 2009.06 [2] 杨述斌,《数字信号处理实践教程》,华中科技大学出版社.

[3]孙祥,徐流美,吴清.《MATLAB7.0基础教程》.清华大学出版社,2006 [4] 刘泉,《信号与系统》, 高等教育出版社, 2006年 [5] 刘泉,《数字信号处理》,电子工业出版社,2008年

[6] Edward W. Kamen, Bonnie S.Heck 编,《信号与系统基础——应用Web 和MATLAB(第二版)》,科学出版社,2002 年

24

武汉理工大学《信息处理课群综合应用设计》课程设计说明书

附录

程序代码:

%采样后语音信号 [x,fs]=audioread('录音.m4a'); x=x(:,1); figure; subplot(2,1,1); plot(x);grid on;

title('采样后语音信号的时域波形'); fx=fft(x); fx=fftshift(fx); subplot(2,1,2); derta=fs/length(x);

plot(-fs/2:derta:fs/2-derta,abs(fx));grid on; title('采样后语音信号的频谱图'); disp('按enter键播放语音');input('');clc; sound(x,fs);

disp('按enter键继续');input('');clc; %加延时后的语音信号 dx=[zeros(2000,1);x]; figure; subplot(2,1,1); plot(dx);grid on;

title('加延时后语音信号的时域波形'); fdx=fft(dx); fdx=fftshift(fdx); subplot(2,1,2); derta=fs/length(dx);

plot(-fs/2:derta:fs/2-derta,abs(fdx));grid on; title('加延时后语音信号的频谱图'); disp('按enter键播放语音');input('');clc; sound(dx,fs);

disp('按enter键继续');input('');clc; %加混响后的语音信号 x=[x;zeros(2000,1)];

25

武汉理工大学《信息处理课群综合应用设计》课程设计说明书

ax=x+dx; figure; subplot(2,1,1); plot(ax);grid on;

title('加混响后语音信号的时域波形'); fax=fft(ax); fax=fftshift(fax); subplot(2,1,2); derta=fs/length(ax);

plot(-fs/2:derta:fs/2-derta,abs(fax));grid on; title('加混响后语音信号的频谱图'); disp('按enter键播放语音');input('');clc; sound(ax,fs);

disp('按enter键继续');input('');clc; %经单回声滤波器后的语音信号 a=0.5; snf=x+a*dx; figure; subplot(2,1,1); plot(snf);grid on;

title('经单回声滤波器后语音信号的时域波形'); fsnf=fft(snf); fsnf=fftshift(fsnf); subplot(2,1,2); derta=fs/length(snf);

plot(-fs/2:derta:fs/2-derta,abs(fsnf));grid on; title('经单回声滤波器后语音信号的频谱图'); disp('按enter键播放语音');input('');clc; sound(snf,fs);

disp('按enter键继续');input('');clc; %经多重回声滤波器后的语音信号 a=0.5; N=5;

Bz1=[1,0,0,0,0,0,0,0,0,0,-a^N]; Az1=[1,0,0,0,0,0,0,0,0,0,-a]; mnf=filter(Bz1,Az1,x);

26

武汉理工大学《信息处理课群综合应用设计》课程设计说明书

figure; subplot(2,1,1); plot(mnf);grid on;

title('经多重回声滤波器后语音信号的时域波形'); fmnf=fft(mnf); fmnf=fftshift(fmnf); subplot(2,1,2); derta=fs/length(mnf);

plot(-fs/2:derta:fs/2-derta,abs(fmnf));grid on; title('经多重回声滤波器后语音信号的频谱图'); disp('按enter键播放语音');input('');clc; sound(mnf,fs);

disp('按enter键继续');input('');clc; %经无限个回声滤波器后的语音信号 a=0.5;

Bz=[0,0,0,0,0,0,0,0,0,0,1]; Az=[1,0,0,0,0,0,0,0,0,0,-a]; inf=filter(Bz,Az,x); figure; subplot(2,1,1); plot(inf); grid on;

title('经无限个回声滤波器后语音信号的时域波形'); finf=fft(inf); finf=fftshift(finf); subplot(2,1,2); derta=fs/length(inf);

plot(-fs/2:derta:fs/2-derta,abs(finf));grid on; title('经无限个回声滤波器后语音信号的频谱图'); disp('按enter键播放语音');input('');clc; sound(inf,fs);

disp('按enter键继续');input('');clc; %经全通滤波器后的语音信号 a=0.5; Bz1=[a,0,0,0,0,0,0,0,0,0,1]; Az1=[1,0,0,0,0,0,0,0,0,0,a]; af=filter(Bz1,Az1,x);

27

武汉理工大学《信息处理课群综合应用设计》课程设计说明书

figure;subplot(2,1,1);plot(af); grid on;

title('经全通滤波器后语音信号的时域波形'); faf=fft(af); faf=fftshift(faf); subplot(2,1,2); derta=fs/length(faf);

plot(-fs/2:derta:fs/2-derta,abs(faf));grid on; title('经全通滤波器后语音信号的频谱图'); disp('按enter键播放语音');input('');clc; sound(af,fs);

disp('按enter键继续');input('');clc; %经低通滤波器后的语音信号 [x1,fs]=audioread('sound.wav'); x1=x1(:,1);

t=0:1/44100:(size(x1)-1)/44100; wp=0.25*pi; ws=0.3*pi; Rp=1; Rs=15; Fs=44100; Ts=1/Fs;

wp1=2/Ts*tan(wp/2); %将模拟指标转换成数字指标 ws1=2/Ts*tan(ws/2);

[N,Wn]=buttord(wp1,ws1,Rp,Rs,'s');%选择滤波器的最小阶数 [Z,P,K]=buttap(N); %创建butterworth模拟滤波器 [Bap,Aap]=zp2tf(Z,P,K); [b,a]=lp2lp(Bap,Aap,Wn);

[bz,az]=bilinear(b,a,Fs); %用双线性变换法实现模拟滤波器到数字滤波器的转换 [H,W]=freqz(bz,az); %绘制频率响应曲线 f1=filter(bz,az,x1); subplot(2,2,1);

plot(t,x1); %画出滤波前的时域图 title('滤波前的时域波形'); subplot(2,2,3);

28

武汉理工大学《信息处理课群综合应用设计》课程设计说明书

plot(t,f1); %画出滤波后的时域图 title('滤波后的时域波形'); F0=fft(f1,1024); f=fs*(0:511)/1024; y2=fft(x1,1024); subplot(2,2,2);

plot(f,abs(y2(1:512))); %画出滤波前的频谱图 title('滤波前的频谱') xlabel('Hz'); ylabel('fuzhi'); subplot(2,2,4);

F1=plot(f,abs(F0(1:512))); %画出滤波后的频谱图 title('滤波后的频谱'); xlabel('Hz'); ylabel('fuzhi');

disp('按enter键播放语音');input('');clc; sound(f1,fs);

29

本文来源:https://www.bwwdw.com/article/u1tr.html

Top