数字信号处理课程设计Word下载.docx

上传人:b****5 文档编号:16428737 上传时间:2022-11-23 格式:DOCX 页数:21 大小:178.15KB
下载 相关 举报
数字信号处理课程设计Word下载.docx_第1页
第1页 / 共21页
数字信号处理课程设计Word下载.docx_第2页
第2页 / 共21页
数字信号处理课程设计Word下载.docx_第3页
第3页 / 共21页
数字信号处理课程设计Word下载.docx_第4页
第4页 / 共21页
数字信号处理课程设计Word下载.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

数字信号处理课程设计Word下载.docx

《数字信号处理课程设计Word下载.docx》由会员分享,可在线阅读,更多相关《数字信号处理课程设计Word下载.docx(21页珍藏版)》请在冰豆网上搜索。

数字信号处理课程设计Word下载.docx

给定滤波器的性能指标,采用窗函数法和双线性变换法设计滤波器,并画出滤波器的频率响应;

然后用自己设计的滤波器对采集的信号进行滤波,画出滤波后信号的时域波形和频谱,并对滤波前后的信号进行对比,分析信号的变化;

回放语音信号;

换一个与你性别相异的人录制同样一段语音内容,分析两段内容相同的语音信号频谱之间有什么特点;

再录制一段同样长时间的背景噪声叠加到你的语音信号中,分析叠加前后信号频谱的变化,设计一个合适的滤波器,能够把该噪声滤除;

三.设计原理

1.在Matlab软件平台下,利用函数wavrecord(),wavwrite(),wavread(),wavplay()对语音信号进行录制,存储,读取,回放。

2.用y=fft(x)对采集的信号做快速傅立叶变换,并用[h1,w]=freqz(h)进行DTFT变换。

3.掌握FIRDF线性相位的概念,即线性相位对

及零点的约束,了解四种FIRDF的频响特点。

4.在Matlab中,FIR滤波器利用函数fftfilt对信号进行滤波。

5.抽样定理

连续信号经理想抽样后时域、频域发生的变化(理想抽样信号与连续信号频谱之间的关系)

理想抽样信号能否代表原始信号、如何不失真地还原信号即由离散信号恢复连续信号的条件(抽样定理)

理想采样过程描述:

时域描述:

频域描述:

利用傅氏变换的性质,时域相乘频域卷积,若

则有

的关系:

理想抽样信号的频谱是连续信号频谱的周期延拓,重复周期为s(采样角频率)。

如果:

即连续信号是带限的,且信号最高频率不超过抽样频率的二分之一,则可不失真恢复。

奈奎斯特采样定理:

要使实信号采样后能够不失真还原,采样频率必须大于信号最高频率的两倍:

四.具体实现

1.录制一段声音

1.1录制并分析

在MATLAB中用wavrecord、wavread、wavplay、wavwrite对声音进行录制、读取、回放、存储。

程序如下:

Fs=8000;

%抽样频率

time=3;

%录音时间

fprintf('

按Enter键录音%ds'

time);

%文字提示

pause;

%暂停命令

录音中......'

);

x=wavrecord(time*Fs,Fs,'

double'

%录制语音信号

录音结束'

按Enter键回放录音'

wavplay(x,Fs);

%按任意键播放语音信号

wavwrite(x,Fs,'

C:

\Users\acer\Desktop\数字信号\sound.wav'

%存储语音信号

N=length(x);

%返回采样点数

df=fs/N;

%采样间隔

n1=1:

N/2;

f=[(n1-1)*(2*pi/N)]/pi;

%频带宽度

figure

(2);

subplot(2,1,1);

plot(x);

%录制信号的时域波形

title('

原始信号的时域波形'

%加标题

ylabel('

幅值/A'

%显示纵坐标的表示意义

grid;

%加网格

y0=fft(x);

%快速傅立叶变换

subplot(2,1,2);

plot(f,abs(y0(n1)));

%原始信号的频谱图

原始信号的频谱图'

xlabel('

频率w/pi'

%显示横坐标表示的意义

幅值'

%显示纵坐标表示的意义

图1.1原始信号的时域与频谱图

1.2滤除无效点

针对实际发出声音落后录制动作半拍的现象,如何拔除对无效点的采样的问题:

出现这种现象的原因主要是录音开始时,人的反应慢了半拍,导致出现了一些无效点,而后而出现的无效的点,主要是已经没有声音的动作,先读取声音出来,将原始语音信号时域波形图画出来,根据己得到的信号,可以在第二次读取声音的后面设定采样点,取好有效点,画出滤除无效点后的语音信号时域波形图,对比可以看出。

这样就可以解决这个问题。

x=wavread('

[4000,24000]);

%从4000点截取到24000结束

plot(x);

%画出截取后的时域图形

截取后的声音时域图形'

%标题

频率'

振幅'

);

%画网格

图1.2去除无效点

2.巴特沃斯滤波器的设计

2.1设计巴特沃思低通滤波器

MATLAB程序如下。

滤波器图如图3.3所示。

%低通滤波

fp=1000;

fs=1200;

Fs=22050;

rp=1;

rs=100;

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,'

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

figure

(1);

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

plot(w,abs(h));

巴特沃斯低通滤波器'

频率(HZ)'

耗损(dB)'

gridon;

图2.1巴特沃思低通滤波器

2.2设计巴特沃思高通滤波器

滤波器图如图3.5所示。

%高通滤波

fp=4800;

fs=5000;

T=1;

high'

'

巴特沃斯高通滤波器'

gridon;

图2.2巴特沃思高通滤波器

2.3设计巴特沃思带通滤波器

滤波器图如图3.7所示。

%带通滤波

fp=[1200,3000];

fs=[1000,3200];

figure(4);

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

巴特沃斯带通滤波器'

图2.3巴特沃思带通滤波器

3.将声音信号送入滤波器滤波

%播放原始信号

wavplay(x,fs);

%播放原始信号

subplot(4,2,1);

subplot(4,2,3);

3.1低通滤波器滤波

fs=8000;

beta=10.056;

wc=2*pi*1000/fs;

ws=2*pi*1200/fs;

width=ws-wc;

wn=(ws+wc)/2;

n=ceil(12.8*pi/width);

h=fir1(n,wn/pi,'

band'

kaiser(n+1,beta));

[h1,w]=freqz(h);

ys=fftfilt(h,x);

%信号送入滤波器滤波,ys为输出

fftwave=fft(ys);

%将滤波后的语音信号进行快速傅立叶变换

subplot(4,2,2);

%在四行两列的第二个窗口显示图形

plot(ys);

%信号的时域波形

低通滤波后信号的时域波形'

%显示标表示的意义

%网格

subplot(4,2,4);

%在四行两列的第四个窗口显示图形

plot(f,abs(fftwave(n1)));

%绘制模值

低通滤波器滤波后信号的频谱图'

wavplay(ys,8000);

%播放滤波后信号

3.2高通滤波器滤波

ws=2*5000/fs;

wc=2*4800/fs;

n=ceil(12.8*pi/width);

h=fir1(n,wn/pi,'

kaiser(n+2,beta));

%将信号送入高通滤波器滤波

subplot(4,2,5);

%在四行两列的第五个窗口显示图形

高通滤波后信号的时域波形'

%将滤波后的语音信号进行快速傅立叶变换

subplot(4,2,7);

%在四行两列的第七个窗口显示图形

plot(f,abs(fftwave(n1)));

axis([01050]);

高通滤波器滤波后信号的频谱图'

3.3带通滤波器

wc1=2*pi*1000/fs;

wc2=2*pi*3200/fs;

ws1=2*pi*1200/fs;

ws2=2*pi*3000/fs;

width=ws1-wc1;

wn1=(ws1+wc1)/2;

wn2=(ws2+wc2)/2;

wn=[wn1wn2];

n=ceil(12.8/width*pi);

ys1=fftfilt(h,x);

%将信号送入高通滤波器滤波

subplot(4,2,6);

%在四行两列的第六个窗口显示图形

plot(ys1);

%绘制后信号的时域的图形

带通滤波后信号的时域波形'

fftwave=fft(ys1);

%对滤波后的信号进行快速傅立叶变换

subplot(4,2,8);

%在四行两列的第八个窗口显示图形

带通滤波器滤波后信号的频谱图'

wavplay(ys1,8000);

图形如下:

分析:

三个滤波器滤波后的声音与原来的声音都发生了变化。

其中低通的滤波后与原来声音没有很大的变化,其它两个都又明显的变化

4.语音信号的回放

sound(xlow,Fs,bits);

%在Matlab中,函数sound可以对声音进行回放,其调用格式:

sound(xhigh,Fs,bits);

%sound(x,Fs,bits);

sound(xdaitong,Fs,bits);

5.男女语音信号的频谱分析

5.1录制一段异性的声音进行频谱分析

\Users\acer\Desktop\数字信号\sound2.wav'

5.2分析男女声音的频谱

C:

\Users\acer\Desktop\数字信号\sound2.wav'

%播放原始信号,解决落后半拍

subplot(2,2,1);

原始女生信号的时域波形'

subplot(2,2,2);

原始女生信号的频谱图'

[y,fs,bits]=wavread('

\Users\acer\Desktop\数字信号\sound.wav'

%对语音信号进行采样

wavplay(y,fs);

N=length(y);

subplot(2,2,3);

plot(y);

原始男生信号的时域波形'

y0=fft(y);

subplot(2,2,4);

%在四行两列的第三个窗口显示图形

原始男生信号的频谱图'

5.3男女声音的频谱图

图5.3男女声音信号波形与频谱对比

就时域图看,男生的时域图中振幅比女生的高,对于频谱图女生的高频成分比较多

6.噪声的叠加和滤除

6.1录制一段背景噪声

\Users\acer\Desktop\数字信号\噪音.wav'

6.2对噪声进行频谱的分析

[x1,fs,bits]=wavread('

\Users\acer\Desktop\数字信号\噪音.wav'

%对语音信号进行采样

wavplay(x1,fs);

%播放噪声信号

N=length(x1);

%采样间隔

figure(5);

subplot(3,2,1);

plot(x1);

噪声信号的时域波形'

y0=fft(x1);

subplot(3,2,2);

%噪声信号的频谱图

幅值'

噪声信号的频谱图'

6.3原始信号与噪音的叠加

[x,fs,bits]=wavread('

%对录入信号进行采样

%对噪声信号进行采样

yy=x+x1;

%将两个声音叠加

6.4叠加信号的频谱分析:

wavplay(yy,fs);

%播放叠加后信号

N=length(yy);

subplot(3,2,3);

plot(yy,'

LineWidth'

2);

叠加信号的时域波形'

时间/t'

y0=fft(yy);

subplot(3,2,4);

%叠加信号的频谱图

叠加信号的频谱图'

幅值/db'

6.5设计一个合适的滤波器将噪声滤除

fs=18000;

%采样频率

Wp=2*1000/fs;

%通带截至频率

Ws=2*2000/fs;

%阻带截至频率

Rp=1;

%最大衰减

Rs=100;

%最小衰减

[N,Wn]=buttord(Wp,Ws,Rp,Rs);

%buttord函数(n为阶数,Wn为截至频率)

[num,den]=butter(N,Wn);

%butter函数(num为分子系数den为分母系数)

[h,w]=freqz(num,den);

%DTFT变换

ys=filter(num,den,yy);

subplot(3,2,5);

subplot(3,2,6);

图6.1噪音的叠加与滤除前后频谱对比

7.结果分析

1.录制刚开始时,常会出现实际发出声音落后录制动作半拍,可在[x,fs,bits]=wavread('

d:

\matlav\work\womamaaiwo.wav'

)加窗[x,fs,bits]=wavread('

,[10010000]),窗的长度可根据需要定义。

2.语音信号通过低通滤波器后,把高频滤除,声音变得比较低沉。

当通过高通滤波器后,把低频滤除,声音变得比较就尖锐。

通过带通滤波器后,声音比较适中。

3.通过观察男生和女生图像知:

时域图的振幅大小与性别无关,只与说话人音量大小

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

当前位置:首页 > 高等教育 > 工学

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

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