lianmei1984 发表于 2009-3-16 17:43

语音加噪声fft

我把语音信号fs=44100;                  
%语音信号采样频率为22050
x1=wavread('110.wav'); %读取语音信号的数据,赋给变量x1
=wavread('110.wav');
加噪声Au=0.03;           
d=';
x1是129024x2;是个2维 的。d是一维的。我就变换了一下’c=zeros(129024,2);
c1=c(1)+d;
c2=c(2)+d;
c=;
x2=x+c;
然后对加了噪声的信号进行fft变换,见附件
噪声信号应该是低频的,和语音信号不应在一个频段上。
但是我做的波形,fft变换后噪声的频率变为20khz,不再是低频2000hz了。和原语音信号重叠在一起,没法过滤/
请高手指教为什么?

附件不知怎么传不上去

真人 发表于 2009-3-16 21:35

采样频率不是44100Hz吗?你调成22050Hz了?其实2维数据里面是一样的数据,

lianmei1984 发表于 2009-3-16 21:41

采样频率是44100,22050是原来写的注释忘记改了。x的2维数据里面不是一样的数据,相差很多,不知道代表什么。而且因为噪声信号是一维的。也没办法用x2=x1+d这样直接相加

真人 发表于 2009-3-16 21:51

我自己做的时候,二维数据是左右声道,是一样的。

不一样也没什么,你可以只取其中一维数据分析。~你的fft处理后的结果传不上来?

lianmei1984 发表于 2009-3-16 22:00

我刚找了些资料。说x是两列的是因为wavread格式是双声道的。就是左右声道把。 那应该怎么变成 一列的那

lianmei1984 发表于 2009-3-16 22:04

我取了一列,结果声音就显示不出来了。你有qq马。在线的话我加你。我把波形发给你/

45914369qq

lianmei1984 发表于 2009-3-16 22:13

我就想直接在=wavread('110.wav') 的时候直接就输出一列,请问您知道怎样弄马?   因为只取一列加噪声波方的时候根本没有声音了阿。

songzy41 发表于 2009-3-17 06:57

应该对双声道的数据,或只取一个声道数据处理,或分别处理,没有必要合成一列数据。
又“我把语音信号fs=44100; %语音信号采样频率为22050”,采样频率是多少?

lianmei1984 发表于 2009-3-17 09:18

采样频率是44100
页: [1]
查看完整版本: 语音加噪声fft