%******************数据采集和播放********************%
[y,fs,bit] = wavread('ld.wav');
%打开声音文件
%y为数据保存矩阵,fs为声音数据频率,bit采样位数
sound_track_1 = y(:,1);
%采集声音,1声道
sig_len = length(sound_track_1);
%获取采样长度
sound(y,fs,bit);
%播放声音
%*******************绘制时域波形图*******************%
time = (0:sig_len-1) / fs;
%声音持续时间
figure ;
plot(time,sound_track_1);
title('oscillograph of file');
grid on;
xlabel('Time/s');
ylabel('amplitude');
%*******************绘制频域波形图*******************%
yfft = fft(sound_track_1,sig_len);
�t
half_sig_len = floor(sig_len / 2);
half_yfft = yfft(1:half_sig_len+1);
%只保留前一半低频信号
half_yfft_abs = abs(half_yfft);
%计算低频信号的幅值
f_low = ((0:half_sig_len)+1) * fs / sig_len;%频域图横坐标
figure ;
plot(f_low,half_yfft_abs);
title('Frequency spectrum');
grid on;
xlabel('Frequency/Hz');
ylabel('Amplitude');
%*******************理想低通滤波器*******************%
fl = 2000;
%截止频率2000HZ
low_filter = [ones(1,floor(sig_len * fl / fs)),...
y_w = low_filter .* yfft';
y_out = ifft(y_w);
wavwrite(y_out,fs,'ld_out.wav');