MATLAB课设打印Word文档下载推荐.docx

上传人:b****5 文档编号:15781754 上传时间:2022-11-16 格式:DOCX 页数:20 大小:224.39KB
下载 相关 举报
MATLAB课设打印Word文档下载推荐.docx_第1页
第1页 / 共20页
MATLAB课设打印Word文档下载推荐.docx_第2页
第2页 / 共20页
MATLAB课设打印Word文档下载推荐.docx_第3页
第3页 / 共20页
MATLAB课设打印Word文档下载推荐.docx_第4页
第4页 / 共20页
MATLAB课设打印Word文档下载推荐.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

MATLAB课设打印Word文档下载推荐.docx

《MATLAB课设打印Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《MATLAB课设打印Word文档下载推荐.docx(20页珍藏版)》请在冰豆网上搜索。

MATLAB课设打印Word文档下载推荐.docx

I:

\zjk.wav'

);

%读声音文件

N=length(y);

t=0:

1/fs:

(length(y)-1)/fs;

%求出语音信号的长度

Y=fft(y,N);

%快速傅里叶变换

AM=abs(Y)/(N/2);

AM(1,:

)=AM(1,:

)/2;

ff=(0:

N-1)/N*fs;

subplot(2,1,1);

plot(t,y);

%语音信号时域图

subplot(2,1,2);

plot(ff,AM)%语音信号频谱图;

运行如下:

(1)时域、频谱图

2、语音信号时域分析

(1)语音信号音量放大

[f1,fs]=audioread('

sound(2*f1,fs)%“2”>

1,所以放大

(2)语音信号音量变小

sound(0.5*f1,fs)%0.5<

1,所以变小

(3)语音信号倒放

[x,fs]=audioread('

y0=flipud(x);

&

flipud实现矩阵上下翻转,从而实现语音倒放

sound(y0,fs);

(4)混音音效

[Y1,fs1]=audioread('

\xqq.wav'

[Y2,fs2]=audioread('

%读取两段不同的音频

y1=Y1(:

1);

y2=Y2(:

%取单声道

T=0.1;

iflength(y1)<

length(y2)

y1=[y1;

zeros((length(y2)-length(y1)),1)];

elseiflength(y1)>

y2=[y2;

zeros((length(y1)-length(y2)),1)];

%比较两段音频的长度,使两个音频长度相等

end

y1=[zeros(T*fs2,1);

y1];

y2=[y2;

zeros(T*fs2,1)];

y3=y1+y2;

%声音合成

sound(y3,fs2);

(5)回音效果

n1=0:

2000;

b=x(:

%产生单声道信号

N=3;

yy2=filter(1,[1,zeros(1,80000/(N+1)),0.7],[b'

zeros(1,40000)]);

%三次回声滤波器

sound(yy2,fs);

(6)男女变声

定义voice函数功能:

functionY=voice(x,f)%更改采样率使基频改变f>

1降低;

f<

1升高

f=round(f*1000);

d=resample(x,f,1000);

%时长整合使语音文件恢复原来时长

W=400;

Wov=W/2;

Kmax=W*2;

Wsim=Wov;

xdecim=8;

kdecim=2;

X=d'

;

F=f/1000;

Ss=W-Wov;

xpts=size(X,2);

ypts=round(xpts/F);

Y=zeros(1,ypts);

xfwin=(1:

Wov)/(Wov+1);

ovix=(1-Wov):

0;

newix=1:

(W-Wov);

simix=(1:

xdecim:

Wsim)-Wsim;

padX=[zeros(1,Wsim),X,zeros(1,Kmax+W-Wov)];

Y(1:

Wsim)=X(1:

Wsim);

lastxpos=0;

km=0;

forypos=Wsim:

Ss:

(ypts-W)

xpos=round(F*ypos);

kmpred=km+(xpos-lastxpos);

lastxpos=xpos;

if(kmpred<

=Kmax)

km=kmpred;

else

ysim=Y(ypos+simix);

rxy=zeros(1,Kmax+1);

rxx=zeros(1,Kmax+1);

Kmin=0;

fork=Kmin:

kdecim:

Kmax

xsim=padX(Wsim+xpos+k+simix);

rxx(k+1)=norm(xsim);

rxy(k+1)=(ysim*xsim'

end

Rxy=(rxx~=0).*rxy./(rxx+(rxx==0));

km=min(find(Rxy==max(Rxy))-1);

xabs=xpos+km;

Y(ypos+ovix)=((1-xfwin).*Y(ypos+ovix))+(xfwin.*padX(Wsim+xabs+ovix));

Y(ypos+newix)=padX(Wsim+xabs+newix);

调用voice函数实现变声:

%读取声音文件

x=y(:

%读入的y矩阵有两列,取第1列

sound(voice(x,1.4),fs);

%调整voice()第2个参数转换音调,>

1降调,为男声;

<

1升调为女声

3、傅里叶变换性质

(1)尺度变换

%读声音文件

Y=fft(2*y,N);

%快速傅里叶变换

plot(t,2*y);

plot(ff,AM);

尺度变换图如下:

(2)尺度变换

(2)抽取

y1=y(:

y2=downsample(y1,1);

%从第一项开始,等间隔1,对y1采样,得到的序列为y2

y1p=fft(y1);

y2p=fft(y2);

n1=length(y1);

w1=fs/n1*(0:

n1-1);

t1=(0:

n1-1)/fs;

n2=length(y2);

w2=fs/n2*(0:

n2-1);

t2=10*(0:

n2-1)/fs;

plot(w2,abs(y2p));

ylabel('

幅值'

xlabel('

频率(hz)'

title('

抽值后频谱'

plot(w1,abs(y1p));

原始频谱'

图形如下:

图(3)抽取图形

(3)插值

y2=dyadup(y1,1);

%从y1中第一个元素开始采样

插值后频谱'

图(4)插值图形

(4)调制与解调

figure

(1);

N=length(f1);

(N-1)/fs;

plot(t,f1);

信息信号的时域波形'

fy1=fft(f1);

w1=0:

fs/(N-1):

fs;

plot(w1,abs(fy1));

信息信号的频谱'

f2=sin(22000*pi*t);

%高频正弦载波

figure

(2);

subplot(3,1,1);

fy2=fft(f2);

N2=length(f2);

w2=fs/N*[0:

N-1];

plot(w2,abs(abs(fy2)));

载波信号的频谱'

f1=f1(:

f3=f1'

.*f2;

%两段波形相乘

subplot(3,1,2);

fy3=fft(f3);

plot(w1,abs(abs(fy3)));

已调信号的频谱'

f4=f3.*f2;

subplot(3,1,3);

fy4=fft(f4);

plot(w1,abs(abs(fy4)));

解调信号的频谱'

解调后波形失真,用滤波器对其进行过滤:

fp1=0;

fs1=5000;

As1=100;

wp1=2*pi*fp1/fs;

ws1=2*pi*fs1/fs;

BF1=ws1-wp1;

wc1=(wp1+ws1)/2;

M1=ceil((As1-7.95)/(2.286*BF1))+1;

N1=M1+1;

beta1=0.1102*(As1-8.7);

Window=(kaiser(N1,

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

当前位置:首页 > 考试认证 > 从业资格考试

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

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