声音信号的抽取和内插-MATLAB代码(word文档良心出品)

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

%%%l为抽取倍数,m为内插倍数,mp3为音频信号,%%%此程序实现音频信号的内插和抽取,并画出处理前后的信号时域、频域图像functionmyhomework(mp3,l,m)[pyr,fs]=audioread(mp3);pyr=pyr(:,1);a=fs%%%输出采样频率n=length(pyr);%%%画原信号时域图像%%%t=n/fs;x=0:1/fs:(t-1/fs);subplot(2,2,1);plot(x,pyr);xlabel('时间/秒');ylabel('幅度');title('原始信号时域图像');%%%原信号频谱图%%%halflenth=floor(n/2);f=fs*(0:halflenth)/n;y=abs(fft(pyr,n));subplot(2,2,2);plot(f,y(1:halflenth+1));xlabel('频率/HZ');ylabel('幅度');title('原信号频域图像');%%%l倍抽取后频谱图%%%%pyr_l=1:floor(n/l);%%%%pyr_l为l倍抽取后的信号pyr_l(1:floor(n/l))=pyr(l.*(1:floor(n/l)));audiowrite('三倍抽取l.wav',pyr_l,fs);%%%%将抽取后的信号写入音乐文件n_l=length(pyr_l);halflenth=floor(n_l/2);f_l=fs*(0:halflenth)/n_l;y_l=abs(fft(pyr_l,n_l));%%%%傅里叶变换subplot(2,2,3);plot(f_l,y_l(1:halflenth+1));xlabel('频率/HZ');ylabel('幅度');title('三倍信号频域图像');%%%三倍内插后信号频谱%%%pyr_30=1:m*n;%%%%%pyr_30为m倍内插后的信号i=1;whilei=m*nifmod(i,m)==0pyr_30(i)=pyr(i/m);elsepyr_30(i)=0;endi=i+1;endaudiowrite('三倍内插m.wav',pyr_30,fs);%%%%将内插后的信号写入音乐文件n_30=length(pyr_30);halflenth=floor(n_30/2/m);f_30=fs*(0:halflenth)/n_30;y_30=abs(fft(pyr_30,n_30));%%%%傅里叶变换subplot(2,2,4);plot(f_30,y_30(1:halflenth+1));xlabel('频率/HZ');ylabel('幅度');title('三倍内插信号频域图像');

1 / 2
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功