DSP实验报告.docx

上传人:b****5 文档编号:7552348 上传时间:2023-01-24 格式:DOCX 页数:19 大小:271.53KB
下载 相关 举报
DSP实验报告.docx_第1页
第1页 / 共19页
DSP实验报告.docx_第2页
第2页 / 共19页
DSP实验报告.docx_第3页
第3页 / 共19页
DSP实验报告.docx_第4页
第4页 / 共19页
DSP实验报告.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

DSP实验报告.docx

《DSP实验报告.docx》由会员分享,可在线阅读,更多相关《DSP实验报告.docx(19页珍藏版)》请在冰豆网上搜索。

DSP实验报告.docx

DSP实验报告

DSP综合实验报告

实验目的:

1.学会对语音信号的采集处理方法。

2.掌握用MATLAB对采样信号进行频谱分析基本原理。

3.学会用MATLAB设计FIR和IIR滤波器的基本方法:

即双线性设计IIR数字滤波器法和窗函数法设计FIR数字滤波器法。

实验要求:

先采集一单声道音频信号(.wav)并用WAVREAD文件采样读取,并对其进行频谱分析。

分别用窗函数法和双线性变换法设计低通、高通、带通三种FIR滤波器和IIR滤波器。

用M文件使信号通过滤波器并对输出信号进行时域和频域分析。

编程原理:

(1)设计FIR滤波器:

先把期望数字滤波器的指标通过预畸变转化成模拟滤波器的指标,再用MATLAB文件得到模拟滤波器的传输函数,再用双线性变换法得到数字滤波器的传输函数。

(2)设计IIR滤波器:

先通过数字滤波器指标得到窗函数的阶数和系数,再得到数字滤波器的传输函数。

程序及结果图形:

1.巴特沃兹---双线性变换法----设计低通IIRDF:

(1)程序:

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

song.wav');%读取并采样处理音频信号

disp(fs);

disp(bits);

N=length(x);

t=0:

N-1;

subplot(2,1,1)

plot(t,x);%x的时域波形

sound(x,11025);

k=0:

N-1;

subplot(2,1,2)

X=fft(x);

plot(k,abs(X));%X的频谱分析

 

Fs=input('fs=');%输入抽样频率

%双线性设计低通DF

fp=2000;fs=3200;

WpLd=fp*2*pi/Fs;WsLd=fs*2*pi/Fs;

RpLd=1;RsLd=100;

Wap=2*Fs*tan(WpLd/2);

Was=2*Fs*tan(WsLd/2);%频率预畸变:

低通DF指标变成低通AF指标

[NL,WnL]=buttord(Wap,Was,RpLd,RsLd,'s');%由AF指标得到AF阶数和三DB截止频率

disp(NL);

[ZL,RL,KL]=buttap(NL);%由阶数得到零极点

[BapL,AapL]=zp2tf(ZL,RL,KL);%由零极点得到分子分母

[bL,aL]=lp2lp(BapL,AapL,Wap);%由低通到低通的变换

[bzL,azL]=bilinear(bL,aL,Fs);%用双线性把低通AF分子分母变成低通DF分子分母

[HL,WL]=freqz(bzL,azL);%求DF的频响

figure

(1)

plot(WL/pi,20*log10(abs(HL)))

 

y=filter(bzL,azL,x);%使x通过滤波器滤波输出为y

figure(3);

plot(t,y);%分析y的时域波形

figure(4);

subplot(4,1,1)

plot(t,x);

subplot(4,1,2)

plot(k,abs(X));%X的频谱分析

subplot(4,1,3)

plot(t,y);

subplot(4,1,4)

Y=fft(y);%对y进行时域分析

plot(k,abs(Y));%对Y进行频谱分析

sound(y,11025);

(2)结果图形:

原信号的时域和频域分析

低通滤波器的特性

经过滤波器输出信号的时域和频域分析

2、巴特沃兹--双线性变换法---设计高通IIRDF:

(1)程序:

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

song.wav');

disp(fs);

disp(bits);

N=length(x);

t=0:

N-1;

subplot(2,1,1)

plot(t,x);

sound(x,11025);

k=0:

N-1;

subplot(2,1,2)

X=fft(x);

plot(k,abs(X));

%双线性设计高通DF

Fs=input('fs=');

fp=3000;fs=2000;

Wphd=fp*2*pi/Fs;Wshd=fs*2*pi/Fs;

RpLd=1;RsLd=100;

Wap=2*Fs*tan(Wphd/2);

Was=2*Fs*tan(Wshd/2);

[NL,WnL]=buttord(Wap,Was,RpLd,RsLd,'s');

disp(NL);

[Zh,Rh,Kh]=buttap(NL);

[Baph,Aaph]=zp2tf(Zh,Rh,Kh);

[bh,ah]=lp2hp(Baph,Aaph,Wap);

[bzh,azh]=bilinear(bh,ah,Fs);

[HL,WL]=freqz(bzh,azh);

figure

(2)

plot(WL/pi,20*log10(abs(HL)));

y=filter(bzh,azh,x);

figure(3);

plot(t,y);

figure(4);

subplot(4,1,1)

plot(t,x);

subplot(4,1,2)

plot(k,abs(X));

subplot(4,1,3)

plot(t,y);

subplot(4,1,4)

Y=fft(y);

plot(k,abs(Y));

sound(y,11025);

(3)结果图形:

 

3、巴特沃兹---双线性变换法---设计带通IIRDF:

(1)程序:

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

song.wav');

disp(fs);

disp(bits);

N=length(x);

t=0:

N-1;

subplot(2,1,1)

plot(t,x);

sound(x,11025);

k=0:

N-1;

subplot(2,1,2)

X=fft(x);

plot(k,abs(X));

 

%双线性设计带通DF

Fs=input('fs=');

fp=[12003000];fs=[3004000];

Wpbp=fp*2*pi/Fs;Wsbp=fs*2*pi/Fs;

RpLd=1;RsLd=100;%带通DF的期望指标

Wap=2*Fs*tan(Wpbp/2);

Was=2*Fs*tan(Wsbp/2);%预畸变:

DF频率到AF频率的转换

[Nbp,Wnbp]=buttord(Wap,Was,RpLd,RsLd,'s');%用M文件BUTTORD由带通AF指标得到阶数

disp(Nbp);

[Zbp,Rbp,Kbp]=buttap(Nbp);%由阶数得到零极点及系数

[Bapbp,Aapbp]=zp2tf(Zbp,Rbp,Kbp);%由零极点得到低通AF分子分母

bw=Wap

(2)-Wap

(1);%通带带宽

w0=sqrt(Wap

(1)*Wap

(2));%?

[bp,ap]=lp2bp(Bapbp,Aapbp,w0,bw);%由低通AF分子分母得到带通AF分子分母

[bzp,azp]=bilinear(bp,ap,Fs);%经过双线性变换把带通AF分子分母变成带通DF分子分母

[Hp,Wp]=freqz(bzp,azp);%求带通DF的频率响应

figure

(2)

plot(Wp/pi,20*log10(abs(Hp)));

 

y=filter(bzp,azp,x);

figure(3);

plot(t,y);

figure(4);

subplot(4,1,1)

plot(t,x);

subplot(4,1,2)

plot(k,abs(X));

subplot(4,1,3)

plot(t,y);

subplot(4,1,4)

Y=fft(y);

plot(k,abs(Y));

sound(y,11025);

(3)结果图形:

4、凯泽窗---设计低通FIRDF:

(1)程序:

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

song.wav');

disp(fs);

disp(bits);

N=length(x);

t=0:

N-1;

subplot(2,1,1)

plot(t,x);

sound(x,11025);

k=0:

N-1;

subplot(2,1,2)

X=fft(x);

plot(k,abs(X));

%设计低通DF

Fs=input('fs=');

wpl=2*1000/fs;

wsl=2*1200/fs;

as=100;

ap=1;%期望的低通DF指标

p=0.1087487;

s=0.00001;

fptsl=[wplwsl];

mag=[10];

dev=[ps];

[N,Wn,beta,ftype]=kaiserord(fptsl,mag,dev)%参数得到凯泽窗的阶数截止频率等

kw=kaiser(N+1,beta);%阶数得到凯泽窗的系数

b=fir1(N,Wn,kw);%由凯泽窗的阶数和系数得到传输函数的系数

[h,omega]=freqz(b,1,512);%分析传输函数的频谱

figure

(1);

plot(omega/pi,20*log10(abs(h)));

grid;

xlabel('\omega/\pi');ylabel('Gain,dB');

y=fftfilt(b,x);

figure(3);

plot(t,y);

figure(4);

subplot(4,1,1)

plot(t,x);

subplot(4,1,2)

plot(k,abs(X));

subplot(4,1,3)

plot(t,y);

subplot(4,1,4)

Y=fft(y);

plot(k,abs(Y));

sound(y,11025);

(2)结果图形:

5、凯泽窗---设计高通FIRDF:

(1)程序:

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

song.wav');

disp(fs);

disp(bits);

N=length(x);

t=0:

N-1;

subplot(2,1,1)

plot(t,x);

sound(x,11025);

k=0:

N-1;

subplot(2,1,2)

X=fft(x);

plot(k,abs(X));

Fs=input('fs=');

%设计高通DF

wph=2*5000/fs;

wsh=2*4800/fs;

p=0.1087487;

s=0.00001;

fptsh=[wshwph];

mag=[01];

dev=[sp];

[N,Wn,beta,ftype]=kaiserord(fptsh,mag,dev)

kw=kaiser(N+1,beta);%注意凯泽窗长度为N+1

b=fir1(N,Wn,'high',kw);%注意函数参数要加‘HIGH’

[h,omega]=freqz(b,1,512);

figure

(2);

plot(omega/pi,20*log10(abs(h)));

grid;

xlabel('\omega/\pi');ylabel('Gain,dB');

y=fftfilt(b,x);

figure(3);

plot(t,y);

figure(4);

subplot(4,1,1)

plot(t,x);

subplot(4,1,2)

plot(k,abs(X));

subplot(4,1,3)

plot(t,y);

subplot(4,1,4)

Y=fft(y);

plot(k,abs(Y));

sound(y,11025);

(2)结果图形:

6、凯泽窗---设计带通FIRDF:

(1)程序:

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

song.wav');

disp(fs);

disp(bits);

N=length(x);

t=0:

N-1;

subplot(2,1,1)

plot(t,x);

sound(x,11025);

k=0:

N-1;

subplot(2,1,2)

X=fft(x);

plot(k,abs(X));

Fs=input('fs=');

%设计带通DF

wp1=2*1200/fs;

wp2=2*3000/fs;

ws1=2*1000/fs;

ws2=2*3200/fs;

p=0.1087487;

s=0.00001;

fptsh=[wp1wp2];

mag=[10];

dev=[ps];

[N,Wn,beta,ftype]=kaiserord(fptsh,mag,dev)

kw=kaiser(N+1,beta);

b=fir1(N,[0.50.75],kw);

[h,omega]=freqz(b,1,512);

figure

(2);

plot(omega/pi,20*log10(abs(h)));grid;

xlabel('\omega/\pi');ylabel('Gain,dB');

y=fftfilt(b,x);

figure(3);

plot(t,y);

figure(4);

subplot(4,1,1)

plot(t,x);

subplot(4,1,2)

plot(k,abs(X));

subplot(4,1,3)

plot(t,y);

subplot(4,1,4)

Y=fft(y);

plot(k,abs(Y));

sound(y,11025);

(2)结果图形:

结果分析和结论总结:

(1)原始音频信号经过滤波器后输出的信号基本和原信号相似,不过有的已失真,实验过程中有的滤波器输出没有信号,这说明滤波器设计的有问题。

信号经过滤波器后应该受到滤波器的滤波作用,把高频或低频或高频和低频分量滤掉,出来的信号应该是带限信号,频带在一定范围内的,从理论上讲信号应该比较好,音质比较。

但实际中并不是像理论中的那样,而是有些失真。

我们可以得出结论:

如果要对一信号进行加工处理的话,滤波器是必不可少的,它可以滤除多余的杂波分量,使输出的信号比较清晰。

针对不同的信号,我们可以选择不同类型的滤波器,设置不同的参数,最终使对信号的滤波作用达到最佳。

(2)设计滤波器进行编程时对一些基本M文件不熟悉其用法,不熟悉其参数含义。

经查询资料才可慢慢看懂并应用。

设计IIR滤波器时用BUTTER、CHEBY、ELLIP及双线性变换法设计低通、高通、带通数字滤波器时对其之间变换关系不熟悉。

需反复查阅课本实例才能稍加改换。

设计FIR滤波器时用各种窗函数直接设计低通、高通、带通数字滤波器时对窗函数的参数的求法及关系不懂,不知其内含是什么,不过看着资料能应用。

对带通滤波器的参数的变换关系不是很懂,以及低通、高通、带通之间的变换关系不熟悉。

经查阅资料稍微有些懂之。

后面窗函数法设计时使信号经过滤波器时用的M文件的参数不是很懂,后面的输出信号图形可能有些不对。

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

当前位置:首页 >

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

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