基于matlab的FIR滤波器设计(处理加噪音频-窗函数法)
- 格式:doc
- 大小:273.00 KB
- 文档页数:5
基于matlab的FIR滤波器设计(处理加噪音频,窗函数法)一、录制音频
二、利用窗函数法设计的低通滤波器处理加有噪声的音频波形
f3=7000;%所加噪声正弦函数的频率
[Y,fs,bits]=wavread('D:\yinpin\nihao01.wav');
%利用wavread产生音频的函数及采样频率
L=length(Y);t=0:1/fs:(L-1)/fs;%定义时间的范围及步长
y=0.005*sin(2*pi*f3*t); n1=floor(L/2);%所加噪声
f1=(0:n1)*fs/L;Y=Y(:,1);sound(Y,fs);%输出加噪前音频
Y1=y+Y';%给音频加噪声
FY1=abs(fft(Y1,L));FY=abs(fft(Y,L));sound(Y1,fs);%输出加噪后的音频figure(1)
subplot(211)
plot(t(1:1000),Y(1:1000)); grid on;%加噪前音频的时域图
xlabel('时间(t)');ylabel('幅度(Y)');
title('加噪前录音波形的时域图');
subplot(212)
plot(f1,FY(1:n1+1)); grid on;%加噪前音频的频域图
xlabel('频率(f)');ylabel('幅度(FY)');
title('加噪前录音波形的频域图');
figure(2)
subplot(211)
plot(t(1:1000),Y1(1:1000)); grid on;%加噪后音频的时域图
xlabel('时间(t)');ylabel('幅度(Y1)');
title('加噪声后录音波形的时域图');
subplot(212)
plot(f1,FY1(1:n1+1)); grid on;%加噪后音频的频域图
xlabel('频率(f)');ylabel('幅度(FY1)');
title('加噪声后录音波形的频域图');
m=0.03; M=round(8/m);
N=M-1;%定义滤波器的阶数
b=fir1(N,0.6);
figure(3)
[h,f]=freqz(b,1,512);%滤波器的幅频特性图
plot(f*fs/(2*pi),20*log10(abs(h)))%参数分别是频率与幅值
xlabel('频率/赫兹');ylabel('增益/分贝');title('滤波器的增益响应'); figure(4)
sf=filter(b,1,Y1);%使用filter函数对信号进行滤波
Fsf=abs(fft(sf,L));
subplot(211)
plot(t(1:1000),sf(1:1000)); grid on;%滤波后音频的时域图
xlabel('时间(t)');ylabel('幅度(sf)');
title('滤波后录音波形的时域图');
axis([0.01 0.05 -0.002 0.002])
subplot(212)
plot(f1,Fsf(1:n1+1)); grid on;%滤波后音频的频域图
xlabel('频率(f)');ylabel('幅度(Fsf)');
title('滤波后录音波形的频域图');sound(sf,fs);
三、运行结果
加噪前录音波形的时域图和频域图
加噪后录音波形的时域图和频域图
窗函数法设计低通滤波器的增益响应
滤波后录音波形的时域图和频域图。