matlab的语音信号频谱分析.docx

上传人:b****6 文档编号:6386651 上传时间:2023-01-05 格式:DOCX 页数:16 大小:17.86KB
下载 相关 举报
matlab的语音信号频谱分析.docx_第1页
第1页 / 共16页
matlab的语音信号频谱分析.docx_第2页
第2页 / 共16页
matlab的语音信号频谱分析.docx_第3页
第3页 / 共16页
matlab的语音信号频谱分析.docx_第4页
第4页 / 共16页
matlab的语音信号频谱分析.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

matlab的语音信号频谱分析.docx

《matlab的语音信号频谱分析.docx》由会员分享,可在线阅读,更多相关《matlab的语音信号频谱分析.docx(16页珍藏版)》请在冰豆网上搜索。

matlab的语音信号频谱分析.docx

matlab的语音信号频谱分析

实验一

[y,fs,bit]=wavread('Ido')%读取音乐片段,fs是采样率

size(y)%求矩阵的行数和列数

y1=y(:

1);%对信号进展分列处理

n1=length(y1);%取y的长度

t1=(0:

n1-1)/fs;%设置波形图横坐标

figure

subplot(2,1,1);

plot(t1,y1);%画出时域波形图

ylabel('幅值');

xlabel('时间〔s〕');

title('信号波形');

subplot(2,1,2);

Y1=fft(y1);

w1=2/n1*(0:

n1-1);%设置角频率

plot(w1,abs(Y1));%画频谱图

title('信号频谱');

xlabel('数字角频率');

ylabel('幅度');

gridon;

sound(y,fs);

实验二

[y,fs,bit]=wavread('Ido')

y1=y(:

1);

n1=length(y1);

D=2;%设置抽样间隔

y2=y1(1:

D:

n1);%减抽样

n2=length(y2);%减抽样后信号长度

t2=(0:

n2-1)/fs;%设置横坐标

figure

subplot(2,2,1);

plot(t2,y2);%绘制减抽样信号波形图

ylabel('幅度');

xlabel('时间〔s〕');

title('2:

1减抽样信号波形');

Y2=fft(y2);%对y2进展n2点fft谱分析

w2=2/n2*[0:

n2-1];

subplot(2,2,3);

plot(w2,abs(Y2));%绘制减抽样信号频谱图

title('2:

1减抽样信号频谱');

xlabel('数字角频率w');

ylabel('幅度');

gridon;

sound(y2,fs/D);

D=5;%设置抽样间隔

y3=y1(1:

D:

n1);%减抽样

n3=length(y3);%减抽样后信号长度

t3=(0:

n3-1)/fs;%设置横坐标

subplot(2,2,2);

plot(t3,y3);%绘制减抽样信号波形图

ylabel('幅度');

xlabel('时间〔s〕');

title('5:

1减抽样信号波形');

Y3=fft(y3);%对y2进展n2点fft谱分析

w3=2/n3*[0:

n3-1];

subplot(2,2,4);

plot(w3,abs(Y3));%绘制减抽样信号频谱图

title('5:

1减抽样信号频谱');

xlabel('数字角频率w');

ylabel('幅度');

gridon;

sound(y3,fs/D)

实验三

[y,fs,bit]=wavread('Ido')

y1=y(:

1);

n1=length(y1);

n3=0:

n1-1;

b1=cos(0.75*pi*n3);%设置调制信号

b2=cos(0.5*pi*n3);

c1=b1'.*y1;%对原信号进展调制

c2=b2'.*y1;

lc1=length(c1);

t=(0:

lc1-1)/fs;

figure%用载波对信号进展调制,并对其做fft变换

subplot(2,2,1)%获取频谱,从图中可以观察到,调制后的

plot(t,c1);%信号频谱发生搬移

xlabel('时间(s)');

ylabel('幅度');

title('调制后信号');

subplot(2,2,2)%获取频谱,从图中可以观察到,调制后的

plot(t,c2);%信号频谱发生搬移

xlabel('时间(s)');

ylabel('幅度');

title('调制后信号');

w1=2/lc1*[0:

lc1-1];%设置角频率W

C1=fft(c1);

C2=fft(c2);

subplot(2,2,3)

plot(w1,abs(C1));

xlabel('数字角频率w');

ylabel('幅度');

title('调制后信号的频谱(高频率调制)');

gridon;

subplot(2,2,4)

plot(w1,abs(C2));

xlabel('数字角频率w');

ylabel('幅度');

title('调制后信号的频谱(低频率调制)');

gridon;

sound(c1,fs);

实验四

clearall;cla;closeall

[a,fs,bit]=wavread('Ido');

y1=a(:

1);%去单列数据进展分析

f1=fft(y1);

n=length(f1);

tn=(0:

n-1)/fs;

w=2/n*[0:

n-1];

%sound(y1,fs);

figure

(1)

subplot(2,3,1);plot(tn,y1);

gridon;

title('音频');

xlabel('时间');

ylabel('幅度');

subplot(2,3,4);plot(w,abs(f1));

gridon;

title('频谱');

xlabel('频率/pi');

ylabel('幅度');

t=[0:

n-1];

y2=cos(pi*1/2*t);%载波函数

y3=y1.*y2';%信号调制

ty3=(0:

length(y3)-1)/fs;

subplot(2,3,2);plot(ty3,y3);%绘制调制后信号波形图

gridon;

title('AM调制音频信号');

xlabel('时间');

ylabel('幅度');

f3=fft(y3);

n2=length(f3);

w2=2/n2*[0:

n2-1];

subplot(2,3,5);plot(w2,abs(f3));%绘制调制后信号频谱图

gridon;

title('AM调制频谱');

xlabel('频率/pi');

ylabel('幅度');

%解调后信号

n3=length(y3)

t2=0:

n3-1;

y4=cos(pi*1/2*t2)

y5=y3.*y4';%解调后的信号函数

subplot(2,3,3);plot(t2,y5);

gridon;

xlabel('时间');

ylabel('幅度');

title('AM解调音频信号');

f5=fft(y5);

w3=2/n3*[0:

n3-1];

subplot(2,3,6);plot(w3,abs(f5));%绘制解调后信号频谱图

gridon;

title('AM解调频谱');

xlabel('频率/pi');

ylabel('幅度');

%设计巴特沃斯滤波器进展滤波去噪

[N1,wc1]=buttord(0.05,0.17,1,15);%确定低通滤波器的阶数和截止频率;

[b,a]=butter(N1,wc1);%确定低通滤波器分子分母系数

[H,W]=freqz(b,a);

figure

(2)

plot(W,abs(H));%低通滤波器波形

xlabel('w');

ylabel('H');

title('低通滤波器波形');

m=filter(b,a,y5);

wavplay(m,fs);

lm=length(m);%滤波后信号长度

tm=(0:

lm-1)/fs;%设置横坐标

wm=2/lm*[0:

lm-1];

M=fft(m);

figure(3)

subplot(2,1,1);plot(tm,m);

gridon;

title('滤波后波形');

xlabel('t');

ylabel('幅度');

subplot(2,1,2);plot(wm,abs(M));

title('滤波后波形频谱图');

xlabel('w/pi');

ylabel('幅度');

%矩形窗和布莱克曼窗

N=33;wc=0.3*pi;%基于经历的指标,其中N为理想低通滤波器阶数,wc为截止频率

hd=ideal(N,wc);%调用理想低通滤波器函数

w1=boxcar(N);%产生各种窗函数

w2=blackman(N);

h1=hd.*w1';%加窗设计各种FIR滤波器

h2=hd.*w2';

th1=(0:

32)/fs;

th2=(0:

32)/fs;

M=21184;

fh1=fft(h1,M);%矩形窗频谱函数

w=2/M*[0:

M-1];

fh2=fft(h2,M);%布莱克曼窗频谱函数

figure(4)

subplot(2,2,1);plot(th1,h1)

title('矩形窗时域');

subplot(2,2,2);plot(w,abs(fh1));

title('矩形窗频域');

subplot(2,2,3);plot(th2,h2);

title('布莱克曼窗时域');

subplot(2,2,4);plot(w,abs(fh2));

title('布莱克曼窗频域')

%解调后信号

n3=length(y3)

t2=0:

n3-1;

y4=cos(pi*1/2*t2)

y5=y3.*y4';%调制后的信号函数

figure

%滤波处理

y6=conv(h1,y5);%用矩形窗对调制后信号进展滤波

f6=fft(y6);

n4=length(f6);

ty6=(0:

n4-1)/fs;

w3=2/n4*[0:

n4-1];

%sound(y6,fs);

figure(5)

subplot(2,2,1);plot(ty6,y6);

title('矩形窗滤波后音频')

subplot(2,2,2);plot(w3,abs(f6));

title('矩形窗滤波后频谱')

y7=conv(h2,y5);%用布莱克曼窗进展滤波

f7=fft(y7);

n5=length(f7);

ty7=(0:

n5-1)/fs;

w4=2/n5*[0:

n5-1];

%sound(y7,fs);

subplot(2,2,3);plot(ty7,y7);

title('布莱克曼窗滤波后音频')

subplot(2,2,4);plot(w4,abs(f7));

title('布莱克曼窗滤波后频谱')

实验五

clc;clear;close;

[y,fs,bit]=wavread('Ido');

y0=y(:

1);

l=length(y0);

%加三余弦混合噪声

t0=(0:

l-1)/fs;

d0=[0.05*cos(2*pi*3000*t0)]';

t1=(0:

l-1)/fs;

d1=[0.05*cos(2*pi*5000*t1)]';

t2=(0:

l-1)/fs;

d2=[0.05*cos(2*pi*8000*t2)]';

noise=d2+d1+d0;

y1=y0+noise;

%sound(y1,fs);

a=length(noise);%绘制三余弦噪声音频图

wa=2/a*[0:

a-1];

Noise=fft(noise);

figure

(1)

subplot(2,3,4);

plot(noise(1:

150));

xlabel('时间〔s〕')

ylabel('幅值')

title('三余弦信号音谱')

subplot(2,3,1);%绘制三余弦噪声频谱图

plot(wa,abs(Noise));

gridon;

xlabel('W')

title('噪声频谱')

w0=2/l*[0:

l-1];%绘制加噪信号音频

Y1=fft(y1);

subplot(2,3,5)

plot(w0,abs(Y1));

gridon;

xlabel('W')

title('加噪信号频谱')

ly1=length(y1);

ty1=(0:

ly1-1)/fs;

subplot(2,3,2);plot(ty1,y1);

xlabel('时间〔s〕')

ylabel('幅值')

title('加噪信号音谱')

m=rand(l,1)-0.5;

lm=length(m);

y2=m+y0;%将噪声信号与原声音信号叠加

wm=2/lm*[0:

lm-1];

M=fft(m);

figure

(2)

subplot(2,2,3);

plot(m(1:

150))

xlabel('时间〔s〕')

ylabel('幅值')

title('白噪信号音谱')

subplot(2,2,1);

plot(wm,abs(M));

gridon;

xlabel('W')

title('噪声频谱')

l=length(y2);

ty2=(0:

l-1)/fs;

w=2/l*[0:

l-1];

Y2=fft(y2);

subplot(2,2,4)

plot(w,abs(Y2));

gridon;

xlabel('W')

title('加噪信号频谱')

subplot(2,2,2);plot(ty2,y2);

xlabel('时间〔s〕')

ylabel('加噪信号幅值')

title('加噪信号音谱');

%设计滤波器进展滤波去噪

[N1,wc1]=buttord(0.04,0.17,1,30);%确定低通滤波器的阶数和截止频率;

[b,a]=butter(N1,wc1);%确定低通滤波器分子分母系数

m=filter(b,a,y1);%用滤波器滤除三余弦噪声

sound(m,fs);

lm=length(m);%滤波后信号长度

tm=(0:

lm-1)/fs;%设置横坐标

figure

(1);

subplot(2,3,3);

plot(tm,m);%绘制滤波后的波形

xlabel('t(s)')

ylabel('信号幅值')

title('去噪后信号波形');

k=fft(m);%滤波后的波形做离散傅里叶变换

w=2*[0:

length(k)-1]/length(k);

subplot(2,3,6)

plot(w,abs(k));

xlabel('w/pi')

ylabel('幅度k')

title('IIR滤波器滤波后信号频谱');

实验六.一

clearall;clc

[y,fs,bit]=wavread('Ido');

size(y)%查看读取信号的声道类型

y1=y(:

1);%对信号进展分列处理

n=length(y1);%求信号y1的的长度

t1=(0:

n-1)/fs;

f1=fft(y1);%对y1进展fft谱分析

w=2/n*[0:

n-1];%w为连续频谱的数字角频率横坐标

%sound(y,fs);%播放音乐信号

figure

(1)

subplot(2,1,1);plot(t1,y1);

title('音乐信号的波形');

xlabel('t');

ylabel('y1');

subplot(2,1,2);plot(w,abs(f1));

title('音乐信号的频谱');

xlabel('w');

ylabel('f1');

%用IIR滤波器滤波〔低〕

[n2,wc2]=buttord(0.15,0.20,1,15);%确定低通滤波器的阶数和截止频率;

[B2,A2]=butter(n2,wc2);%确定低通滤波器分子分母系数

[H,W]=freqz(B2,A2);

figure

(2)

subplot(2,3,1);

plot(W,abs(H));%低通滤波器波形

xlabel('w')

ylabel('H')

title('低通滤波器波形');

m2=filter(B2,A2,y1);%滤波

lm2=length(m2);

tm2=(0:

lm2-1)/fs;

subplot(2,3,2)

plot(tm2,m2);

xlabel('n')

ylabel('信号幅值')

title('低通滤波后波形');

k2=fft(m2);%滤波后的波形做离散傅里叶变换

l2=length(k2);

w2=2*[0:

l2-1]/l2;

subplot(2,3,3);

plot(w2,abs(k2));

xlabel('数字角频率w')

ylabel('幅度')

title('低通滤波后频谱');%解调滤波后的频谱

%用IIR滤波器滤波〔高〕

[N,WC]=buttord(0.15,0.20,1,15);%确定高通滤波器的阶数和截止频率;

[B,A]=butter(N,WC,'high');%确定高通滤波器分子分母系数

[H1,W1]=freqz(B,A);

subplot(2,3,4);

plot(W1,abs(H1));%高通滤波器波形

xlabel('w1')

ylabel('H1')

title('高通滤波器波形');

m=filter(B,A,y1);%滤波

lm=length(m);

tm=(0:

lm-1)/fs;

subplot(2,3,5);

plot(tm,m);

xlabel('n')

ylabel('信号幅值m')

title('高通滤波后波形');

k=fft(m);

l2=length(k);

w2=2*[0:

l2-1]/l2;

subplot(2,3,6);

plot(w2,abs(k));

xlabel('数字角频率w')

ylabel('幅度k')

title('IIR高通滤波后频谱');

实验六.二

clearall;clc

[a,fs1,bit1]=wavread('Ido');

[b,fs2,bit2]=wavread('风声');

size(b)%查看读取信号的声道类型

y2=b(:

1);%对信号进展分列处理

n2=length(y2);%求信号y2的的长度

t2=(0:

n2-1)/fs2;

f2=fft(y2);

w2=2/n2*[0:

n2-1];

%wavplay(y2,fs2);

size(a)%查看读取信号的声道类型

y1=a(:

1);%对信号进展分列处理

n1=length(y1);

t1=(0:

n1-1)/fs1;

f1=fft(y1);

w1=2/n1*[0:

n1-1];%w为连续频谱的数字角频率横坐标

%wavplay(y1,fs1);

Fy1=abs(f1);%音乐1的幅度

Ay1=angle(f1);%音乐1的相位

Fy2=abs(f2);%音乐2的幅度

Ay2=angle(f2);%音乐2相位

F1=Fy1.*exp(j*Ay2);%音乐1的幅度与音乐2的相位穿插组合

X1=ifft(F1);

n3=length(X1);

tx1=(0:

(n3-1))/fs1;

w3=2/n3*[0:

n3-1];

%wavplay(real(X1),fs1);

F2=Fy2.*exp(j*Ay1);%幅度相位穿插组合

X2=ifft(F2);

n4=length(X2);

tx2=(0:

(n4-1))/fs2;

w4=2/n4*[0:

n4-1]

%wavplay(real(X2),fs2);

figure

(1)

subplot(2,1,1);plot(t1,y1);%绘制信号1波形

title('音乐信号1的波形');

xlabel('t');

ylabel('y1');

subplot(2,1,2);

plot(w1,abs(f1));%绘制音乐信号1的频谱

title('%音乐信号1的频谱');

xlabel('w');

ylabel('f1');

figure

(2)

subplot(2,1,1);plot(t2,y2);

title('音乐信号2的波形');

xlabel('t');

ylabel('y2');

subplot(2,1,2);plot(w2,abs(f2));

title('音乐信号2的频谱');

xlabel('w');

ylabel('f2');

figure(3)

subplot(2,1,1);plot(tx1,X1);

title('音乐1的幅度与音乐2的相位穿插组合后的波形');

xlabel('t');

ylabel('X1');

subplot(2,1,2);plot(w3,abs(F1));

title('音乐1的幅度与音乐2的相位穿插组合后的频谱');

xlabel('w');

ylabel('F1');

figure(4)

subplot(2,1,1);plot(tx2,X2);

title('音乐2的幅度与音乐1的相位穿插组合后的波形');

xlabel('t');

ylabel('X2');

subplot(2,1,2);plot(w4,abs(F2));

title('音乐2的幅度与音乐1的相位穿插组合后的频谱');

xlabel('w');

ylabel('F2');

 

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

当前位置:首页 > 经管营销 > 生产经营管理

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

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