语音信号处理 实验 数字信号处理 傅里叶变换 DTFT

2020-03-27 16:24

实验二 语音信号处理

语音信号处理综合运用了数字信号处理的理论知识,对信号进行计算及频谱分析,设计滤波器,并对含噪信号进行滤波。

一、(1)语音信号的采集:利用Windows下的录音机,录制一段话音。然后

在Matlab软件平台下,利用函数wavread对语音信号进行采样,播放语音信号,并绘制原始语音信号;

改变采样率为原来的1/2倍,1/4倍,1/20倍,1/50倍,1/100倍等,分别画出降采样前后的信号波形和频谱图,分析采样前后信号的变化。

程序:

y=wavread('a.wav');

>> [y,fs,bits]=wavread('a.wav'); >> y1=wavread('a.wav',1000);

>> y2=wavread('a.wav',[500,1500]);

>> subplot(311);plot(y);title('读a的信号图');

>> subplot(312);plot(y1);title('读取前1000点的采样值放在向量y中');

>> subplot(313);plot(y2);title('读取从500点到1500点的采样值放在向量y中');

y=wavread('a.wav');

>> [y,fs,bits]=wavread('a.wav');

>> y11=resample(y,1,2); %采样率变为原来的1/2倍 y12=fft(y11);

>> y21=resample(y,1,20);

>> y22=fft(y21);

>> subplot(211);plot(y11);title('采样率变为原来的1/2'); subplot(212);plot(abs(y12));title('采样率变为原来的1/2'); subplot(211);plot(y21);title('采样率变为原来的1/20');

>> subplot(212);plot(abs(22));title('采样率变为原来的1/20的频谱');

sound(y,22050,16); sound(y11,22050,16); 二、重构原信号:

降采样后,信号的采样率和采样点数同时变化。如采样率变为原来的1/2,即对原始信号每隔一个点采样。如果要恢复原始信号,即信号长度和采样率须变为原来同样大小。所以,必须对降采样后信号进行插值重构。

对采样后的真实语音信号进行插值重构,滤波,恢复原始信号。画出插值前后信号的波形以及频谱图,并将重构后信号与原始信号进行比较。

f=2;fs=22050; >> k=1:22050;

>> x=wavread('a.wav');

>> [x,fs,bits]=wavread('a.wav'); >> n=2;

y=zeros(1,n*length(x));

>> subplot(211);plot(x);title('原始信号'); y(1:n:length(y))=x;

>> subplot(212);plot(y);title('插值重构信号'); 差值信号的频谱

三、对原始信号加入噪声和频谱分析: 对原始语音信号加入

s=sin(2*pi*f*Ts*n)

的噪声,采样后可知Fs = 16000,选择f = 2500,播放加入噪声信号的语音信号,并绘制噪声信号和含噪语音信号;

function noise fs=16000;

[x,fs,bits]=wavread('a.wav'); X=abs(fftshift(fft(x)));

subplot(321);plot(x);title('?-ê?D?o?2¨D?'); t=(0:length(x)-1)/16000; f=fs*(0:1023)/2048; c1=0.01*sin (2*pi*5000*t); k=1:1024;

x=zeros(1,k*length(c1)); x(1:k:length(x))=c1; yn=x+c1;

Yn=abs(fftshift(fft (yn))); N=1;1000;

subplot(322);plot((-N/2:N/2-1)/length(k)*fs,X);title('原始信号频谱'); subplot(323);plot(yn);title('带噪声信号波形');

subplot(324);plot((-N/2:N/2-1)/length(k)*fs,Yn);title('′带噪声信号频谱');

四、设计滤波器:

计算滤波器的性能指标,设计滤波器,绘制滤波器的特性曲线;

设计一个Buttordworth高通数字滤波器,通带边界频率为3000Hz,阻带边界频率为

2000Hz,通带波纹小于1dB,阻带衰减大于20dB,采样频率为10000Hz。假设一个信号

x(t)?sin2?f1t?0.5cos2?f2t,其中f1=100Hz,f2=4000Hz。试将原信号与通过该滤波器

的输出信号进行比较。

function gaoba

Fs=10000; %采样频率

wp=3000*2/Fs;ws=2000*2/Fs; %根据采样频率将滤波器边界频率进行转换 Rp=1;Rs=20; %通带波纹和阻带衰减

Nn=128; %显示滤波器频率特性的数据长度

[N,Wn]=buttord(wp,ws,Rp,Rs); %求得数字滤波器的最小阶数和截止频率(归一化频率) [b,a]=butter(N,Wn,'high'); %设计Butterworth高通数字滤波器 figure(1)

[H,f]=freqz(b,a,Nn,Fs); %用Nn点绘出频率特性 subplot(2,1,1),plot(f,20*log10(abs(H))); xlabel('频率/Hz');ylabel('振幅/dB');grid on; subplot(2,1,2),plot(f,180/pi*unwrap(angle(H))) xlabel('频率/Hz');ylabel('相位/^o');grid on; n=0:127;

dt=1/Fs;t=n*dt; %时间序列 f1=10;f2=400; %输入信号频率

x=sin(2*pi*f1*t)+0.5*cos(2*pi*f2*t); %输入信号 figure(2)

subplot(2,1,1),plot(t,x); title('输入信号') %绘制输入信号 y=filter(b,a,x); %对输入信号进行滤波

subplot(2,1,2),plot(t,y),title('输出信号') %绘制输出信号 xlabel('时间/s')

程序输出结果如下图,可看出所设计滤波器在大于3000Hz为通带,其衰减均小于1dB;在小于2000Hz为阻带,其衰减大于20dB,完全符合设计要求,但相频特性是非线性的。当滤波器输入100Hz和4000Hz两种信号后,滤波器滤除了100Hz的信号,使得4000Hz的信号通过滤波器,起到滤波的效果。


语音信号处理 实验 数字信号处理 傅里叶变换 DTFT.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:口语交际练习题及答案六

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: