文档详情

信号与系统设计-蜂鸣降噪精要.ppt

发布:2017-03-22约字共17页下载文档
文本预览下载声明
基于Matlab的 音频降噪滤波器设计 设计思路 使用waveread()函数读取音频和其采样率和采样位宽,对读取的音频信号使用fft()函数进行快速傅立叶变换并绘出得到的频谱。观察频谱分析噪声(蜂鸣信号)的谐波频率分布,并选择合适的滤波模式。使用fir1()建立窗函数,并用filter()函数进行滤波,去除噪声部分。最后用play()函数播放音频检查效果。 设计过程 第一部分:音频的读取和分析 [audio0, Fs, nbits] = wavread(C:\Users\Administrator\Desktop\signal\buz z.wav); %按路径读取音频存入audio0变量,并用Fs变量记录采样率,nbits变量记录采样位宽。 p0=audioplayer(audio0,Fs); play(p0); %将audio0载入音频播放器,并进行播放。 得到: Fs=11025 #采样率11025Hz nbits=32 #采样带宽32 设计过程 第一部分:音频的读取和分析 subplot(2,1,1);%分屏绘图 plot(audio0);%绘制原始音频时域图 title(时域);%标注题目 [k]=fft(audio0,Fs);%对原始音频进行快速傅立叶变换 subplot(2,1,2); plot(abs(k));%绘制原始音频频域图 title(频域); 设计过程 第一部分:音频的读取和分析 振幅/A 幅值/A 时间/ms 频率/Hz 设计过程 第一部分:音频的读取和分析 分贝/dB 分贝/dB 时间/ms 频率/Hz 设计过程 第一部分:音频的读取和分析 观察原始信号频域图,发现干扰信号主要分布在0- 1000Hz以内,进一步绘制这一范围的图像。 plot(abs(k));%重绘图像 set(gca,XLim,[0 1000]);%更改显示范围为0-1000 set(gca,XTick,[0:20:1000]);%更改坐标步长为20 观察图像可发现,干扰信号的谐波频率为: 220Hz、440Hz、660Hz、880Hz 设计过程 第一部分:音频的读取和分析 观察图像可发现,干扰信号的谐波频率为: 220Hz、440Hz、660Hz、880Hz 设计过程 第二部分:滤波器的设计 由于干扰信号的谐波频率为:220Hz、440Hz、660Hz、880Hz, 而人类说话的频率大概在300-3400Hz,而干扰信号非常大。 根据实际情况确定应该设计高通滤波器。 通带边界为1000Hz,阻带边界为900Hz,阻带衰减不小于40dB。 由此,选择hanning窗函数设计滤波器。 设计过程 第二部分:滤波器的设计 fp=1000;fs=900;%通带频率fp,阻带频率fs wp=2*fp*pi/Fs;ws=2*fs*pi/Fs;%归一化边界频率 wc=(wp+ws)/2/pi;%归一化中心频率 wdp=wp-ws;#过渡带宽 N=ceil(12*pi/wdp); %由窗函数主瓣宽和过渡带宽,求得窗函数最小长度 N=N+mod(N,2); %高通滤波器N必为奇数 HPfir=fir1(N,wc,high,hanning(N+1)); %设计高通hanning窗滤波器HPfir 设计过程 第二部分:滤波器的设计 figure;%新建图像 subplot(2,1,1); plot(HPfir);%绘制滤波器时域图像 title(滤波器时域); subplot(2,1,2); plot(abs(fft(HPfir)));%绘制滤波器频域图像 title(滤波器频域); 设计过程 第二部分:滤波器的设计 设计过程 第三部分:音频滤波 audio1=filter(HPfir,1,audio0) %使用filter函数做一维数字滤波p1=audioplayer(audio1,Fs); figure; subplot(2,1,1); plot(audio1); title(滤波后时域); [k0]=fft(audio1,Fs); subplot(2,1,2); plot(abs(k0)); title(滤波后频域); 设计过程 第三部分:音频滤波 振幅/A 幅值/A 时间/ms 频率/Hz
显示全部
相似文档