当前位置:首页 > 应用Matlab对含噪声语音信号进行频谱分析及滤波
4、FIR滤波器设计
clear all
fs=22050; %设置采样频率 x1=wavread('C:\\Users\\acer\\Desktop\\');%读取声音 x1=x1(:,1)
f=fs*(0:1023)/1024; %F=([1:N]-1)*Fs/N; %换算成实际的频率值
t=0:1/22050:(length(x1)-1)/22050; %定义噪声信号 d=[*sin(40*pi*t);]';
x2=x1+d; %加噪声 N=30;
b1=fir1(N,,hamming(N+1)); %设计FIR滤波器 M=128;
f0=0:1/M:1-1/M;
h1=freqz(b1,10,M); %滤波器幅频响应
f1=filter(b1,10,x2); %
y0=fft(x2,40000); y00=fft(f1,40000);
sound(f1,40000); % figure(1)
plot(f0,abs(h1)); %title('滤波器幅频响应图')
figure(2);
subplot(2,1,1); plot(t,x2); %title('滤波前的时域波形');
subplot(2,1,2);plot(t,f1); %title('滤波后的时域波形');
F0=fft(f1,10240);f=fs*(0:255)/10240 figure(3) subplot(211)
plot(f,abs(y0(1:256))); title('滤波前频谱') subplot(212)
滤波 播放滤波后的声音滤波器幅频响应图画出滤波前的时域图画出滤波后的时域图 plot(f,abs(y00(1:256))); %滤波后频谱 title('滤波后频谱')
共分享92篇相关文档