数字信号处理多采样率数字信号处理在数字语音系统中的应用Word文档下载推荐.docx
- 文档编号:21643815
- 上传时间:2023-01-31
- 格式:DOCX
- 页数:23
- 大小:905.60KB
数字信号处理多采样率数字信号处理在数字语音系统中的应用Word文档下载推荐.docx
《数字信号处理多采样率数字信号处理在数字语音系统中的应用Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《数字信号处理多采样率数字信号处理在数字语音系统中的应用Word文档下载推荐.docx(23页珍藏版)》请在冰豆网上搜索。
成绩分为优、良、中、及格、不及格五级分评定。
4、指导教师:
彭祯曹燚罗雅博。
4、设计进度安排
通信工程1301/02:
周周一上午,E-,布置课程设计任务,学生上机,按任务要求进行课程设计;
分组选题;
周周二上午,E-,学生上机,按任务要求进行课程设计;
周周三上午,E-,学生上机,按任务要求进行课程设计;
周周四上午,E-,学生任务完成,答辩并提交课程设计报告。
5、设计原理
1、巴特沃斯滤波器
设计巴特沃斯低通滤波器的方法:
(1)计算归一化频率;
(2)根据设计要求按照:
计算巴特沃斯滤波器的参数C和阶次N,当ap=3db时,C=1;
(3)利用N查表获得归一化巴特沃斯低通原型滤波器的系统函数H(p);
(4)令H(p)中的得到截止频率为wp的巴特沃斯低通滤波器。
设计巴特沃斯低通滤波器的指标:
(1)wp-通带边界频率的归一化值;
(2)ws-阻带边界频率的归一化值;
(3)Rp-通带最大衰减;
(4)Rs-阻带最小衰减。
用MATLAB函数设计巴特沃斯滤波器:
(1)[Z,P,K]=buttap(N);
计算N阶巴特沃斯归一化模拟低通原型滤波器系统函数的零、极点增益因子;
(2)[N,wc]=buttord(wp,ws,Rp,As);
(3)[N,wc]=buttord(wp,ws,Rp,As);
(4)[B,A]=butter(N,wc,’ftype’);
(5)[B,A]=butter(N,wc,’ftype’,’s’)。
2、采样定理
模拟信号经过A/D变换转换为数字信号的过程称之为采样,信号采样后其频谱产生了周期延拓,每隔一个采样频率ws,重复出现一次。
为了保证采样后的信号能真实地保留原始模拟信号的信息,采样信号的频率必须至少为原信号中成分的2倍,这是采样的基本法则,成为采样定理。
需要注意的是,在对信号进行采样时,满足采样定理只能保证不发生频率混叠,对信号的频谱做逆傅立叶变换时,可以完全变换为时域采样信号,而不能保证此时的采样信号能真实反映原信号。
一般频谱函数是复函数,相加应该是复数相加,只有当信号最高频率不超过Fs/2时,才不会产生频率混叠现象。
3、椭圆滤波器
椭圆滤波器在通带和阻带内都具有等波纹幅频响应特性,是可以获得对理想滤波器幅频响应的最好逼近,是一种性价比最高的滤波器。
用MATLAB函数设计椭圆滤波器:
(1)[z,p,k]=ellipap(N,Rp,As);
(2)[N,wpo]=ellipord(wp,ws,Rp,As);
(3)[N,wpo]=ellipord(wp,ws,Rp,As,’s’);
(4)[B,A]=ellip(N,Rp,wpo,’ftype’);
(5)[B,A]=ellip(N,Rp,wpo,’ftype’,’s’);
4、抽取与内插
6、实验步骤及效果图
1、信源的时域和频域分析
[x,fs,bits]=wavread('
C:
\Users\wlz\Desktop\2.wav'
);
%调用音频
sound(x,fs,bits);
%声音
x=x(:
1);
%单声道
Fs=fs%频率
N=length(x);
%音乐的长度
t=[0:
N-1]/fs;
fk=0:
fs/N:
fs*(N-1)/N;
y1=fft(x);
%fft
figure
(1)
subplot(2,1,1)
plot(t,x);
title('
原始语音信号时域波形'
subplot(2,1,2)
plot(fk,abs(y1));
原始语音信号频谱'
)
用wavread函数调用32khz的音频文件,用sound函数播放音乐,x=x(:
1)将其调成单声道音频,将原始信号的波形和频谱用matlab显示。
2、对原始信号进行滤波
wp=2*4000/fs;
%书P161页,巴特沃斯滤波器过渡带为4KHz-12KHz
ws=2*12000/fs;
Rp=1;
Rs=40;
[N,wn]=buttord(wp,ws,Rp,Rs);
%wp-通带边界频率的归一化值ws-阻带边界频率的归一化值Rp-通带最大衰减Rs-阻带最小衰减
[B,A]=butter(N,wn);
K=0:
511;
fk1=0:
fs/512:
fs*(511/512);
%均匀取512个点
Hk=freqz(B,A,512);
%计算频率响应
figure
(2);
subplot(111)
plot(fk1'
20*log10(abs(Hk)));
gridon
xlabel('
频率/Hz'
ylabel('
频率响应幅度'
Butterworth'
y=filter(B,A,x);
Yk=fft(y);
figure(3)
plot(t,y);
滤波后信号时域波形'
plot(fk,abs(Yk));
滤波后语音信号频谱'
利用巴特沃斯滤波器设计一个过渡带为4KHz-12KHz的滤波器,wp=2*4000/fs;
滤波后的信号波形和频谱如图所示。
3、对滤波后的信号采样
fs=16000;
%以16kHz进行采样
n=0:
length(x)-1;
T=1/Fs;
Tp=(N-1)*T;
ta=0:
(Fs/fs)*T:
Tp;
xat=x(1:
Fs/fs:
N);
Na=length(xat);
y3=fft(xat);
fka=0:
fs/Na:
fs*(Na-1)/Na;
sound(xat,fs,bits)
figure(4)
plot(ta,xat)
gridon
t/s'
y2(t)'
采样后语音信号的波形'
gridon;
plot(fka,abs(y3)/max(abs(y3)))
采样后语音信号的频率'
f/Hz'
幅度'
以16KHz对滤波后的信号进行采样,采样结果如图所示。
4、椭圆滤波器滤波
[N,wn]=ellipord(wp,ws,Rp,Rs);
%计数字滤波器滤掉采样后频谱在4~12kHz的频带中发生的混叠。
[B,A]=ellip(N,Rp,Rs,wn);
%椭圆滤波器
[h,w]=freqz(B,A);
subplot(1,1,1)
plot(w*fs/(2*pi),20*log10(abs(h)/max(abs(h))));
数字低通滤波器的幅度响应'
ellipor'
xx=filter(B,A,xat);
%滤波
sound(xx,fs,bits);
figure(5)
stem(ta,xx,'
.'
axis([1.11,1.112,-1,1])
椭圆滤波后的信号时域波形'
yy1=fft(xx);
plot(abs(yy1));
椭圆滤波后的信号频谱'
用椭圆滤波器使采样后频谱在4~12kHz的频带中发生的混叠。
5、对语音信号进行抽取和内插处理
y4=decimate(xx,2);
%抽取,对时间序列进行整数倍采样处理,使得长度降低,采样率减低为原来的1/2
y5=interp(y4,2);
%内插,对时间序列进行整数倍插值,使得时间序列曲线更光滑,插值后使得序列变为2倍
y41=fft(y4);
y51=fft(y5);
sound(y4,fs,bits);
figure(6)
subplot(2,2,1);
dt=0:
4*T:
Tp
stem(dt,y4,'
2倍抽取后的信号'
subplot(2,2,2);
plot(abs(y41))
2倍抽取后的语音信号频谱'
subplot(2,2,3);
dt1=0:
2*T:
stem(dt1,y5,'
2倍插值后的信号'
subplot(2,2,4);
plot(abs(y51))
2倍插值后语音信号频谱'
(7)两倍抽取和两倍插值后的信号波形及频谱。
过程中使用decimate函数对信号进行抽取,用interp函数对信号进行内插。
按抽取因子D=2进行抽取,降低采样率,使得数据量不增加,按内插因子I=2进行内插,将采样率提高2倍。
6、语音信号的恢复
figure(7)
subplot(2,2,1)
plot(fk,x);
axis([14800,15000,-1,1])
语音信号原有32k采样波形'
plot(abs(y1));
语音信号原有32k采样波形频谱'
n=1:
length(xat);
n2=1:
2:
yi=interp1(n,xat,n2);
sound(yi);
subplot(2,2,3)
plot(n2,yi);
内差恢复波形'
y2=fft(yi);
plot(abs(y2));
语音信号内差恢复波形频谱'
使用interp1函数对信号进行恢复。
7、信号波形图对比
原始语音信号
巴特沃斯滤波器滤波后信号
采样后语音信号
由于使用的音频杂音较少,所以在滤波后的信号与原信号相比,波形变化不大,以16KHz频率采样使得在原有的32KHz的基础上采样点减少一半,采样后的语音信号波形要比原信号波形稀疏。
椭圆滤波后的信号
2倍抽取和2倍采样后的信号
恢复波形
在2倍抽取后,信号的采样点较椭圆滤波器滤波后减少,2倍内插后,采样点增多,内插恢复波形大致与原始信号相同,在播放中已基本和原信号相同。
7、问题及解决办法
在实验中也并非是一帆风顺的,在过程中我遇到了很多问题,幸好有彭老师的耐心指导,才使得我将实验做出。
1.信源的时域和频域分析原代码
Fs=fs
plot(x);
在此代码中,虽然可以显示出信号的波形和频谱,但并未设置时间t,导致横坐标出现了问题,无法清晰分辨出之后各步骤执行完成后的结果是否正确,在彭老师的指导后,在程序中加入t=[0:
N-1]/fs,plot(t,x)解决了该问题,同时用x=x(:
1)将信号变为单声道,使信号一目了然,没有重叠。
2.对原始信号进行滤波原代码
wp=2*4000/fs;
%设计模拟滤波器,过渡带为4<
=f<
=12kHz
Rp=2;
Rs=30;
[N,wn]=buttord(wp,ws,Rp,Rs,'
s'
[B,A]=butter(N,wn,'
Hk=freqs(B,A,512);
plot(fk,20*log10(abs(Hk)));
在源代码中,图形并没有达到4KHz-12KHz过渡带预期的效果,在老师的指导下,我们将第五行改为[N,wn]=buttord(wp,ws,Rp,Rs),将模拟滤波器改为数字滤波器,将Rp设为1,将Rs设为40,将Hk=freqs(B,A,512);
改为Hk=freqz(B,A,512);
最后得出的结果大致为正确结果。
3.椭圆滤波器滤波原代码
%椭圆滤波器,wp通带边界频率,ws阻带边界频率,Rp通带最大波纹,Rs阻带最小衰减
plot(xx);
滤波后的信号时域波形'
滤波后的信号频谱'
在椭圆滤波器的使用中,目的是滤掉采样后频谱在4~12kHz的频带中发生的混叠,本段问题是显示的图形中横坐标取值范围太大,导致看不清图像,老师建议我们将横坐标范围缩小,以看清图形,我们在源代码的基础上,加入stem(ta,xx,'
)、axis([1.11,1.112,-1,1]),在之后的抽取、内插和恢复中,也使用该函数显示图形,使图形一目了然,使横坐标保持一致。
8、心得体会
附录:
欢迎您的下载,
资料仅供参考!
致力为企业和个人提供合同协议,策划案计划书,学习课件等等
打造全网一站式需求
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字信号 处理 采样率 数字 语音 系统 中的 应用