通信1103范进文.docx

上传人:b****8 文档编号:9691319 上传时间:2023-02-05 格式:DOCX 页数:21 大小:119.92KB
下载 相关 举报
通信1103范进文.docx_第1页
第1页 / 共21页
通信1103范进文.docx_第2页
第2页 / 共21页
通信1103范进文.docx_第3页
第3页 / 共21页
通信1103范进文.docx_第4页
第4页 / 共21页
通信1103范进文.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

通信1103范进文.docx

《通信1103范进文.docx》由会员分享,可在线阅读,更多相关《通信1103范进文.docx(21页珍藏版)》请在冰豆网上搜索。

通信1103范进文.docx

通信1103范进文

 

天津商业大学通信工程专业2011级

 

数字信号处理课程设计

报告

 

专业班级:

通信1103班

姓名:

范进文

学号:

20114879

总评成绩:

 

指导教师签章:

设计一:

利用FFT做连续信号的频谱分析

一、设计要求

用FFT计算下列连续时间信号的频谱,并分析选择不同的抽样频率Fs和抽样点数N对频谱特性的影响(是否有混叠现象、泄露现象、栅栏现象)。

(1)

(2)

(3)

(4)

二、设计所用MATLAB函数

(1)fft函数

功能:

一维快速离散傅立叶变换。

调用格式:

y=fft(x):

利用fft算法计算向量x的快速离散傅立叶变换。

y=fft(x,n):

利用fft算法计算向量x的n点快速离散傅立叶变换。

当x的长度小于n时,在x的尾部补零;当x的长度大于n时,fft函数会截断x。

(2)plot函数

功能:

绘制二维图形。

调用格式:

y=plot(x):

当x是实向量时,以该元素的下标为横坐标,元素值为纵坐标画出一条连续曲线,实际是绘制折线图。

y=plot(x,y):

以x元素为横坐标值,y元素为纵坐标值绘制曲线。

y=plot(x,y1,x,y2..):

以公共的x元素为横坐标值,以y1,y2等纵坐标绘制多条曲线。

(3)axis函数

功能:

横纵坐标控制

调用格式:

axis([xminxmaxyminymaxzminzmax])

(4)title函数

功能:

加图形标题

调用格式;title('')

(5)xlabel函数

功能:

加X轴上的说明

调用格式:

xlabel('')

(6)holdon函数

holdon/off命令控制是保持原有图形还是刷新原有图形,不带参数的hold命令在两种状态之间进行切换。

三、设计内容

程序如下:

Fs=4;Ts=1/Fs;N=1024;

n=0:

N-1;

t=n*Ts;

xa=exp(-0.01*t).*(sin(2*pi*2*t)+sin(2*pi*2.1*t)+sin(2*pi*2.2*t));

Xa=fft(xa,N);%计算xa的N点ifft

k=0:

N-1;

D=Fs/N;%计算模拟频率分辨率

plot(k*D,abs(Xa),'k');%横轴转换成模拟频率

axis([0,5,0,1.1*max(abs(Xa))]);%画出折叠频率之前的随频率变化的频域振幅

title('幅度频谱');xlabel('Hz');

holdon

仿真波形如下:

(1)

波形分析:

无混叠现象;无泄露现象;有栅栏现象

(2)

波形分析:

无混叠现象;无泄露现象;无栅栏现象

(3)

波形分析:

无混叠现象;无泄露现象;有栅栏现象

(4)

波形分析:

有混叠现象;无泄露现象;有栅栏现象

设计二:

数字滤波器的设计

一、设计要求

利用双线性法实现巴特沃思IIR数字低通、高通、带通、带阻滤波器,具体指标如下:

1)低通IIR数字滤波器性能指标,fp=1.2kHz,fs=2kHz,Rp=1dB,As=40dB,Fs=8kHz;

2)高通IIR数字滤波器性能指标,fp=3kHz,fs=1.2kHz,Rp=1dB,As=100dB,Fs=8kHz;

3)带通IIR数字滤波器性能指标,fp1=1.2kHz,fp2=3kHz,fs1=1kHz,fs2=3.2kHz,Rp=1dB,As=100dB,Fs=8kHz;

4)带阻IIR数字滤波器性能指标,fp1=1kHz,fp2=3.2kHz,fs1=1.2kHz,fs2=3kHz,Rp=1dB,As=52dB,Fs=8kHz。

画出所设计滤波器的幅频响应图,观察图形,验证所设计滤波器是否满足指标要求。

二、设计所用MATLAB函数

(1)buttord函数

功能:

确定巴特沃思滤波器的阶数

和3dB截至频率

调用格式:

[n,wc]=buttord(wp,ws,Rp,Rs,’s’)

[n,wc]=buttord(wp,ws,Rp,Rs)

(2)buttap函数

功能:

设计巴特沃思模拟低通原型滤波器。

调用格式:

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

(3)ploy函数

功能:

求某向量指定根所对应的多项式系数向量。

调用格式:

a=ploy(p)

(4)lp2lp,lp2hp,lp2bp,lp2bs函数

功能:

将模拟低通原型滤波器分别转化为实际的低通、高通、带通、带阻滤波器。

调用格式:

[bt,at]=lp2lp(b,a,wc)

[bt,at]=lp2hp(b,a,wc)

[bt,at]=lp2bp(b,a,w0,bw)

[bt,at]=lp2bs(b,a,w0,bw)

(5)bilinear函数

功能:

将模拟滤波器

变成数字滤波器

调用格式:

[bz,az]=bilinear(bs,as,fs)

(6)butter函数。

功能:

设计低通、高通、带通和带阻的数字和模拟巴特沃思滤波器。

调用格式:

[b,a]=butter(n,wc),

[b,a]=butter(n,wc,’ftype’)

[b,a]=butter(n,wc,’s’)

[b,a]=butter(n,wc,’ftype’,’s’)

(7)freqs函数

功能:

计算模拟滤波器的频率响应。

调用格式:

h=freqs(b,a,w)

[h,w]=freqs(b,a)

[h,w]=freqs(b,a,n)

freqs(b,a)

(8)freqz函数

功能:

计算数字滤波器的频率响应。

调用格式:

[h,w]=freqz(b,a,n)

[h,f]=freqz(b,a,n,Fs)

h=freqz(b,a,w)

h=freqz(b,a,f,Fs)

freqz(b,a)

三、设计内容

1、低通IIR数字滤波器

fp=1200;fs=2000;Fs=8000;

wp=fp/Fs*2*pi;%数字滤波器的通带截止频率

ws=fs/Fs*2*pi;%数字滤波器的阻带截止频率

Rp=1;As=40;%输入滤波器的通阻带衰减指标

[n,wc]=buttord(wp/pi,ws/pi,Rp,As);%计算数字巴特沃思滤波器的阶数n和3dB截至频率wc。

其中,wp和ws

,1对应抽样频率0.5Fs或

[bd,ad]=butter(n,wc);%设计3dB截至频率为wc的n阶巴特沃思数字滤波器,wc为一元矢量,产生数字低通滤波器

[H,w]=freqz(bd,ad);%得到数字滤波器的n点频率响应值,这n个点均匀地分布在[0,

]上,并将这n个频点的频率记录在w中,相应的频响值记录在H中,缺省时n=512。

dbH=20*log10(abs(H)/max(abs(H)));%化为分贝值

plot(w/2/pi*Fs,dbH,'k');

title('幅度响应(dB)');axis([0,Fs/2,-40,5]);

ylabel('dB');xlabel('频率(Hz)');

set(gca,'XTick',[0,fp,fs,Fs/2]);

set(gca,'YTick',[-50,-20,-3,0]);grid

低通IIR数字滤波器

2、高通IIR数字滤波器

fp=3000;fs=1200;

Fs=8000;

wp=fp/Fs*2*pi;%数字滤波器的通带截止频率

ws=fs/Fs*2*pi;%数字滤波器的阻带截止频率

%wp=0.4;%数字滤波器的通带截止频率

%ws=0.25;%数字滤波器的阻带截止频率

Rp=1;As=100;%输入滤波器的通阻带衰减指标

[n,wc]=buttord(wp/pi,ws/pi,Rp,As)%计算阶数n和截止频率

[b,a]=butter(n,wc,'high')%直接求数字高通滤波器系数

[h,w]=freqz(b,a);%求数字系统的频率特性

dbH=20*log10(abs(h)/max(abs(h)));%化为分贝值

plot(w/pi,dbH);title('幅度响应(dB)');

ylabel('dB');xlabel('频率(\pi)');axis([0,1,-40,5]);

set(gca,'XTick',[0,ws/pi,wp/pi,1]);

set(gca,'YTick',[-40,-20,-1,0]);grid

高通IIR数字滤波器

3、带通IIR数字滤波器

fp1=1200;fs1=1000;

wp1=fp1/Fs*2*pi;%数字滤波器的通带截止频率

ws1=fs1/Fs*2*pi;%数字滤波器的阻带截止频率

fp2=3000;fs2=3200;

wp2=fp2/Fs*2*pi;%数字滤波器的通带截止频率

ws2=fs2/Fs*2*pi;%数字滤波器的阻带截止频率

%ws1=0.15;ws2=0.85;%数字滤波器的阻带截止频率

ws=[ws1,ws2];

%wp1=0.25;wp2=0.75;%数字滤波器的通带截止频率

wp=[wp1,wp2];

Rp=1;As=100;%输入滤波器的通阻带衰减指标

[n,wc]=buttord(wp/pi,ws/pi,Rp,As)%计算阶数n和截止频率

[b,a]=butter(n,wc)%直接求数字带通滤波器系数

[H,w]=freqz(b,a);%求数字系统的频率特性

dbH=20*log10(abs(H)/max(abs(H)));%化为分贝值

plot(w/pi,dbH,'k');

ylabel('dB)');title('幅度响应(dB)');axis([0,1,-40,5]);

set(gca,'XTick',[0,ws1/pi,wp1/pi,wp2/pi,ws2/pi,1]);

set(gca,'YTick',[-40,-20,-1,0]);grid

带通IIR数字滤波器

4、带阻IIR数字滤波器

fp1=1000;fs1=1200;Fs=8000;

wp1=fp1/Fs*2*pi;%数字滤波器的通带截止频率

ws1=fs1/Fs*2*pi;%数字滤波器的阻带截止频率

fp2=3200;fs2=3000;

wp2=fp2/Fs*2*pi;%数字滤波器的通带截止频率

ws2=fs2/Fs*2*pi;%数字滤波器的阻带截止频率

%wp1=0.15;wp2=0.85;%数字滤波器的通阻带截止频率

wp=[wp1,wp2];

%ws1=0.25;ws2=0.75;%数字滤波器的阻带截止频率

ws=[ws1,ws2];

Rp=1;As=52;%输入滤波器的通阻带衰减指标

[n,wc]=buttord(wp/pi,ws/pi,Rp,As)%计算阶数n和3dB截止频率

[b,a]=butter(n,wc,'stop')%直接求数字带通滤波器系数

[H,w]=freqz(b,a);%求数字系统的频率特性

dbH=20*log10(abs(H)/max(abs(H)));%化为分贝值

plot(w/pi,dbH,'k');

ylabel('dB)');title('幅度响应(dB)');axis([0,1,-40,5]);

set(gca,'XTick',[0,wp1/pi,ws1/pi,ws2/pi,wp2/pi,1]);

set(gca,'YTick',[-40,-20,-1,0]);grid

带阻IIR数字滤波器

设计三:

语音信号的消噪

一、设计要求

利用windows下的录音机录制一段自己的语音并储存,时间控制在3秒左右;对语音信号叠加正弦噪声

;分析原语音信号和加噪语音信号的频谱;设计一个巴特沃斯型IIR数字滤波器对正弦噪声进行滤除,并比较滤波前后语音信号的频谱的变化;最后通过MATLAB中的函数sound对声音进行回放,感觉滤波前后声音的变化。

二、设计所用MATLAB函数

(1)wavread函数

功能:

把.wav的语音赋给数据变量。

调用格式:

[x,fs,bits]=wavread('filename'),将名为filename的.wav的语音转换成数组格式的数据x,同时把x的采样频率fs和数据位数bits放进MATLAB的工作空间。

(2)wavwrite函数

功能:

将声音数据存成.wav格式。

调用格式:

wavwrite(x,fs,bits,'filename'),将数组格式的数据x按指定采样频率fs和数据位数bits存入微软的.wav文件中,并命名为filename。

(3)sound函数

功能:

对声音进行回放。

调用格式:

sound(x,fs,bits),将数据x通过声卡转化为声音放出。

(4)filter函数

功能:

用数字滤波器对输入信号进行滤波。

调用格式:

y=filter(b,a,x),对信号x进行滤波,结果存放于y中,b、a分别为是数字滤波器传递函数分子、分母多项式的系数。

(5)ploy函数

功能:

求某向量指定根所对应的多项式系数向量。

调用格式:

a=ploy(p)

(6)axis函数

功能:

横纵坐标控制

调用格式:

axis([xminxmaxyminymaxzminzmax])

(7)title函数

功能:

加图形标题

调用格式;title('')

(8)holdon函数

holdon/off命令控制是保持原有图形还是刷新原有图形,不带参数的hold命令在两种状态之间进行切换。

三、设计内容

设计步骤:

(1)语音信号的采集

(2)语音信号的频谱分析(给出0-4000Hz之间的)

(3)设计数字滤波器和画出频率响应

(4)用滤波器对信号进行滤波

(5)比较滤波前后语音信号的波形及频谱

(6)回放语音信号

1.音频采集

在windows操作系统下点击[开始]→[程序]→[附件]→[娱乐]→[录音机],将出现图2所示的录音机面板。

windows操作系统下的录音机面板

2.程序设计

[x,Fs,bits]=wavread('E:

\liuchao.wav');

N=length(x);Ts=1/Fs;

n=0:

N-1;

Xa=fft(x,N);

k=0:

N-1;

D=Fs/N;%计算模拟频率分辨率

subplot(2,3,1);plot(x);title('原信号幅度谱');%原语音信号

subplot(2,3,2);stem(n,x,'k');

plot(k*D,abs(Xa),'k');%横轴转换成模拟频率

axis([0,4000,0,0.2*max(abs(Xa))]);%画出折叠频率之前的随频率变化的频域振幅

title('原信号频谱');xlabel('Hz');

holdon

%%%%%%%%(转换模拟的语音信号)

y=0.2*sin(2*pi*2500*n*Ts);%加噪

z=y+x';

wavwrite(z,Fs,bits,'e:

\1.wav');

Nx=length(z);Ts=1/Fs;

a=0:

N-1;

Xa=fft(z,Nx);

k=0:

N-1;

D=Fs/N;%计算模拟频率分辨率

subplot(2,3,3);stem(a,x,'k');

plot(k*D,abs(Xa),'k');%横轴转换成模拟频率

axis([0,4000,0,0.1*max(abs(Xa))]);%画出折叠频率之前的随频率变化的频域振幅

title('加噪信号频谱');xlabel('Hz');

holdon

%%%%%%%%%(叠加正弦信号后的频谱)

%直接法设计数字带阻滤波器

fp1=1800;fs1=2000;fp2=2800;fs2=2600;Fs=22050;

wp1=fp1/Fs*2;%数字滤波器的通阻带截止频率

wp2=fp2/Fs*2;

wp=[wp1,wp2];

ws1=fs1/Fs*2;%数字滤波器的阻带截止频率

ws2=fs2/Fs*2;

ws=[ws1,ws2];

Rp=1;As=36;%输入滤波器的通阻带衰减指标

[n,wc]=buttord(wp,ws,Rp,As)%计算阶数n和3dB截止频率

[b,a]=butter(n,wc,'stop')%直接求数字带通滤波器系数

[H,w]=freqz(b,a);%求数字系统的频率特性

dbH=20*log10(abs(H)/max(abs(H)));%化为分贝值

subplot(2,3,4)

plot(w/pi,dbH,'k');

ylabel('dB)');title('带阻频谱响应(dB)');axis([0,1,-40,5]);

set(gca,'XTick',[0,wp1,ws1,ws2,wp2,5]);

set(gca,'YTick',[-50,-20,-1,5]);grid

%%%%%%%%%%

y=2*sin(2*pi*2500*n*Ts);

z=y+x';

y=filter(b,a,x)

wavwrite(y,Fs,bits,'e:

\2.wav');

N=length(y);

a=0:

N-1;

Xa=fft(y,N);

k=0:

N-1;

D=Fs/N;%计算模拟频率分辨率

subplot(2,3,5);stem(a,x,'k');

plot(k*D,abs(Xa),'g');%横轴转换成模拟频率

axis([0,4000,0,0.1*max(abs(Xa))]);%画出折叠频率之前的随频率变化的频域振幅

title('滤波后频谱');xlabel('Hz');

holdon

sound(x,Fs,bits);

3.音频结果

如图可见,在滤波前,原信号的频谱分布较为密集,在2500HZ频率附近比较平坦,而再加入噪声以后,整体频谱起伏较大,在2500HZ频率附近有明显的噪声信号,在通过了带阻滤波器以后,可以看到,在0-2200HZ的频段内,波形基本没有改变,但是从2200HZ-2800HZ之间内的频谱图明显趋于平坦,而原来的在2500HZ附近的尖锐噪声信号已经消失。

滤波后的图像和原图像基本相似。

设计总结

为期一周的课程设计结束了,这次课程设计虽然遇到很多问题,很多困难,但

也学到了很多东西,不仅学到了书本上的东西,而且学到了很多书本上没有的东

西,很多程序了的东西,特别是程序语法,总是有错误,但是总是不知道错在哪

里,在细心的检查,和小组成员帮助之下,终于找出了错误和警告,排除困难后,

程序编译就通过了,心里舒了一口气。

还有各种各样问题,通过上网查资料来能

明白,这个过程是痛苦的,有些时候不能马上解决这些问题,感到很头疼,真

想放弃这个问题,但是坚持下来,并且解决这些问题的时候,真的有种苦尽甘来

的感觉。

应用MATLAB进行语音信号的处理时我们所学课程及专业紧密相连的,有着很

强的实践性。

做这个课程设计的时候并不是非常顺利,我也有遇到很多困难。

刚开始做的时候,由于音频格式不对出了很多错误,经过格式转换成PCM后我

运行出了正确的结果。

刚开始由于对滤波器的滤波原理不是很了解于是我又翻出

学过的课本,认真的研究起了滤波器,这才使我明白了大多数滤波器是怎么工作

的,不再单单只是懂理论,理论浴室架结合是很重要的,只是懂理论知识是远远

不够的,只有把理论知识和实际结合起来,才能从理论中得到结论。

不管对于什

么样地课题,其实也是有很多东西可以发掘的,这需要我们在平时多积累,多思

考,只有这样才能取得更大的进步,才能学有所用,学有所长。

总的来说,通过这次课程设计我对语音信号有了全面的认识,对数字信号处

理的知识有了更深的理解。

这次设计使我了解MATLAB的使用方法,学会分析滤

波器的优劣和性能,提高动手能力,我认为,在这学期的实验中,不仅培,

养了独立思考、动手操作的能力,在各种其它能力上也都有了提高。

更重要的是

在实验课上,我们学会了很多学习的方法。

而这是日后最实用的,真的是受益匪

浅。

要面对社会的挑战,只有不断的学习、实践,再学习、再实践。

这对于我们

的将来也有很大的帮助。

以后,不管有多苦,我想我们都能变苦为乐,找寻有趣

的事情,发现其中珍贵的事情。

就像中国提倡的艰苦奋斗一样,我们都可以在实

验结束之后变的更加成熟,会面对需要面对的事情,进一步加强对MATLAB的学

习与研究对我今后的学习和发展有很大的帮助!

 

参考资料

[1].程佩青.数字信号处理教程第三版.北京:

清华大学出版社,2007.

[2].陈怀琛.数字信号处理教程——MATLAB释义与实现,电子工业出版社

[3].王一世.数字信号处理.北京理工大学出版社

[4]赵力.语音信号处理.机械工业出版社

[5]张威.matlab基础与编程入门[M].科技大学出版社2006

 

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

当前位置:首页 > 求职职场 > 简历

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

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