《数字信号处理》课程设计设计题目:基于MATLAB的音乐信号处理和分析院系:物理工程学院专业:电子信息科学与技术学号:姓名:一、课程设计的目的本课程设计通过对音乐信号的采样、抽取、调制解调、滤波、去噪等多种处理过程的理论分析和MATLAB实现,使学生进一步巩固数字信号处理的基本概念、理论以及频谱分析方法和数字滤波器设计方法;使学生掌握的基本理论和分析方法只是得到进一步扩展;使学生能有效地将理论和实际紧密结合;增强学生软件编程实现能力和解决实际问题的能力。
二、课程设计的基本要求1 学会MATLAB的使用,掌握MATLAB的基本编程语句。
2 掌握在Windows环境下音乐信号采集的方法。
3 掌握数字信号处理的基本概念、基本理论和基本方法。
4 掌握MATLAB设计FIR和IIR数字滤波器的方法。
5 掌握使用MATLAB处理数字信号、进行频谱分析、涉及数字滤波器的编程方法。
三、课程设计内容实验1音乐信号的音谱和频谱观察使用windows下的录音机录制一段音乐信号或采用其它软件截取一段音乐信号(要求:时间不超过5s、文件格式为wav文件)①使用wavread语句读取音乐信号,获取抽样率;(注意:读取的信号时双声道信号,即为双列向量,需要分列处理);②输出音乐信号的波形和频谱,观察现象;使用sound语句播放音乐信号,注意不同抽样率下的音调变化,解释现象。
程序如下:[Y,FS,NBITS]=WAVREAD('怒放的生命 - 汪峰5s'); %读取音乐信号plot(Y); %显示音乐信号的波形和频谱sound(Y,FS); %听音乐(按照原来的抽样率)Y1=Y(:,1); %由双声道信号变为单声道信号size(Y1)figuresubplot(2,1,1);plot(Y); %显示原信号波形N=length(Y1);f1=fft(Y1); %傅立叶变换w=2/N*[0:N/2-1];subplot(2,1,2);plot(w,abs(f1(1:N/2))); %显示波形原信号的波形和频谱图实验2音乐信号的抽取(减抽样)①观察音乐信号频率上限,选择适当的抽取间隔对信号进行减抽样(给出两种抽取间隔,代表混叠与非混叠);②输出减抽样音乐信号的波形和频谱,观察现象,给出理论解释;播放减抽样音乐信号,注意抽样率的变化,比较不同抽取间隔下的声音,解释现象程序如下[Y,FS,NBITS]=WAVREAD('怒放的生命 - 汪峰5s');Y1=Y(:,1);D= ;j=0; %减抽样,D表示抽样间隔(10倍和100倍)for i=1:D:length(Y1) % I表示开始减抽样的起始点j=j+1;Y2(j)=Y1(i); %Y2减抽样后的信号endN=length(Y1);N1=length(Y2);F1=fft(Y1);F2=fft(Y2);w1=2/N*[0:N-1];w2=2/N1*[0:N1-1];figuresubplot(4,1,1);plot(Y1); %显示原单声道信号波形和频谱subplot(4,1,2);plot(Y2); %图显示抽样信号波形和频谱subplot(4,1,3);plot(w1,abs(F1)); %显示原单声道信号fft变换后的波形和频谱subplot(4,1,4);plot(w2,abs(F2)); %显示抽样信号快速fft变换后的波形和频谱sound(Y2,FS) %声音低沉,而且不是很清晰。
有一些声音信号丢失,%抽样率越高,声音越听不清晰,图2((10倍)图中由上而下依次为原单声道波形、抽样后波形、原单快速fft变换波形、抽样信号快速fft变换波形图2((100倍)图中由上而下依次为原单声道波形、抽样后波形、原单声道快速fft变换波形、抽样信号快速fft变换波形)实验3 音乐信号的AM调制①观察音乐信号的频率上限,选择适当调制频率对信号进行调制(给出高、低两种调制频率);②输出调制信号的波形和频谱,观察现象,给出理论解释;播放调制音乐信号,注意不同调制频率下的声音,解释现象。
程序如下:[Y,FS,NBITS]=WAVREAD('怒放的生命 - 汪峰5s');Y1=Y(:,1);N=length(Y1);F1=fft(Y1); %傅立叶变换w1=2/N*[0:N/2-1];figuresubplot(2,2,1);plot(w1,abs(F1(1:N/2)));N1=0:N-1;Y2=cos(N1*pi/8); %设置高频调制信号N2=length(Y2)F2=fft(Y2);w2=2/N2*[0:N2/2-1];subplot(2,2,2);plot(w2,abs(F2(1:N2/2)));subplot(2,2,3);stem((0:64),Y2(1:65));F=Y1.*Y2'; %利用高频调制信号调制单列音乐信号N3=length(F);F3=fft(F); %傅立叶变换w3=2/N3*[0:N3-1];subplot(2,2,4);plot(w3,abs(F3));sound(F,FS) % 未混叠时,声音尖锐,不清晰,刺耳% 混叠时,声音轻,只有淡淡的音调,基本没有起伏,不清晰。
(未混叠)图中由左到右依次为原音乐的傅立叶变换 COS函数的频谱图 COS函数离散信号 AM调制的后的波形(混叠)图中由左到右依次为原音乐的傅立叶变换 COS函数的频谱图COS函数离散信号 AM调制的后的波形实验4 AM调制音乐信号同步解调①设计巴特沃斯IIR滤波器完成同步解调;观察滤波器频率响应曲线②用窗函数法设计FIR滤波器完成同步解调,观察滤波器频率响应曲线;(分别使用矩形窗和布莱克曼窗,进行比较);③输出解调信号的波形和频谱图,观察现象,给出理论解释;播放解调音乐信号,比较不同滤波器下的声音,解释现象。
巴特沃斯IIR 滤波器程序如下clear all;close all;clc[Y,FS,NBITS]=WAVREAD('怒放的生命 - 汪峰5s');Y1=Y(:,1);N=length(Y1);N1=0:N-1;Y2=cos(N1*pi/8);F=Y1.*Y2';F2=F.*Y2'; %音乐信号调制wp=0.18;ws=0.25;rp=1;rs=50; %设计巴特沃斯IIR 滤波器[N4,Wc]=buttord(wp,ws,rp,rs);[B,A]=butter(N4,Wc);[Hd,w]=freqz(B,A);figuresubplot(2,1,1);plot(w/pi,abs(Hd));F3=filter(B,A,F2); %解调音乐信号N4=length(F3);F4=fft(F3);w4=2/N4*[0:N4/2-1];subplot(2,1,2);plot(w4,abs(F4(1:N4/2)));sound(F3,FS) %声音清晰,基本和原来的音乐差不多,但是音乐开始有一点点杂音。
巴特沃斯IIR 滤波器频率响应曲线及解调后的波形矩形窗和布莱克曼窗function hd=ideal(N,wc)for n=0:N-1if n==(N-1)/2hd(n+1)=wc/pi;else hd(n+1)=sin(wc*(n-(N-1)/2))/(pi*(n-(N-1)/2));endend(将上述程序保存为ideal.m,但是不能运行。
然后在打开新窗口编写下列主程序)clear all;close all;clc[Y,FS,NBITS]=WAVREAD('怒放的生命 - 汪峰5s');Y1=Y(:,1);N=length(Y1);N1=0:N-1;Y2=cos(N1*pi/8);F=Y1.*Y2';F2=F.*Y2'; %调制音乐信号N=89;wc=pi/0.22; % 矩形和布莱克曼窗hd=ideal(N,wc);w1=boxcar(N);w2=blackman(N);h1=hd.*w1';h2=hd.*w2';N1=length(h1);N2=length(h2);fh1=fft(h1);fh2=fft(h2);ww1=2/N1*(0:(N1-1)/2);ww2=2/N2*(0:(N2-1)/2);figuresubplot(2,1,1);plot(ww1,abs(fh1(1:(N1-1)/2+1))); subplot(2,1,2);plot(ww2,abs(fh2(1:(N1-1)/2+1)));F3=conv(F2,h1);F4=conv(F2,h2);M1=length(F3);M2=length(F4);fy1=fft(F3);fy2=fft(F4);w3=2/M1*[0:M1/2-1];w4=2/M2*[0:M2/2-1];figuresubplot(2,1,1);plot(w3,abs(fy1(1:M1/2)));subplot(2,1,2);plot(w4,abs(fy2(1:M2/2)));sound(F3,FS) %音乐信号清晰,有杂音,低沉.滤波器频率响应曲线解调后波形5、音乐信号的滤波去噪①给出原始音乐信号叠加幅度为0.05,频率为3kHz,5kHz、8kHz的三余弦混合噪声,观察噪声频谱以及加噪后音乐信号的音谱和频谱,并播放音乐,感受噪声对音乐信号的影响;②给原始音乐信号叠加幅度为0.5的随机白噪声(可用rand语句产生),观察噪声频谱以及加噪后音乐信号的音谱和频谱,并播放音乐,感受噪声对音乐信号的影响;根据步骤①、②观察到的频谱,选择合适指标设计滤波器进行滤波去噪,观察去噪后信号音谱和频谱,并播放音乐,解释现象。
程序如下:三余弦混合噪声:[x,fs,nbits]=wavread('怒放的生命 - 汪峰5s');x1=x(:,1); %获取单列音乐信号并对其做FFT变换N1=length(x1);fx1=fft(x1);w1=2/N1*[0:N1/2-1];n=0:N1-1;y=0.05*(cos(2*pi*n*3000/fs)+cos(2*pi*n*5000/fs)+cos(2*pi*n*8000/fs)); %设计三余弦混合噪声信号N2=length(y); %对三余弦混合噪声信号做FFT变换fy=fft(y);w2=2/N2*(0:N2/2-1)*fs/2;hdx=x1+y'; %产生加噪后的音乐信号并对其做FFT变换M=length(hdx);fhdx=fft(hdx);w3=2/M*(0:M/2-1);figure %画出单列信号音乐信号的频谱图、三余弦混合噪声信号的离散信号图 %及其频谱图和加噪后音乐信号的频谱图subplot(2,2,1);plot(w1,abs(fx1(1:N1/2)));subplot(2,2,2);stem((0:127),y(1:128));subplot(2,2,3);plot(w2,abs(fy(1:N2/2)));subplot(2,2,4);plot(w3,abs(fhdx(1:M/2)));sound(hdx,fs); % 音乐信号有电流声,而且噪声比较明显。