matlab声音处理
- 格式:doc
- 大小:100.55 KB
- 文档页数:8
读取音乐信号并将信号转换为单声道的,并输出信号的波形图和频谱图,播放音乐信号,注意不同抽样率下的音调变化。
1. 源程序[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))); 3,输出波形24681012x 104-0.4-0.200.20.400.10.20.30.40.50.60.70.80.910500100015002000音乐信号的滤波去噪1,实验内容读取音乐信号,输出原始信号的波形和频谱,将三余弦的混合噪声加在音乐信号上,用巴特沃斯IIR滤波器进行滤波,观察滤波后的音乐信号;再将白噪声加在原始的音乐信号上,用矩形窗进行滤波,观察滤波后的音乐信号。
2,源程序[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)));sf1=3000;l=length(wav);T=1/fs;t=0:T:(l-1)*T;s1=0.05*cos(2*pi*sf1*t);wav_s1=wav+s1;sound(wav_s1,fs)fwav_s1=fft(wav_s1);f_s1=fft(s1);figure;title('余弦噪声')subplot(2,1,1);plot(s1);subplot(2,1,2);plot(wwav,abs(f_s1(1:lwav)));figure;title('加噪信号')subplot(2,1,1);plot(wav_s1);subplot(2,1,2);plot(wwav,abs(fwav_s1(1:lwav)));T=1;Wp=2/T*tan(0.2*pi/2);Ws=2/T*tan(0.3*pi/2);Rp=1;Rs=60;[N,Wc]=buttord(Wp,Ws,Rp,Rs,'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;subplot(3,1,1);plot(W/pi,abs(H));title('模拟巴特沃斯滤波器');xlabel('Frequency/Hz');ylabel('Magnitude');Hd_db=-20*log(abs(Hd(1)./(abs(Hd)+eps))); subplot(3,1,2);plot(W/pi,abs(Hd));title('数字巴特沃斯滤波器');xlabel('Didtal Frequency/pi');ylabel('Magnitude');subplot(3,1,3);plot(W/pi,abs(Hd))title('数字巴特沃斯滤波器波特图');xlabel('Diditai Frequency/pi');ylabel('bd_Magnitude');%IIR滤波y=filter(C,D,wav_s1);sound(wav_s1,fs);figure;subplot(2,1,1);plot(y);Y=fft(y);subplot(2,1,2);plot(wwav,abs(Y(1:lwav)));l=length(wav);s2=(rand(1,l)-0.5)/5;wav_s2=wav+s2;sound(wav_s2,fs)fwav_s2=fft(wav_s2);f_s2=fft(s2);figure;title('随机噪声')subplot(2,1,1);plot(s2);subplot(2,1,2);plot(wwav,abs(f_s2(1:lwav))); figure;title('加噪信号')subplot(2,1,1);plot(wav_s2);subplot(2,1,2);plot(wwav,abs(fwav_s2(1:lwav))); %FIR 数字滤波器N=20;wc=pi/4;hd=ideal(N,wc);w1=boxcar(N);h1=hd.*w1';fh1=fft(h1,lwav);db1=-20*log(abs(fh1(1)./(abs(fh1)+eps)));w=2/(lwav)*[0:lwav-1];figure;subplot(2,2,1);stem(h1);subplot(2,2,2);plot(w,abs(fh1));subplot(2,2,3);plot(w,db1);subplot(2,2,4);plot(w,angle(fh1)); %矩形窗FIR 滤波damwav1=conv(wav1,h1); sound(damwav1,fs); figure;subplot(2,1,1);plot(damwav1); fdamwav1=fft(damwav1); subplot(2,1,2);plot(wwav,abs(fdamwav1(1:lwav))); sound(damwav2,fs); 3,输出波形24681012x 104-0.4-0.200.20.400.10.20.30.40.50.60.70.80.91050010001500200024681012x 104-0.100.10.20.300.10.20.30.40.50.60.70.80.9110002000300024681012x 104-0.4-0.200.20.400.10.20.30.40.50.60.70.80.911000200030000.050.10.150.20.250.30.350.40.450.500.51模拟巴特沃斯滤波器Frequency/HzM a g n i t u d e0.050.10.150.20.250.30.350.40.450.5012数字巴特沃斯滤波器Didtal Frequency/piM a g n i t u d e0.050.10.150.20.250.30.350.40.450.5012数字巴特沃斯滤波器波特图Diditai Frequency/pib d M a g n i t u d e24681012x 104-0.4-0.200.20.400.10.20.30.40.50.60.70.80.91050010001500200024681012x 104-0.1-0.0500.050.100.10.20.30.40.50.60.70.80.9102040608024681012x 104-0.4-0.200.20.400.10.20.30.40.50.60.70.80.91050010001500200005101520-0.100.10.20.300.51 1.520.511.50.511.52-800-600-400-20020000.51 1.52-4-202424681012x 104-0.4-0.200.20.400.10.20.30.40.50.60.70.80.910500100015002000。