matlab R2011B 版本怎么在原始语音信号上加噪音,

老是出现下面情况 原始信号是自己录制的 x1=wavread('F:\matlab1\simulink\103.wav');

在原始信号上加噪声,首先要产生噪声。Matlab有两个函数可以产生噪声,wgn( )和awgn( )。
    1. WGN:产生高斯白噪声 

    y = wgn(m,n,p)
    y = wgn(m,n,p) %产生一个m行n列的高斯白噪声的矩阵,p以dBW为单位指定输出噪声的强度。 
    y = wgn(m,n,p,imp)
    y = wgn(m,n,p,imp) %以欧姆(Ohm)为单位指定负载阻抗。 
    y = wgn(m,n,p,imp,state)
    y = wgn(m,n,p,imp,state) %重置RANDN的状态。

    2. AWGN:在某一信号中加入高斯白噪声 

    y = awgn(x,SNR)
    y = awgn(x,SNR) %在信号x中加入高斯白噪声。信噪比SNR以dB为单位。x的强度假定为0dBW。如果x是复数,就加入复噪声。

举例如下:

   clear,clc;
   N=0:1000;
   fs=1024;
   t=N./fs;   
   y=3*sin(2*pi*t);
   x=wgn(1,1001,2);
   i=y+x;
   % i=awgn(y,2);
   subplot(3,1,1),plot(x);
   subplot(3,1,2),plot(y);
   subplot(3,1,3),plot(i);

温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-06-13
这是应为矩阵的维度不同,你可以通过size函数得到x1的矩阵维度再赋值给噪声就可以解决这个问题:
[a,b,c]=size(x1);%求x1的矩阵维度
d=rand(a,b,c);%并把其赋值给d,另d的每一个元素为0到1随机分布的数,即随机噪声,可以乘以某个系数来控制噪声大小
x2=x1+d;%添加随机噪声的信号
第2个回答  2016-07-02
假设的你的语音向量为X是1行n列的,新的X1 = X + rand(1,length(x));就相当于加了噪声。
还可以这样X1 = X +5 * rand(1,length(x));相当于放大了5倍噪声 rand函数随机0-1的实数。望采纳!!
第3个回答  2016-06-17
高斯噪声等等都行,awgn。。。。