云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 基于matlab的音频信号处理毕业设计(含源文件)

基于matlab的音频信号处理毕业设计(含源文件)

  • 62 次阅读
  • 3 次下载
  • 2025/5/28 1:33:30

如图所示,展示的是一段语音信号的时域和频域波形

3.2 对采集信号进行加噪声处理。

MATLAB中产生高斯白噪声的两个函数

MATLAB中产生高斯白噪声非常方便,可以直接应用两个函数,一个是WGN,另一个是AWGN。WGN用于产生高斯白噪声,AWGN则用于在某一信号中加入高斯白噪声。

在设计中使用的是直接产生高斯噪声的RANDN函数,实验采用的是MATLAB中的随机函数rand产生噪声加入到语音信号中,通过对噪声信号的加入以此来实现模仿语音信号被污染,并对添加噪声后的文件进行频谱分析。

matlab函数randn:产生正态分布的随机数或矩阵的函数 randn

产生均值为0,方差 σ^2 = 1,标准差σ = 1的正态分布的随机数或矩阵的函数。 用法:

Y = randn(n)

返回一个n*n的随机项的矩阵。如果n不是个数量,将返回错误信息。 Y = randn(m,n) 或 Y = randn([m n])

12

返回一个m*n的随机项矩阵。

Y = randn(m,n,p,...) 或 Y = randn([m n p...]) 产生随机数组。 Y = randn(size(A))

返回一个和A有同样维数大小的随机数组。

在本次实验过程中,我们选用Randn(m,n)函数。对语音信号添加噪声及其频谱分析的主要程序如下:

clear all;

music=input('输入文件名:','s')

[y,fs,nbits]=wavread(music);%语音信号的采集 n = length (y)

Noise=0.3*randn(n,2); %编辑噪声 s=y+Noise; Y=fft(y,n); sound(s); S=fft(s); figure;

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

title('时域波形图','fontweight','bold'); grid;

subplot(2,2,2);

plot(abs(Y),'r');

title('频域波形图','fontweight','blod'); subplot(2,2,3); plot(s);

title('加噪时域波形图','fontweight','bold'); grid; subplot(2,2,4); plot(abs(S));

title('加噪频域波形图','fontweight','bold'); grid; ;

程序运行结果如下:

13

加噪后信号波形图

由图可见:在添加噪声后原本平滑的信号产生了大量不规则震动。在实际应用中这些噪声能够对原本的信号造成干扰,影响信号的正常读取,这时便需要采用滤波器对呗噪声污染的信号进行滤波,如此才能够正常读取相应的音频文件。

3.3 扩展内容:量标准化

录制声音过程中需对声音电平进行量化处理,最理想的量化是最大电平对应最高量化比特,但实际却很难做到,常有轻音问题。利用MATLAB很容易实现音量标准化,即最大电平对应最高量化比特。基本步骤是:先用wavread函数将.wav文件转换成列数组变量;再求出数组变量的极值并对所有元素作归一化处理;最后用wavwrite函数还原成音量标准化的.wav文件。

运行程序如下:

14

clear all;

music=input('输入文件名:','s')

[y,fs,nbits]=wavread(music);%语音信号的采集 ym=max(max(max(y)),max(abs(min(y)))); x=y/ym;

figure; subplot(2,1,1); plot(y,’r’);

title('原图','fontweight','blod');

grid; %网格 subplot(2,1,2);

plot(x,’b’); title('改图','fontweight','blod'); grid; sound(x)

wavwrite(x,fs,bits,'2.wav');

程序内容为:对原语音信号处理保存后播放并画出时域波形图,有音量增大的效果。但于实际测试播放时声音会有一定程度的失真。

程序运行结果:

如图,运行后相较于原波形图有了一定程度的幅度提高。

15

  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

如图所示,展示的是一段语音信号的时域和频域波形 3.2 对采集信号进行加噪声处理。 MATLAB中产生高斯白噪声的两个函数 MATLAB中产生高斯白噪声非常方便,可以直接应用两个函数,一个是WGN,另一个是AWGN。WGN用于产生高斯白噪声,AWGN则用于在某一信号中加入高斯白噪声。 在设计中使用的是直接产生高斯噪声的RANDN函数,实验采用的是MATLAB中的随机函数rand产生噪声加入到语音信号中,通过对噪声信号的加入以此来实现模仿语音信号被污染,并对添加噪声后的文件进行频谱分析。 matlab函数randn:产生正态分布的随机数或矩阵的函数 randn 产生均值为0,方差 σ^2 = 1,标准差σ = 1的正态分布的随机数或矩阵的函数。 用法:

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com