全文预览

数字信号处理课程设计-语音信号滤波去噪--使用布莱克曼窗设计的FIR滤波器

上传者:upcfxx |  格式:doc  |  页数:17 |  大小:0KB

文档介绍
将Hz为单位的模拟频率换算为rad为单位的数字频率Рwsd=fsd/fs*2*pi;wsu=fsu/fs*2*pi; РM=ceil(10*pi/dw)+1; % 计算布莱克曼窗设计该滤波器时需要的阶数Рn=0:M-1; % 定义时间范围Рw_black=blackman(M); % 产生M阶的布莱克曼窗Рhd_bs=ideal_lp(wcd,M)+ideal_lp(pi,M)-ideal_lp(wcu,M); % 调用自编函数计算理想带阻滤波器的脉冲响应Рh_bs=w_black'.*hd_bs; % 用窗口法计算实际滤波器脉冲响应Р[db,mag,pha,grd,w]=freqz_m(h_bs,1); % 调用自编函数计算滤波器的频率特性Р图3.5滤波器的频率特性Р3.4 信号滤波处理Р对语音信号信号进行滤波处理主要是滤掉加入的噪声。不同的滤波器利用不同的函数对语音信号进行滤波,FIR滤波器利用函数fftfilt对信号进行滤波。Р对信号进行滤波处理要先利用函数filter对y进行滤波,然后对y进行傅里叶变换。而画频谱时只取前面一半。最后在同一个图中画出原始信号的、加入噪声的语音信号以及滤波后语音信号的频域图和时域图。这样便于将所有的图进行对比和分析,而且还可以直观的观察该课程设计是否成功。当将设计好的滤波器滤掉噪声后我们也可以再一次调用函数sound,听此时的声音是否与原始语音信号基本一样,若没有单频啸叫声则说明此次设计是成功的,否则应重新设置指标。Р下面是对语音信号进行滤波的程序:Рy_fil=filter(h_bs,1,y); %用设计好的滤波器对y进行滤波РY_fil=fft(y_fil); %对y进行傅里叶变化РY_fil=Y_fil(1:length(Y_fil)/2); % 计算频谱取前一半Рsound (x,fs,bits);可以感觉滤波前后的声音有变化。

收藏

分享

举报
下载此文档