数字信号Matlab作业Word格式.docx
《数字信号Matlab作业Word格式.docx》由会员分享,可在线阅读,更多相关《数字信号Matlab作业Word格式.docx(25页珍藏版)》请在冰豆网上搜索。
![数字信号Matlab作业Word格式.docx](https://file1.bdocx.com/fileroot1/2022-11/20/a8d25740-b80a-403a-b0c8-afaa8604617a/a8d25740-b80a-403a-b0c8-afaa8604617a1.gif)
横轴为时间,纵轴为频率,灰度值大小表示功率谱值的大小。
(提示,可以采用spectrogram函数)
(5)选做:
分析自己的语音频谱特点,比如中英文发音的区别。
1.求原始语音信号的特征频带
代码:
clc
clearall
File=('
I:
\Matlab大作业\work.wav'
)
[Y1,Fs,nbits]=wavread(File);
Y1=Y1(:
1)'
;
%取双声道中的一个声道
l=length(Y1);
Y=Y1(1:
l);
Fs=44100;
figure
(1),
plot(Y);
title('
原声音信号波形'
fori=1:
18;
x=Y(Fs*(i-1)+1:
Fs*i);
z=fft(x,Fs);
功率谱%p=z.*conj(z)/Fs;
figure(i);
plot(p);
xlabel('
频率Hz'
ylabel('
功率'
axis([0250001]);
end
1.1原始语音信号
原声音信号波形0.5
0.40.30.20.10-0.1-0.2-0.3-0.4-0.501234567895x10
1.2以1秒为时间间隔,求出17秒的语音信号的功率谱如下:
1
0.90.80.70.6率0.5功0.40.30.20.100200400600800100012001400160018002000220024002500Hz频率1
0.90.80.70.6率0.5功0.40.30.20.100200400600800100012001400160018002000220024002500Hz频率
0.90.80.70.6率0.5功0.40.30.20.100200400600800100012001400160018002000220024002500Hz率频
2.根据语音信号频谱特点,设计FIR或IIR滤波器,分别画出滤波器幅频和相频特性曲线。
%==========低通滤波器==========%
fp=1300;
fs=1500;
%输入给定指标
%用窗函数法设计滤波器
wc=(fp+fs)/Fs;
%理想低通滤波器截止频率(关于pi归一化)
B=2*pi*(fs-fp)/Fs;
%过渡带宽度指标
N=ceil(12*pi/B);
%blackman窗的长度N
h1=fir1(N-1,wc,'
low'
blackman(N));
%用窗函数法设计法的绘图部分
[h11,w1]=freqz(h1,1);
figure
(2)
subplot(2,1,1);
plot(w1*Fs/pi/2,20*log10(abs(h11)));
低通滤波器'
);
gridon;
axis([0,2500,-150,10]);
xlabel('
频率/Hz'
ylabel('
幅度/dB'
subplot(2,1,2)
plot(w1*Fs/pi/2,angle(h11));
axis([0,1000,-4,4]);
角度/rad'
%sound(ywt,Fs);
%==========高通滤波器==========%
fp=300;
fs=100;
%窗函数法设计滤波器
%理想高通滤波器截止频率(关于pi归一化)
B=2*pi*(fp-fs)/Fs;
h2=fir1(N-1,wc,'
high'
%=====以下为绘图部分=====
[h22,w2]=freqz(h2,1);
figure(3)
plot(w2*Fs/pi/2,20*log10(abs(h22)));
高通滤波器'
axis([0,1000,-100,20]);
plot(w2*Fs/pi/2,angle(h22));
axis([0,1000,-4,4]);
%========语音信号经过低通和高通滤波器========
Y_L=filter(h1,1,Y);
%sound(Y_L,Fs);
Y_H=filter(h2,1,Y);
%sound(Y_H,Fs);
Y_N=filter(h2,1,Y_L);
%sound(Y_N,Fs);
%========原始语音信号的频谱图========
DFT=fft(Y,Fs);
DFT=DFT./max(DFT);
figure(4),plot(abs(DFT));
axis([01000000.5]);
grid;
%========语音信号经过低通滤波器后的频谱图========
DFT_L=fft(Y_L,Fs);
DFT_L=DFT_L./max(DFT_L);
figure(5),plot(abs(DFT_L));
axis([0200000.8]);
%========语音信号经过高通滤波器后的频谱图========
DFT_H=fft(Y_H,Fs);
DFT_H=DFT_H./max(DFT_H);
figure(6),plot(abs(DFT_H));
axis([0800000.7]);
%========语音信号经过带通滤波器后的频谱图========
DFT_N=fft(Y_N,Fs);
DFT_N=DFT_N./max(DFT_N);
figure(7),plot(abs(DFT_N));
axis([0200001]);
grid;
(1)用布莱克曼窗FIR滤波器,画出低通滤波器的幅频和相频特性曲线如下:
低通滤波器
0-50Bd/度幅-100-15005001000150020002500/Hz率频4
2dar0/度角-2-401002003004005006007008009001000/Hz频率
低通滤波器的幅频和相频特性曲线
滤波器的设计参数:
通带截止频率fp=1300Hz;
阻带截止频率fs=1500Hz;
(2)绘制出高通滤波器的幅频和相频特性曲线如下:
高通滤波器20
0-20Bd/-40度幅-60-80-10001002003004005006007008009001000/Hz率频4
高通滤波器的幅频和相频特性曲线
通带截止频率fp=300Hz;
阻带截止频率fs=100Hz;
)滤波前信号的频谱图3(.
0.5
0.450.40.350.30.250.20.150.10.050010002000300040005000600070008000900010000)经过低通滤波器后的语音信号频谱图(40.8
0.70.60.50.40.30.20.100200400600800100012001400160018002000
从图像可以看出,原始声音经过低通滤波器后,语音信号的幅度基本不变,滤波器把信号高频部分滤掉了,只剩下低频部分。
用sound函数回放语音信号,发现原始声音信号比滤波后声音信号清晰,滤波后声音显得很低沉。
.
(5)经过高通滤波后的语音信号频谱图
0.60.50.40.30.20.10010002000300040005000600070008000
从图像可以看出,原始声音经过高通滤波器后,语音信号的频率基本不变,但一部分噪声已经被滤掉,用sound函数回放语音信号,发现原始声音信号与高通滤波后信号差别很小,但是声音变得清晰,说明一部分噪声已被滤掉。
)经过带通滤波器后的语音信号频谱图6(.
0.90.80.70.60.50.40.30.20.100200400600800100012001400160018002000
从图像可以看出,原始声音经过带通滤波器后,高频部分被滤掉,部分噪声被滤掉,用sound函数回放语音信号,原始声音信号比滤波后声音信号清晰,滤波后声音比原始声音低沉,但比经过低通滤波器后的清亮。
(3)求出特征频段语音信号随时间变化的曲线(每隔一定时间求一次功率谱,连接成曲线,即短时FFT)。
我选取了语音信号出现较多的峰值对应的频率f=300Hz,500Hz,750Hz,900Hz,1000Hz,1200Hz,每隔0.1秒做功率谱,求出奇在0~17秒内的功率谱的变化情况,绘制出如下曲线:
I=[300,500,750,900,1000,1200];
%功率谱峰值位置
p1=zeros;
p2=zeros;
p3=zeros;
p4=zeros;
p5=zeros;
p6=zeros;
170;
S=Y(Fs/10*(i-1)+1:
Fs/10*i);
z=fft(S,Fs);
z1=z(I
(1));
z2=z(I
(2));
z3=z(I(3));
z4=z(I(4));
z5=z(I(5));
z6=z(I(6));
p1(i)=z1.*conj(z1)/Fs;
%功率谱
p2(i)=z2.*conj(z2)/Fs;
p3(i)=z3.*conj(z3)/Fs;
p4(i)=z4.*conj(z4)/Fs;
p5(i)=z5.*conj(z5)/Fs;
p6(i)=z6.*conj(z6)/Fs;
w=0:
17/(170-1):
17;
figure;
plot(w,p1);
秒(s)'
title('
300Hz功率谱变化图像'
plot(w,p2);
500Hz功率谱变化图像'
plot(w,p3);
750Hz功率谱变化图像'
plot(w,p4);
900Hz功率谱变化图像'
plot(w,p5);
1000Hz功率谱变化图像'
plot(w,p6);
1200Hz功率谱变化图像'
300Hz功率谱变化图像0.1
0.090.080.070.060.050.040.030.020.010024681012141618(s)秒
500Hz功率谱变化图像0.04
0.0350.030.0250.020.0150.010.0050024681012141618(s)秒
750Hz功率谱变化图像0.07
0.060.050.040.030.020.010024681012141618(s)秒
900Hz功率谱变化图像0.16
0.140.120.10.080.060.040.020024681012141618(s)秒
1000Hz功率谱变化图像0.1
1200Hz功率谱变化图像0.06
0.050.040.030.020.010024681012141618(s)秒4)语谱图:
(代码:
win=window(@blackman,Fs);
figure,spectrogram(Y,win,2500,Fs,Fs);
(5)分析自己的语音频谱特点,比如中英文发音的区别。
我的声音频率主要集中在300~1500Hz附近,原始声音信号经过滤波后,声音信号变得低沉,但英文发音部分比中文部分更弱,说明中文发音主要集中在低频段,英文发音集中在高频段。