西电信号大作业(歌曲人声消除)

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

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

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

资源描述

信号与系统课程实践报告信号与系统课程实践报告1内容与要求通过信号分析的方法设计一个软件或者一个仿真程序,程序的主要功能是完成对歌曲中演唱者语音的消除。试分析软件的基本设计思路、基本原理,并通过MATLAB程序设计语言完成设计。更进一步地,从理论和实用的角度改善软件性能的方法和措施。2思路与方案歌曲的伴奏左右声道相同,人声不同。所以通过左右声道不同处理信号,然后通过频率分析做带阻滤波滤除主要人声信号。3成果及展示代码:clear;clc;[X,fs]=audioread('D:\文本文档\林.wav');ts=1/fs;N=length(X)-1;读入音频信号分离左右声道左声道信号右声道信号相减信号(频率分析)带阻滤波写出音频信号信号与系统课程实践报告t=0:1/fs:N/fs;Nfft=N;df=fs/Nfft;fk=(-Nfft/2:Nfft/2-1)*df;a1=1;a2=-1;b1=1;b2=-1;%分离左声道和右声道SoundLeft=X(:,1);SoundRight=X(:,2);%对左声道和右声道进行快速傅里叶变换SoundLeft_f=ts*fftshift(fft(SoundLeft,N));SoundRight_f=ts*fftshift(fft(SoundRight,N));%显示左右声道幅度变化figure(1)subplot(411)plot(t,SoundLeft);subplot(412)plot(t,SoundRight);%显示左右声道频率变化subplot(413)f_range=[-5000,5000,0,0.1];plot(fk,SoundLeft_f);axis(f_range);subplot(414)plot(fk,SoundRight_f);axis(f_range);NewLeft=a1*SoundLeft+a2*SoundRight;NewRight=b1*SoundLeft+b2*SoundRight;Sound(:,1)=NewLeft;Sound(:,2)=NewRight;Sound_Left_f=ts*fftshift(fft(NewLeft,N));Sound_Right_f=ts*fftshift(fft(NewRight,N));figure(2)subplot(411)plot(t,NewLeft);subplot(412)plot(t,NewRight);f_range=[-5000,5000,0,0.1];subplot(413)plot(fk,Sound_Left_f);axis(f_range);subplot(414)plot(fk,Sound_Right_f);axis(f_range);BP=fir1(300,[800,2200]/(fs/2));%根据左右声道差异进行滤波【800,2200】HzCutDown=filter(BP,1,Sound);Sound_Final=Sound-0.6*abs(CutDown);Sound_Final_f=ts*fftshift(fft(Sound_Final,N));figure(3)信号与系统课程实践报告subplot(211)plot(t,Sound_Final);subplot(212)f_range=[-5000,5000,0,0.1];plot(fk,Sound_Final_f);axis(f_range);audiowrite('D:\文本文档\林_去人声.wav',Sound_Final,fs);1歌曲原始左右声道的幅度和频率曲线信号与系统课程实践报告2相减得到的信号幅度和频率曲线3进行消除人声处理后信号的幅度和频率曲线信号与系统课程实践报告4总结与感想在本次实践中,熟悉了matlab的操作,了解了很多命令。实现歌曲的人声消除,了解到音频信号的组成,熟悉了常用的歌曲消音技术原理,并且通过设计实验完成了对已知原理的验证,实现了较好的歌曲消音效果,掌握了对信号进行分离、滤波等处理手段。5参考资料

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

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

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

×
保存成功