配色: 字号:
实验报告1
2012-06-29 | 阅:  转:  |  分享 
  
语音信号采集与处理初步

姓名:汪国雄(独立完成)学号:2009136225

语音信号的读入:[yfsnbit]=wavread(''天后.wav'');

语音信号的播放:wavplay(y,fs);

语音信号的存储:wavwrite(soutl,fs,''天后低通'');

滤波器的设计与分析:

1.用fir1设计的低通滤波器代码如下:

%设计FIR低通滤波器fp=1000HZ,fc1200HZ,Ap=1db,fs=2fc-fp=1400HZ(阻带截频),

%wp=fp/Fs(抽样频率)=0.023pi,ws=fs/Fs=0.032pi,

%由于As=100,这里选择Kaiser窗作为窗函数

%计算可得A=-20lg(min{&p,&s})=100,由此可求阶数M,beta=0.1102(A-8.7)=10.06

wp=0.023pi;ws=0.032pi;

tr_width=ws-wp

M=ceil((100-7.95)/tr_width/2.285)+1;

beta=10.06;

n=[0:1:M-1];

wc=(ws+wp)/2;

win=(kaiser(M,beta))'';

h=fir1((M-1),wc/pi,kaiser(M,beta));

[H,w]=freqz(h,1);

mag=abs(H);

db=20log10((mag+eps)/max(mag));



subplot(3,1,1);stem(n,win);title(''kaiserWindow'')

axis([0M-101.1]);xlabel(''n'');ylabel(''w(n)'')

subplot(3,1,2);stem(n,h);title(''ActualImpulseResponse'')

axis([0M-1-0.10.3]);xlabel(''n'');ylabel(''h(n)'')

subplot(3,1,3);plot(w/pi,db);title(''MagnitudeResponseindB'');grid;

axis([01-15010]);

xlabel(''frequency(pi)'');ylabel(''Decibels'')

set(gca,''XTickMode'',''manual'',''XTick'',[0,0.023,0.032,1])

set(gca,''YTickMode'',''manual'',''YTick'',[-100,0])

低通滤波器的设计效果:



2.高通滤波器的设计与选择:

1)直接法设计的butterworth高通滤波器

%设计IIR高通滤波器fp=5000HZ,fc=4800HZ;As=100db,Ap=1db

%fs=2fc-fp=4600HZ(阻带截频),wp=fp/Fs(抽样频率)=0.113pi,

%ws=fs/Fs=0.104pi

wp=0.113pi;ws=0.104pi;rp=1;rs=100;

[N,Wn]=buttord(wp/pi,ws/pi,rp,rs);

[b,a]=butter(N,Wn,''high'');

[h1,w]=freqz(b,a,256,2);

plot(w,20log10(abs(h1)));grid;title(''High-passDF'');



2)双线性变换法设计的butterworth高通滤波器

wp=0.113pi;ws=0.104pi;rp=1;rs=35;Fs=44100;

wap=2tan(wp/2);was=2tan(ws/2);

[n,wn]=buttord(wap,was,rp,rs,''s'');

[z,p,k]=buttap(n);

[b,a]=zp2tf(z,p,k);

[bt,at]=lp2hp(b,a,wap););

[bz,az]=bilinear(bt,at,Fs);

[h,w]=freqz(bz,az,256,2);

plot(w,20log10(abs(h)));grid;

title(''High-passDF'');

3)用FIR1设计的高通滤波器:

wp=0.113pi;ws=0.104pi;

tr_width=wp-ws;

M=ceil((100-7.95)/tr_width/2.285)+1;

beta=10.06;

n=[0:1:M-1];

wc=(ws+wp)/2;

win=(kaiser(M,beta))'';

h=fir1((M-1),wc/pi,''high'',kaiser(M,beta));

[H,w]=freqz(h,1);

mag=abs(H);

db=20log10((mag+eps)/max(mag));

subplot(3,1,1);stem(n,win);title(''kaiserWindow'');

axis([0M-101.1]);xlabel(''n'');ylabel(''w(n)'')

subplot(3,1,2);stem(n,h);title(''ActualImpulseResponse'')

axis([0M-1-0.10.3]);xlabel(''n'');ylabel(''h(n)'')

subplot(3,1,3);plot(w/pi,db);title(''MagnitudeResponseindB'');grid;

axis([01-15010]);

xlabel(''frequency(pi)'');ylabel(''Decibels'')

set(gca,''XTickMode'',''manual'',''XTick'',[0,0.023,0.032,1])

set(gca,''YTickMode'',''manual'',''YTick'',[-100,0])



经过调试发现As=100db的Butterworth高通滤波器很难实现,最终选择了用Kaiser窗设计的FIR高通滤波器。

三、主程序的实现与效果

[yfsnbit]=wavread(''天后.wav'');

wavplay(y,fs);

n=length(y);

k=1:n;

f=fs/nk;

Y=fft(y,n);

figure(1);

subplot(311);

plot(k,y);

xlabel(''n'');

ylabel(''y'');grid;

title(''原始信号'');

subplot(312);

plot(f,Y);

xlabel(''Frequence(Hz)'');

ylabel(''Magnitude'');grid;

title(''原始信号幅频响应'');

ang=angle(Y);

subplot(313)

plot(f,ang);

xlabel(''Frequence(Hz)'');

ylabel(''Phase'');grid;

title(''原始信号相频响应'');



figure(2)

wp=0.023pi;ws=0.032pi;

tr_width=ws-wp

M=ceil((100-7.95)/tr_width/2.285)+1;

beta=10.06;

wc=(ws+wp)/2;

h=fir1((M-1),wc/pi,kaiser(M,beta));



soutl=fftfilt(h,y);

Soutl=fft(soutl,n);

wavplay(soutl,fs);

wavwrite(soutl,fs,''天后低通¨'');

subplot(221);

plot(k,y);

xlabel(''n'');

ylabel(''y'');grid;

title(''原始信号'');

subplot(222);

plot(f,Y);

xlabel(''Frequence(Hz)'');

ylabel(''Magnitude'');grid;

title(''原始信号幅频响应'');

subplot(223)

plot(k,soutl);

xlabel(''n'');

ylabel(''y'');grid;

title(''低通滤波后的幅频响应'');

subplot(224);

plot(f,Soutl);

xlabel(''Frequence(Hz)'');

ylabel(''Magnitude'');grid;

title(''低通滤波后的相频响应'');



figure(3)

wp=0.113pi;ws=0.104pi;

tr_width=wp-ws

M=ceil((100-7.95)/tr_width/2.285)+1;

beta=10.06;

n=[0:1:M-1];

wc=(ws+wp)/2;

hd=ideal_hp(wc,M);

w_ham=(kaiser(M))'';

h1=hd.w_ham;



south=fftfilt(h1,y);

South=fft(south,n);

wavplay(south,fs);

wavwrite(south,fs,''天后高通¨'');

subplot(221);

plot(k,y);

xlabel(''n'');

ylabel(''y'');grid;

title(''原始信号'');

subplot(222);

plot(f,Y);

xlabel(''Frequence(Hz)'');

ylabel(''Magnitude'');grid;

title(''原始信号幅频响应'');

subplot(223)

plot(k,south);

xlabel(''n'');

ylabel(''y'');grid;

title(''高通滤波后的幅频响应'');

subplot(224);

plot(f,South);

xlabel(''Frequence(Hz)'');

ylabel(''Magnitude'');grid;

title(''高通滤波后的相频响应'');



































献花(0)
+1
(本文系依米荷阳首藏)