MATLAB地语音信号频谱分析报告

MATLAB地语音信号频谱分析报告
MATLAB地语音信号频谱分析报告

实用标准

文档大全

0123456

-1

-0.5

0.5

1

时间(s)

信号波形

00.20.40.60.81 1.2 1.4 1.6 1.82

2000

4000

6000

信号频谱

数字角频率

0123

-1

-0.5

0.5

1

时间(s)

2:1减抽样信号波

00.51 1.52

1000

2000

3000

2:1减抽样信号频谱

数字角频率w

00.51 1.5

-1

-0.5

0.5

1

时间(s)

5:1减抽样信号波

00.51 1.52

500

1000

5:1减抽样信号频谱

数字角频率w

实验一

[y,fs,bit]=wavread('I do')%读取音乐片段,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('幅度');

grid on;

sound(y,fs);

实验二

[y,fs,bit]=wavread('I do')

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('幅度');

grid on;

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('幅度');

grid on;

sound(y3,fs/D)

实验三

[y,fs,bit]=wavread('I do')

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('调制后信号');

510

-1-0.500.5

1音频

时间幅

120

2000

4000

6000频谱

频率/pi

幅度

510

-1-0.500.5

1AM 调制音频信号时间幅度

12

1000

2000

3000AM 调制频谱频率/pi

幅度

24

x 10

5

-1-0.500.5

1时间

幅度

AM 解调音频信

号0

12

1000

2000

3000AM 解调频谱频率/pi

幅度

246

-1

-0.5

00.51时间(s)幅度

调制后信号

2

4

6

-1-0.500.51时间(s)

幅度

调制后信号

00.51 1.52

10002000

3000数字角频率w

幅度

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

0.51 1.52

1000

20003000数字角频率w

幅度

调制后信号的频谱(低频率调制)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('调制后信号的频谱(高频率调制)');

grid on ; subplot(2,2,4) plot(w1,abs(C2)); xlabel('数字角频率w');

ylabel('幅度');

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

grid on ; sound(c1,fs);

实验四

clear all ;cla;close all

[a,fs,bit]=wavread('I do'); 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); grid on ;

title('音频'); xlabel('时间'); ylabel('幅度');

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

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);%绘制调制后信号波形图 grid on ;

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

0.5

1

1.5

2

2.5

3

3.5

00.10.20.30.40.50.60.70.80.91w

H

低通滤波器波形

xlabel('时间'); ylabel('幅度'); f3=fft(y3); n2=length(f3); w2=2/n2*[0:n2-1];

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

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); grid on ;

xlabel('时间'); ylabel('幅度');

title('AM 解调音频信号'); f5=fft(y5);

w3=2/n3*[0:n3-1];

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

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);

2

4

68

x 10

-4

-0.1

00.10.20.3矩形窗时

00.51 1.52

0.511.5矩形窗频域

2468

x 10

-4

-0.1

00.10.2

0.3布莱克曼窗时

00.51 1.52

0.511.5布莱克曼窗频域

01

2

3456

-0.5

0.5

滤波后波形

t

幅度

00.20.40.60.8

1

1.2 1.4 1.6 1.82

1000

20003000滤波后波形频谱图

w/pi

幅度

grid on ;

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)

0100200

-0.100.1

0.20.3时间(s )幅值

三余弦信号音谱0

1

20

2000

4000

6000W

噪声频谱

1

2

2000

40006000W

加噪信号频谱0

510

-2

-1

012时间(s )幅值

加噪信号音谱0

510

-1-0.500.51t(s)

信号幅值

去噪后信号波形0

1

2

2000

40006000w/pi

幅度k

IIR 滤波器滤波后信号频谱

246

-0.500.5

1

矩形窗滤波后音频

00.51 1.52

1000

2000

3000矩形窗滤波后频

2

4

6

-0.5

0.5布莱克曼窗滤波后音频

00.51 1.52

1000

2000

3000布莱克曼窗滤波后频谱

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('I do'); 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)); grid on ; xlabel('W') title('噪声频谱')

w0=2/l*[0:l-1];%绘制加噪信号音频

Y1=fft(y1);

subplot(2,3,5)

plot(w0,abs(Y1));

grid on;

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; %产生幅度为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));

grid on;

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));

grid on;

xlabel('W')

title('加噪信号频谱')

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

xlabel('时间(s)')

ylabel('加噪信号幅值')

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

12

3

456

-1-0.5

00.51音乐信号的波形

t

y 1

00.20.40.60.8

1 1.

2 1.4 1.6 1.82

2000

4000

6000

音乐信号的频谱

w

f 1

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

[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 滤波器滤波后信号频谱');

实验六.一

clear all ;clc

[y,fs,bit]=wavread('I do'); 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);

240

0.51

1.5

w

H

低通滤波器波形0

510

-2

-10

1

n

信号幅值

低通滤波后波形012

2000

4000

6000

数字角频率w 幅度

低通滤波后频谱02400.51

1.5

w1H 1

高通滤波器波形

05

10

-2-1

12n 信号幅值m

高通滤波后波形012

200

400

600数字角频率w

幅度k

IIR 高通滤波后频谱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));

1

2

34

5

6

-0.4

-0.200.20.4音乐信号2的波形

t

y 2

00.20.4

0.60.8

1 1.

2 1.4 1.6 1.82

1000

2000

3000

音乐信号2的频谱

w

f 2

1

2

345

6

-1-0.500.51音乐信号1的波形

t

y 1

00.20.4

0.60.8

1 1.

2 1.4 1.6 1.82

2000

40006000%音乐信号1的频谱

w

f 1

xlabel('数字角频率w') ylabel('幅度k')

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

实验六.二

clear all ;clc

[a,fs1,bit1]=wavread('I do'); [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);

123456

-0.5

0.5

音乐2的幅度与音乐1的相位交叉组合后的波形

t

X 2

00.20.40.60.8

1 1.

2 1.4 1.6 1.82

1000

20003000

音乐2的幅度与音乐1的相位交叉组合后的频谱

w

F

2

123456

-2

-101

2音乐1的幅度与音乐2的相位交叉组合后的波形

t

X 1

00.20.40.60.8

1 1.

2 1.4 1.6 1.82

2000

40006000音乐1的幅度与音乐2的相位交叉组合后的频谱

w

F 1

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');

语音信号处理实验指导书

语音信号处理实验指导书 实验一 语音信号采集与简单处理 一、 实验目的、要求 (1)掌握语音信号采集的方法 (2)掌握一种语音信号基音周期提取方法 (3)掌握短时过零率计算方法 (4)了解Matlab 的编程方法 二、 实验原理 基本概念: (a )短时过零率: 短时内,信号跨越横轴的情况,对于连续信号,观察语音时域波形通过横轴的情况;对于离散信号,相邻的采样值具有不同的代数符号,也就是样点改变符号的次数。 对于语音信号,是宽带非平稳信号,应考察其短时平均过零率。 其中sgn[.]为符号函数 ?? ?? ?<=>=0 x(n)-1sgn(x(n))0 x(n)1sgn(x(n)) 短时平均过零的作用 1.区分清/浊音: 浊音平均过零率低,集中在低频端; 清音平均过零率高,集中在高频端。 2.从背景噪声中找出是否有语音,以及语音的起点。 (b )基音周期 基音是发浊音时声带震动所引起的周期性,而基音周期是指声带震动频率的倒数。基音周期是语音信号的重要的参数之一,它描述语音激励源的一个重要特征,基音周期信息在多个领域有着广泛的应用,如语音识别、说话人识别、语音分析与综合以及低码率语音编码,发音系统疾病诊断、听觉残障者的语音指导等。因为汉语是一种有调语言,基音的变化模式称为声调,它携带着非常重要的具有辨意作用的信息,有区别意义的功能,所以,基音的提取和估计对汉语更是一个十分重要的问题。 ∑--= -=1 )]1(sgn[)](sgn[21N m n n n m x m x Z

由于人的声道的易变性及其声道持征的因人而异,而基音周期的范围又很宽,而同—个人在不同情态下发音的基音周期也不同,加之基音周期还受到单词发音音调的影响,因而基音周期的精确检测实际上是一件比较困难的事情。基音提取的主要困难反映在:①声门激励信号并不是一个完全周期的序列,在语音的头、尾部并不具有声带振动那样的周期性,有些清音和浊音的过渡帧是很难准确地判断是周期性还是非周期性的。②声道共振峰有时会严重影响激励信号的谐波结构,所以,从语音信号中直接取出仅和声带振动有关的激励信号的信息并不容 易。③语音信号本身是准周期性的(即音调是有变化的),而且其波形的峰值点或过零点受共振峰的结构、噪声等的影响。④基音周期变化范围大,从老年男性的50Hz 到儿童和女性的450Hz ,接近三个倍频程,给基音检测带来了一定的困难。由于这些困难,所以迄今为止尚未找到一个完善的方法可以对于各类人群(包括男、女、儿童及不向语种)、各类应用领域和各种环境条件情况下都能获得满意的检测结果。 尽管基音检测有许多困难,但因为它的重要性,基音的检测提取一直是一个研究的课题,为此提出了各种各样的基音检测算法,如自相关函数(ACF)法、峰值提取算法(PPA)、平均幅度差函数(AMDF)法、并行处理技术、倒谱法、SIFT 、谱图法、小波法等等。 三、使用仪器、材料 微机(带声卡)、耳机,话筒。 四、 实验步骤 (1)语音信号的采集 利用Windows 语音采集工具采集语音信号,将数据保存wav 格式。 采集一组浊音信号和一组清音信号,信号的长度大于3s 。 (2)采用短时相关函数计算语音信号浊音基音周期,考虑窗长度对基音周期计算的影响。采用倒谱法求语音信号基音周期。 (3)计算短时过零率,清音和浊音的短时过零率有何区别。 五、实验过程原始记录(数据,图表,计算) 短时过零率 短时相关函数 P j j n s n s j R N j n n n n ,,1) ()()(1 =-=∑-= ∑--=-=10 )]1(sgn[)](sgn[21N m n n n m x m x Z

应用Matlab对含噪声语音信号进行频谱分析及滤波

应用Matlab对含噪声的语音信号进行频谱分析及滤波 一、实验内容 录制一段个人自己的语音信号,并对录制的信号进行采样;画出采样后语音信号的时域波形和频谱图;在语音信号中增加正弦噪声信号(自己设置几个频率的正弦信号),对加入噪声信号后的语音信号进行频谱分析;给定滤波器的性能指标,采用窗函数法和双线性变换设计数字滤波器,并画出滤波器的频率响应;然后用自己设计的滤波器对采集的信号进行滤波,画出滤波后信号的时域波形和频谱,并对滤波前后的信号进行对比试听,分析信号的变化。 二、实现步骤 1.语音信号的采集 利用Windows下的录音机,录制一段自己的话音,时间在1 s内。然后在Matlab软件平台下,利用函数wavread对语音信号进行采样,(可用默认的采样频率或者自己设定采样频率)。 2.语音信号的频谱分析 要求首先画出语音信号的时域波形;然后对语音号进行快速傅里叶变换,得到信号的频谱特性。 在采集得到的语音信号中加入正弦噪声信号,然后对加入噪声信号后的语音号进行快速傅里叶变换,得到信号的频谱特性。并利用sound试听前后语音信号的不同。

分别设计IIR和FIR滤波器,对加入噪声信号的语音信号进行去噪,画出并分析去噪后的语音信号的频谱,并进行前后试听对比。 3.数字滤波器设计 给出数字低通滤波器性能指标:如,通带截止频率fp=10000 Hz,阻带截止频率fs=12000 Hz(可根据自己所加入噪声信号的频率进行阻带截止频率设置),阻带最小衰减Rs=50 dB,通带最大衰减Rp=3 dB(也可自己设置),采样频率根据自己语音信号采样频率设定。

报告内容 一、实验原理 含噪声语音信号通过低通滤波器,高频的噪声信号会被过滤掉,得到清晰的无噪声语音信号。 二、实验内容 录制一段个人自己的语音信号,并对录制的信号进行采样;画出采样后语音信号的时域波形和频谱图;在语音信号中增加正弦噪声信号(自己设置几个频率的正弦信号),对加入噪声信号后的语音信号进行频谱分析;给定滤波器的性能指标,采用窗函数法和双线性变换设计数字滤波器,并画出滤波器的频率响应;然后用自己设计的滤波器对采集的信号进行滤波,画出滤波后信号的时域波形和频谱,并对滤波前后的信号进行对比试听,分析信号的变化。给出数字低通滤波器性能指标:如,通带截止频率fp=10000 Hz,阻带截止频率fs=12000 Hz (可根据自己所加入噪声信号的频率进行阻带截止频率设置),阻带最小衰减Rs=50 dB,通带最大衰减Rp=3 dB(也可自己设置),采样频率根据自己语音信号采样频率设定。 三、实验程序 1、原始信号采集和分析 clc;clear;close all; fs=10000; %语音信号采样频率为10000 x1=wavread('C:\Users\acer\Desktop\voice.wav'); %读取语音信号的数据,赋给x1 sound(x1,40000); %播放语音信号 y1=fft(x1,10240); %对信号做1024点FFT变换 f=fs*(0:1999)/1024; figure(1); plot(x1) %做原始语音信号的时域图形 title('原始语音信号'); xlabel('time n'); ylabel('fuzhi n'); figure(2); plot(f,abs(y1(1:2000))); %做原始语音信号的频谱图形 title('原始语音信号频谱') xlabel('Hz'); ylabel('fuzhi');

对正弦信号的采样频谱分析.doc

H a r b i n I n s t i t u t e o f T e c h n o l o g y 课程设计 课程名称:课程设计2 设计题目:对正弦信号的抽样频谱分析院系:电子与信息工程学院 班级:0805203 设计者:褚天琦 学号:1080520314 指导教师:郑薇 设计时间:2011-10-15 哈尔滨工业大学

一、题目要求: 给定采样频率fs,两个正弦信号相加,两信号幅度不同、频率不同。要求给定正弦信号频率的选择与采样频率成整数关系和非整数关系两种情况,信号持续时间选择多种情况分别进行频谱分析。 二、题目原理与分析: 本题目要对正弦信号进行抽样,并使用fft对采样信号进行频谱分析。因此首先对连续正弦信号进行离散处理。实际操作中通过对连续信号间隔相同的抽样周期取值来达到离散化的目的。根据抽样定理,如果信号带宽小于奈奎斯特频率(即采样频率的二分之一),那么此时这些离散的采样点能够完全表示原信号。高于或处于奈奎斯特频率的频率分量会导致混叠现象。设抽样周期为TS(抽样角频率为ωS),则 可见抽样后的频谱是原信号频谱的周期性重复,当信号带宽小于奈奎斯特频率的二分之一时不会产生频谱混叠现象。 因此,我们对采样频率的选择采取fs>2fo,fs=2fo,fs<2fo三种情况进行分析。对信号采样后,使用fft函数对其进行频谱分析。为了使频谱图像更加清楚,更能准确反映实际情况并接近理想情况,我们采用512点fft。取512点fft不仅可以加快计算速度,而且可以使频谱图更加精确。若取的点数较少,则会造成频谱较大的失真。 三、实验程序: 本实验采用matlab编写程序,实验中取原信号为 ft=sin(2πfXt)+2sin(10πfXt),取频率f=1kHz,实验程序如下: f=1000;fs=20000;Um=1; N=512;T=1/fs; t=0:1/fs:0.01; ft=Um*sin(2*pi*f*t)+2*Um*sin(10*pi*f*t); subplot(3,1,1); plot(t,ft);grid on; axis([0 0.01 1.1*min(ft) 1.1*max(ft)]); xlabel('t'),ylabel('ft'); title('抽样信号的连续形式'); subplot(3,1,2); stem(t,ft);grid on; axis([0 0.01 1.1*min(ft) 1.1*max(ft)]); xlabel('t'),ylabel('ft');

matlab语音信号采集与初步处理要点

《matlab与信号系统》实验报告 学院: 学号: 姓名: 考核实验——语音信号采集与处理初步 一、课题要求 1.语音信号的采集 2.语音信号的频谱分析 3.设计数字滤波器和画出频率响应 4.用滤波器对信号进行滤波 5.比较滤波前后语音信号的波形及频谱 6.回放和存储语音信号 (第5、第6步我放到一起做了) 二、语音信号的采集 本段音频文件为胡夏演唱的“那些年”的前奏(采用Audition音频软件进行剪切,时长17秒)。运行matlab软件,在当前目录中打开原音频文件所在的位置,采用wavread函数对其进行采样,并用sound函数可进行试听,程序运行之后记下采样频率和采样点。 利用函数wavread对语音信号的采集的程序如下: clear; [y,fs,bits]=wavread('music.wav'); %x:语音数据;fs:采样频率;bits:采样点数sound(y,fs,bits); %话音回放 程序运行之后,在工作区间中可以看到采样频率fs=44100Hz,采样点bits=16

三、语音信号的频谱分析 先画出语音信号的时域波形,然后对语音号进行快速傅里叶变换,得到信号的频谱特性。语音信号的FFT频谱分析的完整程序如下: clear; [y,fs,bits]=wavread('music.wav'); %x:语音数据;fs:采样频率;bits:采样点数sound(y,fs,bits); %话音回放 n = length (y) ; %求出语音信号的长度 Y=fft(y,n); %傅里叶变换 subplot(2,1,1); plot(y); title('原始信号波形'); subplot(2,1,2); plot(abs(Y)); title('原始信号频谱'); 程序结果如下图: 四、设计数字滤波器和画出频率响应 根据语音信号的特点给出有关滤波器的性能指标: 1)低通滤波器性能指标,fp=1000Hz,fc=1200 Hz,As=100dB,Ap=1dB; 2)高通滤波器性能指标,fc=4800 Hz,fp=5000 Hz As=100dB,Ap=1dB。

应用matlab对语音信号进行频谱分析及滤波.

数字信号处理 —综合实验报告 综合实验名称:应用MatLab对语音信号进行 频谱分析及滤波 系: 学生姓名: 班级: 学号: 成绩: 指导教师: 开课时间学年学期

目录 一.综合实验题目 (1) 二、综合实验目的和意义 (1) 2.1 综合实验目的 (1) 2.2 综合实验的意义 (1) 三.综合实验的主要内容和要求 (1) 3.2 综合实验的要求: (2) 四.实验的原理 (2) 4.1 数字滤波器的概念 (2) 4.2 数字滤波器的分类 (2) (1)根据单位冲激响应h(n)的时间特性分类 (2) 五.实验的步骤 (3) 下面对各步骤加以具体说明。 5.1语音信号的采集 (3) 5.2 语音信号的频谱分析; (3) 5.3 设计数字滤波器和画出其频率响应 (5) 5.3.1设计数字滤波器的性能指标: (5) 5.3.2 用Matlab设计数字滤波器 (6) 5.6 设计系统界面 (19) 六、心得体会 (20) 参考文献: (21)

一.综合实验题目 应用MatLab对语音信号进行频谱分析及滤波 二、综合实验目的和意义 2.1 综合实验目的 为了巩固所学的数字信号处理理论知识,使学生对信号的采集、处理、传输、显示和存储等有一个系统的掌握和理解,再者,加强学生对Matlab软件在信号分析和处理的运用 综合运用数字信号处理的理论知识进行频谱分析和滤波器设计,通过理论推导得出相应结论,再利用 MATLAB 作为编程工具进行计算机实现,从而加深对所学知识的理解,建立概念。 2.2 综合实验的意义 语言是我们人类所特有的功能,它是传承和记载人类几千年文明史,没有语言就没有我们今天人类的文明。语音是语言最基本的表现形式,是相互传递信息最重要的手段,是人类最重要、最有效、最常用和最方便的交换信息的形式。 语音信号处理属于信息科学的一个重要分支,大规模集成技术的高度发展和计算机技术的飞速前进,推动了这一技术的发展;它是研究用数字信号处理技术对语音信号进行处理的一门新兴学科,同时又是综合性的多学科领域和涉及面很广的交叉学科,因此我们进行语言信号处理具有时代的意义。 三.综合实验的主要内容和要求 3.1综合实验的主要内容: 录制一段个人自己的语音信号,并对录制的信号进行采样;画出采样后语音信号的时域波形和频谱图;给定滤波器的性能指标,采用窗函数法和双线性变换设计滤波器,并画出滤波器的频率响应;然后用自己设计的滤波器对采集的信号进行滤波,画出滤波后信号的时域波形和频谱,并对滤波前后的信号进行对比,分析信号的变化;回放语音信号;综合实验应完成的工作: (1)语音信号的采集; (2)语音信号的频谱分析;

用FFT对信号作频谱分析 实验报告

实验报告 实验三:用FFT 对信号作频谱分析 一、 实验目的与要求 学习用FFT 对连续信号和时域离散信号进行谱分析的方法,了解可能出现的分析误差及其原因,以便正确应用FFT 。 二、 实验原理 用FFT 对信号作频分析是学习数字信号处理的重要内容,经常需要进行分析的信号是模拟信号的时域离散信号。对信号进行谱分析的重要问题是频谱分辨率D 和分析误差。频谱分辨率直接和FFT 的变换区间N 有关,因为FFT 能够实现的频率分辨率是2π/N ,因此要求2π/N 小于等于D 。可以根据此式选择FFT 的变换区间N 。误差主要来自于用FFT 作频谱分析时,得到的是离散谱,而信号(周期信号除外)是连续谱,只有当N 较大时,离散谱的包络才能逼近连续谱,因此N 要适当选择大一些。 三、 实验步骤及内容(含结果分析) (1)对以下序列进行FFT 分析: x 1(n)=R 4(n) x 2(n)= x 3(n)= 选择FFT 的变换区间N 为8和16两种情况进行频谱分析,分别打印出幅频特性曲线,并进行讨论、分析与比较。 【实验结果如下】: n+1 0≤n ≤3 8-n 4≤n ≤7 0 其它n 4-n 0≤n ≤3 n-3 4≤n ≤7 0 其它 n

实验结果图形与理论分析相符。(2)对以下周期序列进行谱分析: x4(n)=cos[(π/4)*n]

x5(n)= cos[(π/4)*n]+ cos[(π/8)*n] 选择FFT的变换区间N为8和16两种情况进行频谱分析,分别打印出幅频特性曲线,并进行讨论、分析与比较。 【实验结果如下】: (3)对模拟周期信号进行频谱分析: x6(n)= cos(8πt)+ cos(16πt)+ cos(20πt) 选择采样频率Fs=64Hz,FFT的变换区间N为16、32、64三种情况进行频谱分析,分别打印出幅频特性曲线,并进行讨论、分析与比较。 【实验结果如下】:

基于matlab的语音信号的采集与处理

文档从互联网中收集,已重新修正排版,word格式支持编辑,如有帮助欢迎下载支持。 目录 第1章前言 ................................................................................................... 错误!未定义书签。第2章语音信号分析处理的目的和要求 ................................................... 错误!未定义书签。 2.1MATLAB软件功能简介................................................................. 错误!未定义书签。 2.2课程设计意义 .................................................................................. 错误!未定义书签。第3章语音信号的仿真原理..................................................................... 错误!未定义书签。第4章语音信号的具体实现..................................................................... 错误!未定义书签。 4.1语音信号的采集................................................................................ 错误!未定义书签。 4.2语音信号加噪与频谱分析................................................................ 错误!未定义书签。 4.3设计巴特沃斯低通滤波器................................................................ 错误!未定义书签。 4.4用滤波器对加噪语音滤波................................................................ 错误!未定义书签。 4.5比较滤波前后语音信号波形及频谱................................................ 错误!未定义书签。第5章总结................................................................................................... 错误!未定义书签。参考文献......................................................................................................... 错误!未定义书签。附录................................................................................................................. 错误!未定义书签。

语音信号处理实验报告

语音信号处理实验 班级: 学号: 姓名: 实验一基于MATLAB的语音信号时域特征分析(2学时)

1)短时能量 (1)加矩形窗 a=wavread('mike.wav'); a=a(:,1); subplot(6,1,1),plot(a); N=32; for i=2:6 h=linspace(1,1,2.^(i-2)*N);%形成一个矩形窗,长度为2.^(i-2)*N En=conv(h,a.*a);% 求短时能量函数En subplot(6,1,i),plot(En); if(i==2) ,legend('N=32'); elseif(i==3), legend('N=64'); elseif(i==4) ,legend('N=128'); elseif(i==5) ,legend('N=256'); elseif(i==6) ,legend('N=512'); end end

00.51 1.52 2.5 3 x 10 4 -1 1 x 10 4 024 x 10 4 05 x 10 4 0510 x 10 4 01020 x 10 4 02040 (2)加汉明窗 a=wavread('mike.wav'); a=a(:,1); subplot(6,1,1),plot(a); N=32; for i=2:6 h=hanning(2.^(i-2)*N);%形成一个汉明窗,长度为2.^(i-2)*N En=conv(h,a.*a);% 求短时能量函数En subplot(6,1,i),plot(En); if(i==2), legend('N=32'); elseif(i==3), legend('N=64'); elseif(i==4) ,legend('N=128');

音频信号的谱分析及去噪

课程设计任务书 课程设计学生日志

课程设计考勤表 课程设计评语表

音频信号的谱分析及去噪 一、研究背景:……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 二、设计方案…………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………

三、设计目的和意义 通过MATLAB编程,用FFT函数绘制出音频信号的频谱。用噪音去干扰音频信号,画出干扰后信号的频谱。这样观察对比,便可分析出噪声对音频信号的干扰。主要目的是通过设计FIR 数字滤波器滤除噪音信号,体会滤波器可提取有用信号消除干扰的作用。去噪,可以减少或消除信号传输过程中的干扰,从而达到有效传输。…………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 四、设计原理 1、FFT原理:运用快速傅里叶变换得信号的频谱,快速傅里叶变换是可以用计

算机编程实现的一种快速求得信号频谱的方法。在MATLAB 编程中可以直接调用FFT 函数。 2、FIR 数字滤波器的设计步骤: 1)将给定的数字滤波器性能指标转化成相应的模拟滤波器性能指标。 2)将模拟滤波器的性能指标变换成模拟低通滤波器的性能指标。 3)用所得的模拟低通滤波器的性能指标,利用某种模拟滤波器逼近方法,设计得出该滤波器。 低通滤波器的频率响应: 设计滤波器时主要考虑四个指标:通带截止频率、阻带起始频率、通带衰减、阻带衰减。 五、 详细设计步骤 1. 用Windows 附件中的录音机录制了一段歌曲,并且由MATLAB 中的FFT 函数绘制出它的频谱图和时域波形。 N=1024;%采样点数 fs=20000; %语音信号采样频率为20000 [x0,fs,NBTS]=wavread('d:\输入噪声\ly.wav'); % ly 为原始语音信号 [m0,n0]=size(x0); x0=wavread('d:\ 输 入 噪 声 \ly.wav'); %读取音频信号 sound(x0,fs); %播放音频信号 figure(1) 阻带 过渡带 通带

信号的频谱分析及MATLAB实现

第23卷第3期湖南理工学院学报(自然科学版)Vol.23 No.3 2010年9月 Journal of Hunan Institute of Science and Technology (Natural Sciences) Sep. 2010信号的频谱分析及MATLAB实现 张登奇, 杨慧银 (湖南理工学院信息与通信工程学院, 湖南岳阳 414006) 摘 要: DFT是在时域和频域上都已离散的傅里叶变换, 适于数值计算且有快速算法, 是利用计算机实现信号频谱分析的常用数学工具. 文章介绍了利用DFT分析信号频谱的基本流程, 重点阐述了频谱分析过程中误差形成的原因及减小分析误差的主要措施, 实例列举了MATLAB环境下频谱分析的实现程序. 通过与理论分析的对比, 解释了利用DFT分析信号频谱时存在的频谱混叠、频谱泄漏及栅栏效应, 并提出了相应的改进方法. 关键词: MA TLAB; 频谱分析; 离散傅里叶变换; 频谱混叠; 频谱泄漏; 栅栏效应 中图分类号: TN911.6 文献标识码: A 文章编号: 1672-5298(2010)03-0029-05 Analysis of Signal Spectrum and Realization Based on MATLAB ZHANG Deng-qi, YANG Hui-yin (College of Information and Communication Engineering, Hunan Institute of Science and Technology, Yueyang 414006, China) Abstract:DFT is a Fourier Transform which is discrete both in time-domain and frequency-domain, it fits numerical calculation and has fast algorithm, so it is a common mathematical tool which can realize signal spectrum analysis with computer. This paper introduces the basic process of signal spectrum analysis with DFT, emphasizes the causes of error producing in spectrum analysis process and the main ways to decrease the analysis error, and lists the programs of spectrum analysis based on MATLAB. Through the comparison with the theory analysis, the problems of spectrum aliasing, spectrum leakage and picket fence effect are explained when using DFT to analyze signal spectrum, and the corresponding solution is presented. Key words:MATLAB; spectrum analysis; DFT; spectrum aliasing; spectrum leakage; picket fence effect 引言 信号的频谱分析就是利用傅里叶分析的方法, 求出与时域描述相对应的频域描述, 从中找出信号频谱的变化规律, 以达到特征提取的目的[1]. 不同信号的傅里叶分析理论与方法, 在有关专业书中都有介绍, 但实际的待分析信号一般没有解析式, 直接利用公式进行傅里叶分析非常困难. DFT是一种时域和频域均离散化的傅里叶变换, 适合数值计算且有快速算法, 是分析信号的有力工具. 本文以连续时间信号为例, 介绍利用DFT分析信号频谱的基本流程, 重点阐述频谱分析过程中可能存在的误差, 实例列出MATLAB 环境下频谱分析的实现程序. 1 分析流程 实际信号一般没有解析表达式, 不能直接利用傅里叶分析公式计算频谱, 虽然可以采用数值积分方法进行频谱分析, 但因数据量大、速度慢而无应用价值. DFT在时域和频域均实现了离散化, 适合数值计算且有快速算法, 是利用计算机分析信号频谱的首选工具. 由于DFT要求信号时域离散且数量有限, 如果是时域连续信号则必须先进行时域采样, 即使是离散信号, 如果序列很长或采样点数太多, 计算机存储和DFT计算都很困难, 通常采用加窗方法截取部分数据进行DFT运算. 对于有限长序列, 因其频谱是连续的, DFT只能描述其有限个频点数据, 故存在所谓栅栏效应. 总之, 用DFT分析实际信号的频谱, 其结果必然是近似的. 即使是对所有离散信号进行DFT变换, 也只能用有限个频谱数据近似表示连续频 收稿日期: 2010-06-09 作者简介: 张登奇(1968? ), 男, 湖南临湘人, 硕士, 湖南理工学院信息与通信工程学院副教授. 主要研究方向: 信号与信息处理

基于MATLAB的语音信号滤波处理

基于MATLAB的语音信号滤波处理 题目:基于MATLAB的语音信号滤波处理 课程:数字信号处理 学院:电气工程学院 班级: 学生: 指导教师: 二O一三年十二月

目录CONTENTS 摘要 一、引言 二、正文 1.设计要求 2.设计步骤 3.设计内容 4.简易GUI设计 三、结论 四、收获与心得 五、附录

一、引言 随着Matlab仿真技术的推广,我们可以在计算机上对声音信号进行处理,甚至是模拟。通过计算机作图,采样,我们可以更加直观的了解语音信号的性质,通过matlab编程,调用相关的函数,我们可以非常方便的对信号进行运算和处理。 二、正文 2.1 设计要求 在有噪音的环境中录制语音,并设计滤波器去除噪声。 2.2 设计步骤 1.分析原始信号,画出原始信号频谱图及时频图,确定滤波器类型及相关指标; 2.按照类型及指标要求设计出滤波器,画出滤波器幅度和相位响应,分析该滤波器是否符合要求; 3.用所设计的滤波器对原始信号进行滤波处理,画出滤波后信号的频谱图及时频图; 4.对滤波前的信号进行分析比对,评估所设计滤波器性能。 2.3 设计内容 1.原始信号分析

分析信号的谱图可知,噪音在1650HZ和3300HZ附近的能量较高,而人声的能量基本位于1000HZ以下。因此,可以设计低通滤波器对信号进行去噪处理。 2.IIR滤波器设计 用双线性变换法分别设计了巴特沃斯低通滤波器和椭圆低通滤波器和带阻滤波器: ①巴特沃斯滤波器 fp=800;fs=1300;rs=35;rp=0.5; 程序代码如下: fp=800;fs=1300;rs=35;rp=0.5;Fs=44100; wp=2*Fs*tan(2*pi*fp/(2*Fs));ws=2*Fs*tan(2*pi*fs/(2*Fs)); [n,wn]=buttord(wp,ws,rp,rs,'s'); [b,a]=butter(n,wn,'s'); [num,den]=bilinear(b,a,Fs); [h,w]=freqz(num,den,512,Fs);

matlab声音信号频谱分析的课程设计

原语音信号 [y,fs,bits]=wavread('C:\Users\Administrator\Desktop\111.wav'); >> sound(y,fs,bits); >> n=length(y) n = 92611 >> Y=fft(y,n); >> subplot(2,1,1);plot(y); >> subplot(2,1,2);plot(abs(Y));

加噪声 >> [y,fs,bits]=wavread('C:\Users\Administrator\Desktop\111.wav'); >> sound(y,fs,bits); >> n=length(y) n = 92611 >> Noise=0.2*randn(n,2); >> s=y+Noise; >> sound(s) >> subplot(2,1,1); >> plot(s) >> S=fft(s); >> subplot(2,1,2); >> plot(abs(S)) >> title('加噪语音信号的频谱波形')

FIR 低通滤波器 fp=1000;fc=1200;As=100;Ap=1;fs=30000; >> wc=2*fc/fs;wp=2*fp/fs; >> N=ceil((As-7.95)/(14.36*(wc-wp)/2))+1; >> beta=0.1102*(As-8.7); >> Win=Kaiser(N+1,beta); b=fir1(N,wc,Win); >> freqz(b,1,512,fs); >> s_low=filter(b,1,s); >> plot(s_low);title('信号经过低通滤波器的时域图') >> S_low=fft(s_low,n); >> plot(abs(S_low));title('信号经过低通滤波的频谱') >> sound(s_low,fs,bits)

信号的频谱分析

实验三信号的频谱分析 方波信号的分解与合成实验 一、任务与目的 1. 了解方波的傅立叶级数展开和频谱特性。 2. 掌握方波信号在时域上进行分解与合成的方法。 3. 掌握方波谐波分量的幅值和相位对信号合成的影响。 二、原理(条件) PC机一台,TD-SAS系列教学实验系统一套。 1. 信号的傅立叶级数展开与频谱分析 信号的时域特性和频域特性是对信号的两种不同的描述方式。对于一个时域的周期信号f(t),只要满足狄利克莱条件,就可以将其展开成傅立叶级数: 如果将式中同频率项合并,可以写成如下形式: 从式中可以看出,信号f(t)是由直流分量和许多余弦(或正弦)分量组成。其中第一项A0/2是常数项,它是周期信号中所包含的直流分量;式中第二项A1cos(Ωt+φ1)称为基波,它的角频率与原周期信号相同,A1是基波振幅,φ1是基波初相角;式中第三项A2cos(Ωt+φ2)称为二次谐波,它的频率是基波的二倍,A2是基波振幅,φ2是基波初相角。依此类推,还有三次、四次等高次谐波分量。 2. 方波信号的频谱 将方波信号展开成傅立叶级数为: n=1,3,5… 此公式说明,方波信号中只含有一、三、五等奇次谐波分量,并且其各奇次谐波分量的幅值逐渐减小,初相角为零。图3-1-1为一个周期方波信号的组成情况,由图可见,当它包含的分量越多时,波形越接近于原来的方波信号,还可以看出频率较低的谐波分量振幅较大,它们组成方波的主体,而频率较高的谐波分量振幅较小,它们主要影响波形的细节。

(a)基波(b)基波+三次谐波 (c)基波+三次谐波+五次谐波 (d)基波+三次谐波+五次谐波+七次谐波 (e)基波+三次谐波+五次谐波+七次谐波+九次谐波 图3-1-1方波的合成 3. 方波信号的分解 方波信号的分解的基本工作原理是采用多个带通滤波器,把它们的中心频率分别调到被测信号的各个频率分量上,当被测信号同时加到多路滤波器上,中心频率与信号所包含的某次谐波分量频率一致的滤波器便有输出。在被测信号发生的实际时间内可以同时测得信号所包含的各频率分量。本实验便是采用此方法,实验中共有5路滤波器,分别对应方波的一、三、五、七、九次分量。 4. 信号的合成 本实验将分解出的1路基波分量和4路谐波分量通过一个加法器,合成为原输入的方波信号,信号合成电路图如图3-1-2所示。 图3-1-2 三、内容与步骤 本实验在方波信号的分解与合成单元完成。 1. 使信号发生器输出频率为100Hz、幅值为4V的方波信号,接入IN端。 2. 用示波器同时测量IN和OUT1端,调节该通路所对应的幅值调节电位器,使该通路输出方波的基波分量,基波分量的幅值为方波信号幅值的4/π倍,频率于方波相同并且没有相位差.(注意:出厂时波形调节电位器已调到最佳位置,其波形基本不失真,基本没有相位差。若实验中发现存在波形失真或有相位差的现象,请适当调节波形调节电位器,使波形恢复正常。) 3. 用同样的方法分别在OUT3、OUT5、OUT7、OUT9端得到方波的三、五、七、九此谐波分量(注意其他谐波分量各参数应当满足式3-1-1所示)。 4. 完成信号的分解后,先后将OUT1与IN1、OUT3与IN2、OUT5与IN3、OUT7与IN4、OUT9与IN5连接起来,即进行谐波叠加(信号合成),分别测量(1)基波与三次谐波;(2)基波、三次谐波与五次谐波;(3)基波、三次谐波、五次谐波与七次谐波;(4)基波、三次谐波、五次谐波、七次谐波与九次谐波合成后的波形。并分别保

基于matlab的语音信号滤波处理——数字信号处理课程设计

数字信号处理课程设计 题目:基于matlab的语音信号滤波处理学院:物理与电子信息工程 专业:电子信息工程 班级: B07073041 学号: 200932000066 姓名:高珊 指导教师:任先平

摘要: 语音信号处理是研究用数字信号处理技术和语音学知识对语音信号进行处理的新兴学科,是目前发展最为迅速的学科之一,通过语音传递信息是人类最重要,最有效,最常用和最方便的交换信息手段,所以对其的研究更显得尤为重要。 Matlab语言是一种数据分析和处理功能十分强大的计算机应用软件,它可以将声音文件变换成离散的数据文件,然后用起强大的矩阵运算能力处理数据。这为我们的本次设计提供了强大并良好的环境! 本设计要求自己录制一段自己的语音后,在MATLAB软件中采集语音信号、回放语音信号并画出语音信号的时域波形和频谱图。再在Matlab中分别设计不同形式的FIR数字滤波器。之后对采集的语音信号经过不同的滤波器(低通、高通、带通)后,观察不同的波形,并进行时域和频谱的分析。对比处理前后的时域图和频谱图,分析各种滤波器对于语音信号的影响。最后分别收听进行滤波后的语音信号效果,做到了解在怎么样的情况下该用怎么样的滤波器。

目录 1.设计内容 (4) 2.设计原理 (4) 2.1语音信号的时域分析 (4) 2.2语音信号的频域分析 (5) 3.设计过程 (5) 3.1实验程序源代码 (6) 3.1.1原语音信号时域、频域图 (6) 3.1.2低通滤波器的设计 (6) 3.1.3高通滤波器的设计 (7) 3.1.4带通滤波器的设计 (8) 3.1.5语音信号的回放 (9) 3.2调试结果描述 (10) 3.3所遇问题及结果分析 (15) 3.3.1所遇主要问题 (16) 3.3.2结果分析 (16) 4.体会与收获 (17) 5.参考文献 (17)

语音信号处理实验报告

通信与信息工程学院 信息处理综合实验报告 班级:电子信息工程1502班 指导教师: 设计时间:2018/10/22-2018/11/23 评语: 通信与信息工程学院 二〇一八年 实验题目:语音信号分析与处理 一、实验内容 1. 设计内容 利用MATLAB对采集的原始语音信号及加入人为干扰后的信号进行频谱分析,使用窗函数法设计滤波器滤除噪声、并恢复信号。 2.设计任务与要求 1. 基本部分

(1)录制语音信号并对其进行采样;画出采样后语音信号的时域波形和频谱图。 (2)对所录制的语音信号加入干扰噪声,并对加入噪声的信号进行频谱分析;画出加噪后信号的时域波形和频谱图。 (3)分别利用矩形窗、三角形窗、Hanning窗、Hamming窗及Blackman 窗几种函数设计数字滤波器滤除噪声,并画出各种函数所设计的滤波器的频率响应。 (4)画出使用几种滤波器滤波后信号时域波形和频谱,对滤波前后的信号、几种滤波器滤波后的信号进行对比,分析信号处理前后及使用不同滤波器的变化;回放语音信号。 2. 提高部分 (5)录制一段音乐信号并对其进行采样;画出采样后语音信号的时域波形和频谱图。 (6)利用MATLAB产生一个不同于以上频段的信号;画出信号频谱图。 (7)将上述两段信号叠加,并加入干扰噪声,尝试多次逐渐加大噪声功率,对加入噪声的信号进行频谱分析;画出加噪后信号的时域波形和频谱图。 (8)选用一种合适的窗函数设计数字滤波器,画出滤波后音乐信号时域波形和频谱,对滤波前后的信号进行对比,回放音乐信号。 二、实验原理 1.设计原理分析 本设计主要是对语音信号的时频进行分析,并对语音信号加噪后设计滤波器对其进行滤波处理,对语音信号加噪声前后的频谱进行比较分析,对合成语音信号滤波前后进行频谱的分析比较。 首先用PC机WINDOWS下的录音机录制一段语音信号,并保存入MATLAB软件的根目录下,再运行MATLAB仿真软件把录制好的语音信号用audioread函数加载入MATLAB仿真软件的工作环境中,输入命令对语音信号进行时域,频谱变换。 对该段合成的语音信号,分别用矩形窗、三角形窗、Hanning窗、Hamming窗及Blackman窗几种函数在MATLAB中设计滤波器对其进行滤波处理,滤波后用命令可以绘制出其频谱图,回放语音信号。对原始语音信号、合成的语音信号和经过滤波器处理的语音信号进行频谱的比较分析。 2.语音信号的时域频域分析 在Matlab软件平台下可以利用函数audioread对语音信号进行采样,得到了声音数据变量y,同时把y的采样频率Fs=44100Hz放进了MATALB的工作空间。

语音信号处理matlab实现

短时能量分析matlab源程序: x=wavread('4.wav'); %计算N=50,帧移=50时的语音能量 s=fra(50,50,x);%对输入的语音信号进行分帧,其中帧长50,帧移50 s2=s.^2;%一帧内各种点的能量 energy=sum(s2,2);%求一帧能量 subplot(2,2,1); plot(energy) xlabel('帧数'); ylabel('短时能量E'); legend('N=50'); axis([0,500,0,30]) %计算N=100,帧移=100时的语音能量 s=fra(100,100,x); s2=s.^2; energy=sum(s2,2); subplot(2,2,2); plot(energy) xlabel('帧数'); ylabel('短时能量E'); legend('N=100'); axis([0,300,0,30]) %计算N=400,帧移=400时的语音能量 s=fra(400,400,x); s2=s.^2; energy=sum(s2,2); subplot(2,2,3); plot(energy) xlabel('帧数'); ylabel('短时能量E'); legend('N=400'); axis([0,60,0,100]) %计算N=800,帧移=800时的语音能量 s=fra(800,800,x); s2=s.^2; energy=sum(s2,2); subplot(2,2,4); plot(energy) xlabel('帧数'); ylabel('短时能量E'); legend('N=800'); axis([0,30,0,200]) 分帧子函数: function f=fra(len,inc,x) %对读入语音分帧,len为帧长,inc为帧重叠样点数,x为输入语音数据 fh=fix(((size(x,1)-len)/inc)+1);%计算帧数 f=zeros(fh,len);%设一个零矩阵,行为帧数,列为帧长 i=1;n=1; while i<=fh %帧间循环 j=1; while j<=len %帧内循环 f(i,j)=x(n); j=j+1;n=n+1; end n=n-len+inc;%下一帧开始位置 i=i+1; end

相关文档
最新文档