音频过滤器脉冲函数

4视图(30天)
计哈斯
计哈斯 2017年8月1日
编辑: 计哈斯2017年8月1日
我试图wav文件,使用wavread阅读它并添加一个正弦波12千赫到文件创建一个嘈杂的信号。我然后试图创建一个脉冲,当乘以噪声信号的频率成分将取消不需要的频率。在这个例子中我试图做一个滤波器截止频率为10000赫兹所以我分配在-10000赫兹到10000赫兹的范围和分配的零信号的长度。然而,当我用过滤器和嘈杂的信号不产生正确的结果。我的下面的代码,我想知道哪里算错了。
(y, fs) = wavread (“one.wav”);% fs = 44101
f = 12000;
fnyquist = f / 2
L =长度(y)
nfft = 1024;
ts = 1 / f;
% t = 0: ts: (l - 1) / fs;%长/ fs = audiofile持续时间
t = (0: l - 1) / fs;
x =罪(2 *π* f * t);
%的声音(x, fs)
图(“名字”,的时域音频,“NumberTitle”,“关闭”);
情节(t, y)
左= y (: 1);% y是1654400 x2现在是1654400 x1
wavwrite (x, fs,“sound.wav”);
一个= wavread (“sound.wav”);
Z =左+;
%的声音(Z, fs);
Y = fftshift (fft (Z));
f = (- (L - 1) / 2: L / 2) / fs;
w = 2 *π* f;
MagY = abs (Y);
PhY =角(Y) * 180 /π;
图(“名字”,“频率”);
情节(f, MagY)
图(“名字”,频率域的);
情节(w, MagY / L)
idx_p =找到(f < = 10000, 1);
idx_n =找到(f > = -10000, 1);
lpf = 0(1升);
lpf (idx_n: idx_p) = 1;
图(“名字”,“将”);
情节(f, lpf)
lpf2 =滤波器。”;从1 x1654400 1654400 x1 %转置
filteredsignal = lpf2。* Y;
filteredsignal2 =传输线(filteredsignal);
声音(filteredsignal2, fs);

答案(0)

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!