低通滤波器的设计
发布日期:2021-05-07 14:37:56 浏览次数:8 分类:原创文章

本文共 1170 字,大约阅读时间需要 3 分钟。

(1)录制一段语音信号;

(2)给语音信号加高频噪声(此处的高频噪声频率f_0=20000Hz);

(3)设计低通滤波器;

(4)用设计的低通滤波器除去高频噪声。

代码如下:

clear allclc[x,Fs]=audioread('天.wav');%sound(x,Fs)X=fft(x);T=1/Fs;                              %采样间隔n=length(x);                         %采样点K=0:n-1;t=K*T;f=K/n*Fs;                            %频域横坐标figure,plot(f,abs(log(1+X)))title('原信号频谱'),xlabel('f/Hz'),ylabel('幅度(取对数)')f0=20000;                            %噪声频率t=repmat(t',1,2);x1=x+1.5*sin(2*pi*f0*t);                 %加噪声%sound(x1,Fs)X1=fft(x1);figure,plot(f,abs(log(1+X1)))title('带噪信号频谱'),xlabel('f/Hz'),ylabel('幅度(取对数)')fp=1.15*10^4;                        %通带截止频率fs=1.5*10^4;                         %阻带截止频率  wp=2*pi*fp/Fs;ws=2*pi*fs/Fs;Rp=1;As=30;[N,wc]=buttord(wp,ws,Rp,As,'s');    %巴特沃斯滤波器[B,A]=butter(N,wc,'s');[Bz,Az]=bilinear(B,A,0.9);[H,W]=freqz(Bz,Az);figure,plot(W,abs(H));title('低通滤波器幅频响应示意图');xlabel('f/10kHz'),ylabel('|H(e^j^w)|');y=filter(Bz,Az,x1);                 %滤波%sound(y,Fs)Y=fft(y);figure,plot(f,abs(log(1+Y)))title('滤波后频谱'),xlabel('f/Hz'),ylabel('幅度(取对数)')

滤波后的结果如图4所示:

图1 原始语音信号频谱
图2 加入高频噪声后的语音信号频谱
图3 低通滤波器的幅频响应示意图
图4 经低通滤波器滤波后的信号频谱

        加入频率f_0=20000Hz的噪声后播放带噪信号,可听到有一段尖锐的声音掺杂在信号当中,经低通滤波器滤波后,尖锐的声音几乎完全消失,滤波后的信号与原始语音信号几乎完全相同。

上一篇:平稳随机过程的样本函数(随机信号)通过线性系统的仿真
下一篇:时域抽取法FFT(DIT-FFT)算法的MATLAB实现

发表评论

最新留言

留言是一种美德,欢迎回访!
[***.207.175.100]2025年04月11日 07时54分20秒