DSP课程设计.docx

上传人:b****7 文档编号:11329333 上传时间:2023-02-27 格式:DOCX 页数:24 大小:151.35KB
下载 相关 举报
DSP课程设计.docx_第1页
第1页 / 共24页
DSP课程设计.docx_第2页
第2页 / 共24页
DSP课程设计.docx_第3页
第3页 / 共24页
DSP课程设计.docx_第4页
第4页 / 共24页
DSP课程设计.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

DSP课程设计.docx

《DSP课程设计.docx》由会员分享,可在线阅读,更多相关《DSP课程设计.docx(24页珍藏版)》请在冰豆网上搜索。

DSP课程设计.docx

DSP课程设计

 

《数字信号处理》

课程设计报告

 

题目:

基于MATLAB的音乐信号处理和分析

专业:

测控技术与仪器

年级:

2011级

姓名:

学号:

 

基于MATLAB的音乐信号处理和分析

一、读取音乐信号并观察波形与频谱

[w,fs,bit]=wavread('爸爸去哪儿.wav');

wav=(w(:

1))';

sound(w,fs)

figure;

subplot(2,1,1);plot(wav);

fwav=fft(wav);

lwav=round(length(fwav)/2);

nwav=[0:

lwav-1];

wwav=nwav/(lwav);f=wwav/2*fs;

subplot(2,1,2);

plot(wwav,abs(fwav(1:

lwav)));

1,以二倍的抽样率听声音信号时,音乐播放的特别快,像被压缩了,播放的时间比原信号短。

2,以二分之一的抽样率听声音信号时,音乐播放的特别慢,像被拉长了,播放的时间比原信号长。

3,原信号频谱截止频率为0.5*pi。

二、

(1)音乐信号的5倍减抽样

[w,fs,bit]=wavread('爸爸去哪儿.wav');

wav=(w(:

1))';

fwav=fft(wav);

lwav=round(length(fwav)/2);

j=0;d1=5;

fori=1:

d1:

lwav

j=j+1;

dwav1(j)=wav(i);

end

figure;

subplot(2,1,1);

plot(dwav1);

fdwav1=fft(dwav1);

sound(dwav1,fs/d1)

lwav1=round(length(fdwav1)/2);

nwav=[0:

lwav1-1];

wwav=nwav/(lwav1);f=wwav/2*fs;

subplot(2,1,2);

plot(wwav,abs(fdwav1(1:

lwav1)));%减抽样音乐频域

(2)音乐信号的10倍减抽样(有混频)

[w,fs,bit]=wavread('爸爸去哪儿.wav');

wav=(w(:

1))';

fwav=fft(wav);

lwav=round(length(fwav)/2);

j=0;d1=10;

fori=1:

d1:

lwav

j=j+1;

dwav1(j)=wav(i);

end

figure;

subplot(2,1,1);

plot(dwav1);

fdwav1=fft(dwav1);

sound(dwav1,fs/d1)

lwav1=round(length(fdwav1)/2);

nwav=[0:

lwav1-1];

wwav=nwav/(lwav1);f=wwav/2*fs;

subplot(2,1,2);

plot(wwav,abs(fdwav1(1:

lwav1)));

1,原信号频谱截止频率为0.5*pi。

2,减抽样后的音乐信号听起来变得尖锐,有失真。

3,抽样率随着抽样间隔的增大而逐渐变小,声音越来越失真,音调变得急促,而尖锐,信号产生混叠

3、音乐信号的AM调制

(1)调制频率为pi/2

[w,fs,bit]=wavread('爸爸去哪儿.wav');

wav=(w(:

1))';

lam=length(wav);

amw=pi/2;

cwav=cos(amw*[0:

lam-1]);

amwav=wav.*cwav;

sound(amwav,fs)

figure;

subplot(2,1,1);plot(amwav);

title('爸爸去哪儿调制后')

famwav=fft(amwav);

lwav=round(length(famwav)/2);

nwav=[0:

lwav-1];

wwav=nwav/(lwav);

subplot(2,1,2);

plot(wwav,abs(famwav(1:

lwav)));

(2)调制频率为2*pi/3

[w,fs,bit]=wavread('爸爸去哪儿.wav');

wav=(w(:

1))';

lam=length(wav);

amw=2*pi/3;

cwav=cos(amw*[0:

lam-1]);

amwav=wav.*cwav;

sound(amwav,fs)

figure;

subplot(2,1,1);plot(amwav);

title('爸爸去哪儿调制后')

famwav=fft(amwav);

lwav=round(length(famwav)/2);

nwav=[0:

lwav-1];

wwav=nwav/(lwav);

subplot(2,1,2);

plot(wwav,abs(famwav(1:

lwav)));

1,原信号的调制相当于频谱搬移,左移一个右移一个,当调制频率(余弦频率)小于0.4pi或大于0.6pi时就会产生混叠或丢失一部分信息。

2,当余弦点数取得少时,余弦频谱会产生泄漏。

3,当调制频率较高时(发生混叠),声音响度低,几乎只能听见兹兹的声音,信号几乎完全失真,当调制频率较低时(未发生混叠),声音很尖锐,响度较大,稍微能听出一点调子,但也有兹兹的声音。

四、AM调制音乐信号的同步解调

1.信号的解调

[w,fs,bit]=wavread('爸爸去哪儿.wav');

wav=(w(:

1));

fwav=fft(wav);

lwav=round(length(fwav)/2);

nwav=[0:

lwav-1];

wwav=nwav/(lwav);

lam=length(wav);

amw=pi/2;

cwav=cos(amw*[0:

lam-1]);

amwav=wav.*cwav';

pmwav=amwav.*cwav';%音乐信号解调

figure;

subplot(2,1,1);plot(pmwav);

title('解调时域')

fpmwav=fft(pmwav);

subplot(2,1,2);

plot(wwav,abs(fpmwav(1:

lwav)));

title('解调频域')

sound(pmwav,fs);

 

2.巴特沃斯滤波

[w,fs,bit]=wavread('爸爸去哪儿.wav');

wav=(w(:

1));

fwav=fft(wav);

lwav=round(length(fwav)/2);

nwav=[0:

lwav-1];

wwav=nwav/(lwav);

lam=length(wav);

amw=pi/2;

cwav=cos(amw*[0:

lam-1]);

amwav=wav.*cwav';

pmwav=amwav.*cwav';%音乐信号解调

fpmwav=fft(pmwav);

T=1;

[N,wc]=buttord(0.05,0.5,1,15,'s');

[B,A]=butter(N,wc,'s');%求模拟滤波器系统函数的系数

[C,D]=bilinear(B,A,1/T);%求数字滤波器系统函数的系数

W=0:

0.001*pi:

0.5*pi;

H=freqs(B,A,W);%模拟滤波器的频率响应

Hd=freqz(C,D,W);%数字滤波器频率响应

figure;

Hd_db=-20*log(abs(Hd

(1)./(abs(Hd)+eps)));

subplot(3,1,1);plot(W/pi,abs(Hd));

title('数字巴特沃斯滤波频响图')

gridon;

y=filter(C,D,pmwav);%对信号滤波

fy=fft(y);

subplot(3,1,2);plot(abs(y));

title('滤波后音频')

subplot(3,1,3);plot(wwav,abs(fy(1:

lwav)));

title('滤波后频谱')

sound(y,fs);

3.矩形窗滤波

[w,fs,bit]=wavread('爸爸.wav');

wav=(w(:

1));

fwav=fft(wav);

lwav=round(length(fwav)/2);

nwav=[0:

lwav-1];

wwav=nwav/(lwav);

lam=length(wav);

amw=pi/2;

cwav=cos(amw*[0:

lam-1]);

amwav=wav.*cwav';

pmwav=amwav.*cwav';%音乐信号解调

fpmwav=fft(pmwav);

N=39,wc=0.35*pi;%参数设置

M=512;

forn=0:

N-1

ifn==(N-1)/2

hd(n+1)=wc/pi;

elsehd(n+1)=sin(wc*(n-(N-1)/2))/(pi*(n-(N-1)/2));

end

end;%调用理想低通滤波器函数

w2=boxcar(N);%设置矩形窗

h2=hd.*w2';%求数字滤波器频率响应

lx=round(length(h2)/2);

wx1=(2/M)*[0:

M-1];

fh2=fft(h2,M);

db1=-20*log10(abs(fh2

(1)./(abs(fh2)+eps)));

figure;

subplot(4,1,1);plot(h2);

title('矩形窗滤波特性')

gridon;

subplot(4,1,2);plot(wx1,abs(fh2));

title('矩形窗频谱')

gridon;

y0=pmwav;

yy2=conv(y0,h2);

fyy2=fft(yy2);

l2=round(length(fyy2)/2);

wx2=(0:

l2-1)/l2;

subplot(4,1,3);plot(wx2,abs(yy2(1:

l2)));

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

gridon;

subplot(4,1,4);plot(wx2,abs(fyy2(1:

l2)));

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

gridon;

sound(yy2,fs);

4、布莱克曼窗滤波

[w,fs,bit]=wavread('爸爸.wav');

wav=(w(:

1));

fwav=fft(wav);

lwav=round(length(fwav)/2);

nwav=[0:

lwav-1];

wwav=nwav/(lwav);

lam=length(wav);

amw=pi/2;

cwav=cos(amw*[0:

lam-1]);

amwav=wav.*cwav';

pmwav=amwav.*cwav';%音乐信号解调

fpmwav=fft(pmwav);

N=43,wc=0.3*pi;%参数设置

M=512;

forn=0:

N-1

ifn==(N-1)/2

hd(n+1)=wc/pi;

elsehd(n+1)=sin(wc*(n-(N-1)/2))/(pi*(n-(N-1)/2));

end

end;%调用理想低通滤波器函数

w2=blackman(N);%设置矩形窗

h2=hd.*w2';%求数字滤波器频率响应

fh2=fft(h2);

lx=length(h2);

wx1=(0:

lx-1)*2/lx;

db1=-20*log10(abs(fh2

(1)./(abs(fh2)+eps)));

figure;

subplot(4,1,1);plot(h2);

title('布莱克曼窗滤波特性')

gridon;

subplot(4,1,2);plot(wx1,abs(fh2));

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

gridon;

y0=pmwav;

yy2=conv(y0,h2);

subplot(4,1,3);plot(yy2);

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

gridon;

fyy2=fft(yy2);

l2=round(length(fyy2)/2);

wx2=(0:

l2-1)/l2;

subplot(4,1,4);plot(wx2,abs(fyy2(1:

l2)));

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

gridon;

sound(yy2,fs);

1,解调后信号频谱在高频和低频处均有一部分,且成对称分布,需要滤掉高频才可大致还原原信号。

2,原信号的截止频率为0.5pi,使用数字巴特沃斯滤波器滤波器滤波参数通带截止频率0.5pi,阻带开始频率0.5pi,阻带衰减15db。

滤波效果很好,基本还原了原信号。

3,使用窗函数滤波要根据过渡带宽算阶数N,选截止频率为0.5pi。

4,使用矩形窗滤波,矩形窗过渡带窄,但是阻带有波纹,高频部分有小部分未滤掉。

5,使用布莱克曼窗滤波,布莱克曼窗过渡带宽,但是阻带较好。

6,使用矩形窗和布莱克曼窗滤波,效果都行,基本都能还原原信号

5、音乐信号的滤波去噪

1.原始信号加入三余弦混合噪声

[w,fs,bit]=wavread('爸爸.wav');

wav=(w(:

1));

fwav=fft(wav);

lwav=round(length(fwav)/2);

nwav=[0:

lwav-1];

wwav=nwav/(lwav);

sf1=3000;sf2=5000;sf3=8000;

l=length(wav);

T=2/fs;

t=0:

T:

(l-1)*T;

s1=0.05*(cos(2*pi*sf2*t)+cos(2*pi*sf2*t)+cos(2*pi*sf3*t));%余弦噪声信号

wav_s1=wav'+s1;%加噪信号

sound(wav_s1,fs)

fwav_s1=fft(wav_s1);

f_s1=fft(s1);

figure;

subplot(2,2,1);plot(s1);

title('余弦噪声')

subplot(2,2,2);plot(wav_s1);

title('加噪信号')

subplot(2,2,3);

plot(wwav,abs(f_s1(1:

lwav)));

subplot(2,2,4);

plot(wwav,abs(fwav_s1(1:

lwav)));

2.用窗函数对混合噪声滤波

[w,fs,bit]=wavread('爸爸.wav');

wav=(w(:

1));

fwav=fft(wav);

lwav=round(length(fwav)/2);

nwav=[0:

lwav-1];

wwav=nwav/(lwav);

sf1=3000;sf2=5000;sf3=8000;

l=length(wav);

T=2/fs;

t=0:

T:

(l-1)*T;

s1=0.05*(cos(2*pi*sf2*t)+cos(2*pi*sf2*t)+cos(2*pi*sf3*t));%余弦噪声信号

wav_s1=wav'+s1;%加噪信号

fwav_s1=fft(wav_s1);

f_s1=fft(s1);

N=45;wc=0.15*pi;%参数设置

M=512;

forn=0:

N-1

ifn==(N-1)/2

hd(n+1)=wc/pi;

elsehd(n+1)=sin(wc*(n-(N-1)/2))/(pi*(n-(N-1)/2));

end

end;%调用理想低通滤波器函数

w1=hamming(N);%海明窗

h1=hd.*w1';

fh1=fft(h1);

lx=length(h1);

wx1=[0:

lx-1]*2/lx;

db1=-20*log10(abs(fh1

(1)./(abs(fh1)+eps)));

figure;

subplot(4,1,1);plot(h1);

title('海明窗波形')

gridon;

subplot(4,1,2);plot(wx1,fh1);

title('海明窗频谱')

gridon;

y0=wav_s1;

yy1=conv(y0,h1);

subplot(4,1,3);plot(yy1);

title('海明窗滤波后音频')

gridon;

fyy1=fft(yy1);

l2=round(length(fyy1)/2);

wx2=(0:

l2-1)/l2;

subplot(4,1,4);

plot(wx2,abs(fyy1(1:

l2)));

title('海明窗滤波后频谱')

gridon;

sound(yy1,fs)

3.原始信号叠加随机白噪声并对其滤波

[w,fs,bit]=wavread('爸爸.wav');

wav=(w(:

1));

fwav=fft(wav);

lwav=round(length(fwav)/2);

nwav=[0:

lwav-1];

wwav=nwav/(lwav);

l=length(wav);

s2=(rand(l,1)-0.5)/5;%用rand语句设置幅度为0.5的随机噪声

wav_s2=wav+s2;

fwav_s2=fft(wav_s2);

f_s2=fft(s2);

figure;

subplot(2,2,1);plot(s2);

title('随机白噪声')

subplot(2,2,2);plot(wav_s2);

title('加噪噪声')

subplot(2,2,3);plot(wwav,abs(f_s2(1:

lwav)));

subplot(2,2,4);plot(wwav,abs(fwav_s2(1:

lwav)));

N=133;wc=0.15*pi;%参数设置

M=512;

forn=0:

N-1

ifn==(N-1)/2

hd(n+1)=wc/pi;

elsehd(n+1)=sin(wc*(n-(N-1)/2))/(pi*(n-(N-1)/2));

end

end;%调用理想低通滤波器函数

w2=blackman(N);%布莱克曼窗

h2=hd.*w2';

fh2=fft(h2);

lx=length(h2);

wx1=[0:

lx-1]*2/lx;

db1=-20*log10(abs(fh2

(1)./(abs(fh2)+eps)));

figure;

subplot(4,1,1);plot(wx1,abs(h2));

title('blackman窗波形')

subplot(4,1,2);plot(wx1,abs(fh2));

title('blackman窗频谱')

gridon;

y0=wav_s2;

yy2=conv(y0,h2);

subplot(4,1,3);plot(yy2);

title('blackman窗滤波后音频')

gridon;

fyy2=fft(yy2);

l2=round(length(fyy2)/2);

wx2=(0:

l2-1)/l2;

subplot(4,1,4);plot(wx2,abs(fyy2(1:

l2)));

title('blackman窗滤波后频谱')

gridon;

sound(yy2,fs)

1.三余弦信号的频谱为不同频率处得三根线,加噪声后的音乐信号频谱是在原信号频谱上加了三条不同频率的线。

加噪声后音乐信号能听到原有的音调,但里面有非常大的杂音,兹兹的噪声。

2.对加余弦噪声的信号进行滤波,用海明窗滤波,滤波后信号基本没有杂音,有稍微的失真。

3.对原信号加随机白噪声,白噪声均匀分布,对其用布莱克曼窗滤波,滤波后

原声还很清楚,但伴随有较大声的随机白噪声。

 

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

当前位置:首页 > 幼儿教育 > 家庭教育

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

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