基于matlab各滤波器源代码.docx

上传人:b****6 文档编号:4564222 上传时间:2022-12-06 格式:DOCX 页数:11 大小:15.54KB
下载 相关 举报
基于matlab各滤波器源代码.docx_第1页
第1页 / 共11页
基于matlab各滤波器源代码.docx_第2页
第2页 / 共11页
基于matlab各滤波器源代码.docx_第3页
第3页 / 共11页
基于matlab各滤波器源代码.docx_第4页
第4页 / 共11页
基于matlab各滤波器源代码.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

基于matlab各滤波器源代码.docx

《基于matlab各滤波器源代码.docx》由会员分享,可在线阅读,更多相关《基于matlab各滤波器源代码.docx(11页珍藏版)》请在冰豆网上搜索。

基于matlab各滤波器源代码.docx

基于matlab各滤波器源代码

汉明窗的FIR低通滤波:

Fs=22050;

[x,FS,bits]=wavread('G:

\Users\DP\Desktop\SoundTest.wav');%G:

\Users\DP\Desktop\SoundTest.wavG:

\Users\DP\Desktop\好铃网-湖人掘金宣传片.wav

x=x(:

1);

figure

(1);

subplot(2,1,1);

plot(x);

%sound(x,FS,bits);%回放语音

title('语音信号时域波形图')

y=fft(x,3260);

f=(FS/3260)*[1:

1630];

subplot(2,1,2);

plot(f(1:

1630),abs(y(1:

1630)));

title('语音信号频谱图');

%产生噪声信号并加到语音信号

t=0:

length(x)-1;

zs0=0.05*cos(2*pi*100*t/22050);

figure

(2);

subplot(2,1,1)

plot(zs0)

title('噪声信号波形');

zs1=fft(zs0,1200);

%sound(zs0,FS,bits);%回放噪音

f=(FS/1200)*[1:

600];

subplot(2,1,2)

plot(f(1:

600),abs(zs1(1:

600)));

title('噪声信号频谱');

x1=x+zs0';

%sound(x1,FS,bits);%回放加入噪声后的语音

y1=fft(x1,1200);

figure(3);

subplot(2,1,1);plot(x1);

f=(FS/1200)*[1:

600];

subplot(2,1,2);

plot(f(1:

600),abs(y1(1:

600)));

title('加入噪声后的信号波形');

title('加入噪声后的信号频谱');

%加窗滤波

wp=0.25*pi;

ws=0.3*pi;

wdelta=ws-wp;

N=ceil(6.6*pi/wdelta);%取整

t=0:

(size(x1)-1);

wn=(0.2+0.3)*pi/2;

b=fir1(N,wn/pi,hamming(N+1));%选择窗函数,并归一化截止频率

f1=fftfilt(b,x1);

figure(4)

freqz(b,1,512)

[h1,w1]=freqz(b,1);

plot(w1*FS/(2*pi),20*log10(abs(h1)));

figure(5)

subplot(2,1,1)

plot(t,x1)

title('滤波前的时域波形');

subplot(2,1,2)

plot(t,f1);

title('滤波后的时域波形');

sound(f1);%播放滤波后的语音信号

F0=fft(f1,1024);

f=FS*(0:

511)/1024;

figure(6)

y2=fft(x1,1024);

subplot(2,1,1);

plot(f,abs(y2(1:

512)));%画出滤波前的频谱图

title('滤波前的频谱')

xlabel('Hz');

ylabel('fuzhi');

subplot(2,1,2)

F1=plot(f,abs(F0(1:

512)));%画出滤波后的频谱图

title('滤波后的频谱')

xlabel('Hz');

ylabel('fuzhi');

巴特沃兹低通滤波器:

Fs=22050;

[x,FS,bits]=wavread('G:

\Users\DP\Desktop\SoundTest.wav');%G:

\Users\DP\Desktop\SoundTest.wavG:

\Users\DP\Desktop\好铃网-湖人掘金宣传片.wav

x=x(:

1);

figure

(1);

subplot(2,1,1);

plot(x);

%sound(x,FS,bits);%回放语音

title('语音信号时域波形图')

y=fft(x,3260);

f=(FS/1630)*[1:

1630];

subplot(2,1,2);

plot(f(1:

1630),abs(y(1:

1630)));

title('语音信号频谱图');

%产生噪声信号并加到语音信号

t=0:

length(x)-1;

zs=0.05*cos(2*pi*10000*t/22050);

zs0=0.05*cos(2*pi*10000*t/22050000);

figure

(2);

subplot(2,1,1)

plot(zs0)

title('噪声信号波形');

zs1=fft(zs,1200);

%sound(zs,FS,bits);%回放噪音

subplot(2,1,2)

plot(f(1:

600),abs(zs1(1:

600)));

title('噪声信号频谱');

x1=x+zs';

sound(x1,FS,bits);%回放加入噪声后的语音

y1=fft(x1,1200);

figure(3);

subplot(2,1,1);plot(x1);

title('加入噪声后的信号波形');

subplot(2,1,2);

plot(f(1:

600),abs(y1(1:

600)));

title('加入噪声后的信号频谱');

%低通滤波

fp=3000;fs=3500;Fs=22050;

rp=1;rs=10;

wp=2*pi*fp/Fs;

ws=2*pi*fs/Fs;

Fs1=1;

wap=2*tan(wp/2);

was=2*tan(ws/2);

[N,wc]=buttord(wap,was,rp,rs,'s');

[B,A]=butter(N,wc,'s');

[Bz,Az]=bilinear(B,A,Fs1);

figure(4);

[h,w]=freqz(Bz,Az,512,Fs1*22050);

plot(w,abs(h));

title('巴特沃斯低通滤波器');

xlabel('频率(HZ)');ylabel('耗损(dB)');

gridon;

yd=filter(Bz,Az,x1);

figure(5);

subplot(2,1,1);plot(yd);title('滤波后信号波形');

ydd=fft(yd,1200);

subplot(2,1,2);plot(f(1:

600),abs(ydd(1:

600)));

title('滤波后信号频谱');

%sound(yd,FS,bits);

巴特沃兹高通滤波器:

Fs=22050;

[x,FS,bits]=wavread('G:

\Users\DP\Desktop\SoundTest.wav');

x=x(:

1);

figure

(1);

subplot(2,1,1);

plot(x);

%sound(x,FS,bits);%回放语音

title('语音信号时域波形图')

y=fft(x,3260);

f=(FS/1630)*[1:

1630];

subplot(2,1,2);

plot(f(1:

1630),abs(y(1:

1630)));

title('语音信号频谱图');

%产生噪声信号并加到语音信号

t=0:

length(x)-1;

zs0=0.25*cos(2*pi*100*t/22050);

figure

(2);

subplot(2,1,1)

plot(zs0)

title('噪声信号波形');

zs1=fft(zs0,1200);

%sound(zs0,FS,bits);%回放噪音

subplot(2,1,2)

plot(f(1:

600),abs(zs1(1:

600)));

title('噪声信号频谱');

x1=x+zs0';

%sound(x1,FS,bits);%回放加入噪声后的语音

y1=fft(x1,1200);

figure(3);

subplot(2,1,1);plot(x1);

title('加入噪声后的信号波形');

subplot(2,1,2);

plot(f(1:

600),abs(y1(1:

600)));

title('加入噪声后的信号频谱');

%高通滤波

fp=400;fs=300;Fs=22050;

rp=1;rs=10;

wp=2*pi*fp/Fs;

ws=2*pi*fs/Fs;

T=1;Fs1=1;

wap=2*tan(wp/2);

was=2*tan(ws/2);

[N,wc]=buttord(wap,was,rp,rs,'s');

[B,A]=butter(N,wc,'high','s');

[Bz,Az]=bilinear(B,A,Fs1);

figure(4);

[h,w]=freqz(Bz,Az,512,Fs1*22050);

plot(w,abs(h));

title('巴特沃斯高通滤波器');

xlabel('频率(HZ)');ylabel('耗损(dB)');

gridon;

yd=filter(Bz,Az,x1);

figure(5);

subplot(2,1,1);plot(yd);title('滤波后信号波形');

ydd=fft(yd,1200);

subplot(2,1,2);plot(f(1:

600),abs(ydd(1:

600)));

title('滤波后信号频谱');

%sound(yd,FS,bits)

巴特沃兹带通滤波器:

Fs=22050;

[x,FS,bits]=wavread('G:

\Users\DP\Desktop\SoundTest.wav');

x=x(:

1);

figure

(1);

subplot(2,1,1);

plot(x);

%sound(x,FS,bits);%回放语音

title('语音信号时域波形图')

y=fft(x,3260);

f=(FS/1630)*[1:

1630];

subplot(2,1,2);

plot(f(1:

1630),abs(y(1:

1630)));

title('语音信号频谱图');

%产生噪声信号并加到语音信号

t=0:

length(x)-1;

zs0=0.05*cos(2*pi*100*t/22050);

figure

(2);

subplot(2,1,1)

plot(zs0)

title('噪声信号波形');

zs1=fft(zs0,1200);

%sound(zs,FS,bits);%回放噪音

subplot(2,1,2)

plot(f(1:

600),abs(zs1(1:

600)));

title('噪声信号频谱');

x1=x+zs0';

%sound(x1,FS,bits);%回放加入噪声后的语音

y1=fft(x1,1200);

figure(3);

subplot(2,1,1);plot(x1);

title('加入噪声后的信号波形');

subplot(2,1,2);

plot(f(1:

600),abs(y1(1:

600)));

title('加入噪声后的信号频谱');

%带通滤波

fp=[800,9000];fs=[700,10000];Fs=22050;

rp=1;rs=10;

wp=2*pi*fp/Fs;

ws=2*pi*fs/Fs;

T=1;Fs1=1;

wap=2*tan(wp/2);

was=2*tan(ws/2);

[N,wc]=buttord(wap,was,rp,rs,'s');

[B,A]=butter(N,wc,'s');

[Bz,Az]=bilinear(B,A,Fs1);

figure(4);

[h,w]=freqz(Bz,Az,512,Fs1*22050);

plot(w,abs(h));

title('巴特沃斯带通滤波器');

xlabel('频率(HZ)');ylabel('耗损(dB)');

gridon;

yd=filter(Bz,Az,x1);

figure(5);

subplot(2,1,1);plot(yd);

ydd=fft(yd,1200);

subplot(2,1,2);plot(f(1:

600),abs(ydd(1:

600)));

%sound(yd,FS,bits)

Blackman加窗高通滤波器:

Fs=22050;

[x,FS,bits]=wavread('G:

\Users\DP\Desktop\SoundTest.wav');

x=x(:

1);

figure

(1);

subplot(2,1,1);

plot(x);

%sound(x,FS,bits);%回放语音

title('语音信号时域波形图')

y=fft(x,3260);

f=(FS/1630)*[1:

1630];

subplot(2,1,2);

plot(f(1:

1630),abs(y(1:

1630)));

title('语音信号频谱图');

%产生噪声信号并加到语音信号

%产生噪声信号并加到语音信号

t=0:

length(x)-1;

zs0=0.05*cos(2*pi*100*t/22050);

figure

(2);

subplot(2,1,1)

plot(zs0)

title('噪声信号波形');

zs1=fft(zs0,1200);

%sound(zs,FS,bits);%回放噪音

subplot(2,1,2)

plot(f(1:

600),abs(zs1(1:

600)));

title('噪声信号频谱');

x1=x+zs0';

%sound(x1,FS,bits);%回放加入噪声后的语音

y1=fft(x1,1200);

figure(3);

subplot(2,1,1);plot(x1);

title('加入噪声后的信号波形');

subplot(2,1,2);

plot(f(1:

600),abs(y1(1:

600)));

title('加入噪声后的信号频谱');

%高通加窗滤波

fp=600,fc=400;

wp=2*pi*fp/FS;

ws=2*pi*fc/FS;

Bt=wp-ws;

N0=ceil(11*pi/Bt);

N=N0+mod(N0+1,2);

wc=(wp+ws)/2/pi;

hn=fir1(N-1,wc,'high',blackman(N));

X=conv(hn,x);

%sound(X,FS,bits);

X1=fft(X,1200);

figure(4);

subplot(211);

plot(X);

title('滤波后的信号波形');

subplot(212);

plot(f(1:

600),abs(X1(1:

600)));

title('滤波后的信号频谱')

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 高中教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1