您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 能源与动力工程 > 信号与系统-题目2课程实践报告
信号与系统课程实践报告班级:学号:姓名:信号与系统课程实践报告1内容与要求通过信号分析的方法设计一个软件或者一个仿真程序,程序的主要功能是完成对歌曲中演唱者语音的消除。试分析软件的基本设计思路、基本原理,并通过MATLAB程序设计语言完成设计。更进一步地,从理论和实用的角度思考改善软件性能的方法和措施。2思路与方案一般的歌曲会将人声放在声场的正中间,由于人在录音时一般使用了单通道,所以对于双通道歌曲来说,左右通道中的人声是相同的,但是伴奏中的左右声道信号是不同的。所以,可以先将原始歌曲的左右声道分离,然后再将左右声道相减,这样便可以消除包含人声的部分,得到近似是歌曲中没有人声的伴奏部分。之后,再根据歌曲原始的频率和相减后的频率进行分析,对相减后的信号进行适当的滤波处理,消除人声较为集中的频率,对相减后的信号进行二次处理,可以得到效果较好的消声歌曲。3成果及展示图1信号与系统课程实践报告图2图3上面三图分别是歌曲原始左右声道的幅度和频率曲线、相减得到的信号幅度和频率曲线、进行消除人声处理后信号的幅度和频率曲线。信号与系统课程实践报告4总结与感想通过此次实验,熟悉了常用的歌曲消音技术原理,并且通过设计实验完成了对已知原理的验证,实现了较好的歌曲消音效果,掌握了对信号进行分离、滤波等相关操作。因程序运行时占用内存过大,将歌曲截为片段读取。5程序代码[Original,fs]=audioread('F:\神田川片段.wav');ts=1/fs;N=length(Original)-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=Original(:,1);SoundRight=Original(:,2);SoundLeft_f=ts*fftshift(fft(SoundLeft,N));SoundRight_f=ts*fftshift(fft(SoundRight,N));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));BP=fir1(300,[500,2000]/(fs/2));CutDown=filter(BP,1,Sound);Sound_Final=Sound-0.6*abs(CutDown);Sound_Final_f=ts*fftshift(fft(Sound_Final,N));sound(Sound_Final,fs);6参考资料
本文标题:信号与系统-题目2课程实践报告
链接地址:https://www.777doc.com/doc-6258897 .html