好文档 - 专业文书写作范文服务资料分享网站

基于MATLAB的有噪声的语音信号处理的课程设计

天下 分享 时间: 加入收藏 我要投稿 点赞

DSP实验课程设计实验报告

姓名: 学号: 班级:

1.课程设计题目:

基于MATLAB的有噪声的语音信号处理的课程设计。

2.课程设计的目的:

综合运用数字信号处理的理论知识进行频谱分析和滤波器设计,通过理论推导得出相应的结论,再利用MATLAB做为编程工具进行计算机实现,从而加深对所学知识的理解,建立概念。

3.课程设计的要求:

(1)熟悉离散信号和系统的时域特性。 (2)掌握序列快速傅里叶变换FFT方法。

(3)学会MATLAB的使用,掌握MATLAB的程序设计方法。 (4)利用MATLAB对语音信号进行频谱分析。

(5)掌握MATLAB设计各种数字滤波器的方法和对信号进行滤波的方法。

4.课程设计的内容:

录制一段语音信号,对语音信号进行频谱分析,利用MATLAB中的随机函数产生噪声加入到语音信号中,使语音信号被污染,然后进行频谱分析,设计FIR和IIR数字滤波器,并对噪声污染的语音信号进行滤波,分析滤波后的信号的时域和频域特征,回放语音信号。

5.课程设计的步骤:

(1)语音信号的获取

通过录音软件录制一段语音“数字信号处理”,命名为“OriSound”,时长大约1到2秒,在MATLAB中,通过使用wavread函数,对语音进行采样:

[y,fs,nbits]=wavread('OriSound'); %语音信号的采集 采样值放在向量y中,采样频率为fs,采样位数为nbits。

(2)语音信号的频谱分析

画出语音信号的时域波形,然后对语音信号进行频谱分析,在MATLAB中,通过使用fft函数对信号进行快速傅里叶变换,得到信号的频谱特性。

因此采集语音并绘出波形和频谱的模块程序如下:

[y,fs,nbits]=wavread('OriSound'); %语音信号的采集 sound(y,fs,nbits); n=length(y) ; Y=fft(y,n); figure;

subplot(2,1,1); plot(y);

title('原始信号波形','fontweight','bold'); axis([ 00000 80000 -1 1]); grid;

subplot(2,1,2); plot(abs(Y));

title('原始信号频谱','fontweight','bold'); axis([ 0 150000 0 4000]); grid;

结果如下:

%语音信号的播放 %计算语音信号的长度 %快速傅里叶变换 %绘出时域波形

%通过尝试确定合适的坐标参数 %绘出频域频谱

%通过尝试确定合适的坐标参数

可以看到,语音信号的频率集中在低频部分。

(3)产生噪声信号

在MATLAB中,通过使用randn函数产生随机噪声信号,并加到语音信号中得到被污染的语音信号,回放语音信号。

产生随机噪声: Noise=*randn(n,1);

其中用倍乘噪声用来适当削减噪声的作用,便于对语音信号进行处理并比较效果。

(4)污染信号频谱分析

对被污染的加噪信号进行时域和频域分析。

加噪声并分析信号波形频谱的模块程序及说明如下:

[y,fs,nbits]=wavread(''); %语音信号采集 sound(y,fs,nbits); %回放语音信号便于比较效果 n = length (y) ; %计算语音信号长度 Noise=*randn(n,1); %产生随机噪声信号Noise s=y+Noise; %将Noise添加到原始信号,得到污 染信号s sound(s); %回放污染信号s figure;

subplot(2,1,1); %绘制加噪信号时域波形 plot(s);

title('加噪语音信号的时域波形','fontweight','bold'); axis([ 00000 80000 -1 1]); grid;

S=fft(s); %对s进行快速傅里叶变换得到频谱 subplot(2,1,2); %绘制加噪信号频域频谱 plot(abs(S));

title('加噪语音信号的时域波形','fontweight','bold'); axis([ 0 150000 0 4000]); grid;

结果如下:

可以看到,随机噪声均匀的分布在整个频谱范围内。

(5)设计FIR和IIR数字滤波器

在MATLAB中,根据频谱特征设计FIR和IIR滤波器。在Matlab中,可以利用函数fir1设计FIR滤波器,利用函数butter,cheby1设计IIR滤波器,利用Matlab中的函数freqz画出各步滤波器的频率响应。

低通滤波器的性能指标:fp=1000Hz,fc=1200Hz,As=100db ,Ap=1dB 高通滤波器的性能指标:fp=3500Hz,fc=4000Hz,As=100dB,Ap=1dB;

带通滤波器的性能指标:fp1=1200Hz,fp2=3000hZ,fc1=1000Hz,fc2=3200Hz,As=100dB,Ap=1dB

在MATLAB中,利用[N,wc]=butter(N,wc,Rp,As,'s')设计并计算巴特沃斯模拟滤波器的阶数N和3dB截止频率wc;[B,A]=cheby1(N,Rp,wpo,'ftypr')设计切比雪夫I型滤波器。

在课程设计中,共设计了六种滤波器对信号进行滤波:FIR低通,高通,带通滤波器,IIR低通,高通,带通滤波器。通过对原始信号和加噪信号的频谱进行观察,原始语音信号频谱集中在低频段,而随机噪声接近均匀的分布在整个频谱范围内,因此推测选用低通滤波器去噪性能要好于高通和带通滤波器。

(6)对污染信号进行滤波

在MATLAB中用FIR和IIR滤波器对加噪信号进行滤波,其中通过利用函数fftfilt用FIR滤波器滤波,通过利用函数filter用IIR滤波器滤波。

(7)回放语音信号

在MATLAB中,通过用sound函数对语音信号进行回放,用以比较各滤波器的滤波效果。

各滤波器设计模块的程序和说明如下:

(1)IIR低通滤波器设计

基于MATLAB的有噪声的语音信号处理的课程设计

DSP实验课程设计实验报告姓名:学号:班级:1.课程设计题目:基于MATLAB的有噪声的语音信号处理的课程设计。2.课程设计的目的:综合运用数字信号处理的理论知识进行频谱分析和滤波器设计,通过理论推导得出相应的结论,再利用MATLAB做为编程工具进行计算机实现,从而加深对所学知识的
推荐度:
点击下载文档文档为doc格式
9b4qo6khrr79c964hjsm5kaxd91bwp00krg
领取福利

微信扫码领取福利

微信扫码分享