资源描述:
《matlab处理音乐数字信号》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、数字信号处理学院:物理工程学院姓名:金义飞一、读取音乐信号并观察波形与频谱程序[w,fs,bit]=wavread('你是我的眼.wav');%音频信号w。采样率fs精度bitwav=(w(:,1))';%取第一列信号sound(w,fs)%听取抽样后的wav音乐sound(w,2*fs)%听取抽样后的wav音乐sound(w,fs/2)%听取抽样后的wav音乐figure;%创建一个窗口subplot(2,1,1);plot(wav);%画出时域图fwav=fft(wav);%对音频信号做傅里叶变换lwav=round(length(fwav)/2);%音频信号正半轴长度nwav=[0
2、:lwav-1];wwav=nwav/(lwav);f=wwav/2*fs;%x轴坐标实际频率subplot(2,1,2);plot(wwav,abs(fwav(1:lwav)));%画出音乐频域图图像现象说明:从音谱即时域谱可以看出音乐信号随时间的幅度变化;从频谱可看到音乐信号主要分布在低频段,高频成分较少,在0.5pi以后几乎无音乐信号一、音乐信号的抽取(减抽样)三倍减抽样1,程序clearall;closeall;clc%清除存储空间,关闭所有窗口,清除命令[w,fs,bit]=wavread('你是我的眼.wav')wav=(w(:,1));fwav=fft(wav);lwav=
3、round(length(fwav)/2);j=0;d1=3;fori=1:d1:lwav;j=j+1;dwav1(j)=wav(i);end%本段每隔三个点取一个点,相当于三倍减抽样sound(dwav1,fs/d1);figure;subplot(2,1,1);plot(dwav1);fwav=fft(dwav1);lwav=round(length(fwav)/2);nwav=[0:lwav-1];wwav=nwav/(lwav);f=wwav/fs;subplot(2,1,2);plot(wwav,abs(fwav(1:lwav)));2图像20倍减抽样1,程序clearall;
4、closeall;clc[w,fs,bit]=wavread('你是我的眼.wav')wav=(w(:,1));fwav=fft(wav);lwav=round(length(fwav)/2);j=0;d1=20;fori=1:d1:lwav;j=j+1;dwav1(j)=wav(i);endsound(dwav1,fs/d1);figure;subplot(2,1,1);plot(dwav1);fwav=fft(dwav1);lwav=round(length(fwav)/2);nwav=[0:lwav-1];wwav=nwav/(lwav);f=wwav/fs;subplot(2,1
5、,2);plot(wwav,abs(fwav(1:lwav)));分别选取抽样间隔为3倍频和20倍频进行减抽样,后者产生混叠,前者不混叠,当选取3倍频减抽样时,频率样间隔变大但未超过最小抽样间隔,尽管频谱有所延伸,但并不产生混叠,即减抽样后频谱上限未超过折叠频率;而选取20倍频减抽样时,由于时域抽样间隔变大超过最小抽样间隔,频谱延伸且产生混叠,即频率上限超过折叠频率,与3倍减抽样相比声音信号中多了很多杂音,这是由于抽样间隔的增大使信号频谱向高频搬移,且间隔越大,搬移越厉害。一、音乐信号的AM调制1、调制频率wc=0.7*pi程序[w,fs,bit]=wavread('你是我的眼.wav'
6、);wav=(w(:,1))';lam=length(wav);fwav=fft(wav);lwav=length(fwav);nwav=[0:lwav-1];amw=0.7*pi;cwav=cos(amw*[0:lam-1]);amwav=wav.*cwav;sound(amwav,fs);figure;subplot(2,1,1);plot(amwav);title('你是我的眼时域调制')famwav=fft(amwav);subplot(2,1,2);wwav=nwav/lwav;plot(2*wwav,abs(famwav(1:lwav)));title('你是我的眼频域调制'
7、)图像1、调制频率wc=pi/2程序[w,fs,bit]=wavread('你是我的眼.wav');wav=(w(:,1))';lam=length(wav);fwav=fft(wav);lwav=length(fwav);nwav=[0:lwav-1];amw=pi/2;cwav=cos(amw*[0:lam-1]);amwav=wav.*cwav;sound(amwav,fs);figure;subplot(2,1,1);plo