声音的延时和混响仿真(3)

2019-04-22 17:22

武汉理工大学《信息群处理课程设计》报告书

4.3.2 滤波函数filter

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

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

5 设计步骤

5.1 读取1s的语音信号

x1=wavread('make.wav'); %读取信号

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

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

[x,fs,bits]=wavread('make.wav',[10000 40000]);

x=x(:,1); %只取单声道 sound(5*x,fs); %对声音的回放 n1=0:2000; N=size(x,1);

figure(2);subplot(2,1,1);plot(x);title('采样后语音信号的时域波形'); Y=fft(x,2001); subplot(2,1,2); %对信号做2001点FFT变换 plot(n1(1:1000),Y(1:1000)); title('采样后语音信号的频谱图'); %信号幅度

其中[x,fs,bits]=wavread('make.wav',[10000 40000]);用于读取语音,采样值放在向量x中,fs表示采样频率(Hz),bits表示采样位数。

Sound函数用来对于声音的回放,X代表一个信号。fft函数是用于求解傅

7

武汉理工大学《信息群处理课程设计》报告书

里叶变换,得出采样信号。

5.3 对采样后的信号延时200

z=[zeros(200,1);x]; figure(3); %信号的延时 subplot(2,1,1);plot(z); title('延时后的时域图'); %画出延时后的信号时域图 Z=fft(z,2001);

subplot(2,1,2);plot(n1(1:1000),Z(1:1000)); %延时后的信号频谱图 title('延时后的频谱图 ');

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

5.4 对信号进行混响

z=[zeros(200,1);x]; %对语音信号进行延时 x=[x;zeros(200,1)]; %使语音信号与延时后信号同等长度 y1=x+z; %信号的混响 figure(4);subplot(2,1,1);plot(y1); title('混响的时域图'); %混响时域图

Y1=fft(y1,2001); %对混响信号2001点的FFT变换 subplot(2,1,2);plot(n1(1:1000),Y1(1:1000)); %混响频谱图 title('混响的频谱图');

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

5.5 单回声滤波器

a=0.5; %a取小于等于1 yy1=x+z*0.5; %信号经单回声滤波 figure(5);subplot(2,1,1);plot(yy1);title('单回声滤波器时域图');

YY1=fft(yy1,2001); %对单回声信号做2001点的FFT变换

subplot(2,1,2);plot(n1(1:1000),Y2(1:1000)); %单回声信号频谱图 title('单回声滤波器频谱图');

8

武汉理工大学《信息群处理课程设计》报告书

其中,用函数yy1=x+z*0.5来对信号进行单回声滤波。

5.6 无限回声滤波器

a=0.5; %a取小于等于1 Bz=[0,0,0,0,0,0,0,0,0,0,1]; %分子的系数 Az=[1,0,0,0,0,0,0,0,0,0,-a]; %分母的系数 yy2=filter(Bz,Az,x); %滤波器进行滤波

figure(6);subplot(2,1,1);plot(yy2); %无限回声滤波器时域波形 title('无限个回声滤波器时域波形');

YY2=fft(yy2,2001); %经无限回声滤波器后的信号做2001点的FFT变换 subplot(2,1,2);plot(n1(1:1000),YY2(1:1000)); %无限回声滤波器频谱图 title('无限个回声滤波器频谱图 ');

其中,编写出如上对应的无限回声滤波器函数,然后用filter函数调用滤波器。

5.7 多重回声滤波器

a=0.5; %a取小于等于1 N=5

Bz1=[1,0,0,0,0,0,0,0,0,0,-0.5^N] %分子的系数 Az1=[1,0,0,0,0,0,0,0,0,0,-0.5]; %分母的系数

yy3=filter(Bz1,Az1,x); figure(7); %滤波器进行滤波 subplot(2,1,1);plot(yy3); title('多重回声滤波器的时域图')%多重回声滤波器的混响器时域波形

YY3=fft(yy3,2001); %经多重回声滤波器后的信号做2001点的FFT变换

subplot(2,1,2);plot(n1(1:1000),YY3(1:1000)); %多重回声滤波器的频谱图 title('多重回声的频谱图')

5.8 全通结构的混响器

a=0.5; %a取小于等于1 Bz1=[a,0,0,0,0,0,0,0,0,0,1]; %分子的系数 Az1=[1,0,0,0,0,0,0,0,0,0,a]; %分母的系数

yy3=filter(Bz1,Az1,x); figure(6); %滤波器进行滤波

9

武汉理工大学《信息群处理课程设计》报告书

subplot(2,1,1);plot(yy2); title('全通应的时域图')%全通结构的混响器时域波形 YY2=fft(yy2,2001); %经全通结构的混响器后的信号做2001点的FFT变换

subplot(2,1,2);plot(n1(1:1000),YY2(1:1000)); %全通结构的混响器频谱图 title('全通应的频谱图')

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

6.运行结果

1. 原始信号时域波形图,如图6.1所示

图6.1原始信号的时域波形

10

武汉理工大学《信息群处理课程设计》报告书

2. 语音信号经过采样操作,如图6.2所示。

图6.2采样后的时域波形图和频谱图

11


声音的延时和混响仿真(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:马达加斯加国家语言 马语汉语音译资料(1640个单词)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: