一、课程设计的目的
本课程设计通过对音乐信号的采样、抽取、调制、解调等多种处理过程的理论分析和MATLAB实现,使学生进一步巩固数字信号处理的基本概念、理论、分析方法和实现方法;使学生掌握的基本理论和分析方法知识得到进一步扩展;使学生能有效地将理论和实际紧密结合;增强学生软件编程实现能力和解决实际问题的能力。 二、课程设计基本要求
1 学会 MATLAB 的使用, 掌握MATLAB的基本编程语句。 2 掌握在 Windows 环境下音乐信号采集的方法。 3 掌握数字信号处理的基本概念、基本理论和基本方法。 4 掌握 MATLAB 设计 FIR 和 IIR 数字滤波器的方法。
5 掌握使用MATLAB处理数字信号、进行频谱分析、设计数字滤波器的编程方法。 三、课程设计内容 1 试验程序 close all; clear all; clc;
%1 音乐信号的音普和频谱观察 [w,fs,b]=wavread('梁祝.wav'); w0=w(:,1); figure(1); subplot(2,1,1); plot(w0);
title('原信号时域图w0');
fw0=fft(w0); lw0=length(w0); Ww0=2/lw0*(0:lw0-1); subplot(2,1,2); plot(Ww0,abs(fw0));
title('原信号频域图abs(fw0)'); %2 音乐信号的抽取(减抽样) %2.1 非混叠减抽样 j1=0; d1=3;
1【16】
for i1=1:d1:length(w0); j1=j1+1; w1(j1)=w0(i1); end figure(2); subplot(2,2,1); plot(w1); title('非混叠减抽样后时域图w1'); fw1=fft(w1); lw1=length(w1); Ww1=2/lw1*(0:lw1-1); subplot(2,2,2); plot(Ww1,abs(fw1)); title('非混叠减抽样后频域图abs(fw1)'); %2.2 混叠减抽样 j2=0; d2=10; for i2=1:d2:length(w0); j2=j2+1; w2(j2)=w0(i2); end subplot(2,2,3); plot(w2); title('混叠减抽样后时域图w2'); fw2=fft(w2); lw2=length(w2); Ww2=2/lw2*(0:lw2-1); subplot(2,2,4); plot(Ww2,abs(fw2)); title('混叠减抽样后频域图abs(fw2)'); %3 音乐信号的AM调制 %3.1 低频调制 nw3=1:length(w0); w3=w0.*cos(0.3*pi*nw3)'; figure(3); subplot(2,2,1); plot(w3); title('低频调制后时域图w3'); fw3=fft(w3); lw3=length(w3); Ww3=2/lw3*(0:lw3-1); subplot(2,2,2); plot(Ww3,abs(fw3)); title('低频调制后频域图abs(fw3)'); %3.2 高频调制 nw4=1:length(w0); 2【16】
w4=w0.*cos(0.9*pi*nw4)'; subplot(2,2,3); plot(w4); title('高频调制后时域图w4'); fw4=fft(w4); lw4=length(w4); Ww4=2/lw4*(0:lw4-1); subplot(2,2,4); plot(Ww4,abs(fw4)); title('高频调制后频域图abs(fw4)'); %4 AM调制音乐信号的同步解调 %4.1 对低频调制的音乐信号进行同步解调 nw5=1:length(w3); w5=1/2*w3.*cos(0.3*pi*nw5)';%解调后的信号 figure(4); subplot(3,2,1); plot(w5); title('同步解调后时域图w5'); fw5=fft(w5); lw5=length(w5); Ww5=2/lw5*(0:lw5-1); subplot(3,2,2); plot(Ww5,abs(fw5)); title('同步解调后频域图abs(fw5)'); %4.2 设计巴特沃斯IIR滤波器1对同步解调后信号进行滤波 [n1,wc1]=buttord(0.05,0.2,1,21); [b1,a1]=butter(n1,wc1); [hIIR1,w6]=freqz(b1,a1); y1=filter(b1,a1,w5); fy1=fft(y1); ly1=length(y1); Wy1=2/ly1*(0:ly1-1); subplot(3,2,3); plot(w6/pi,abs(hIIR1));%IIR滤波器1特性 title('IIR滤波器1特性图abs(hIIR1)'); subplot(3,2,5); plot(y1); title('用巴特沃斯IIR滤波器1对同步解调后信号进行滤波后信号时域图y1'); subplot(3,2,6); plot(Wy1,abs(fy1)); title('用巴特沃斯IIR滤波器1对同步解调后信号进行滤波后信号频域图abs(fy1)'); %4.3 用窗函数法设计FIR滤波器做同步解 3【16】
调 %4.3.1.1 设计矩形窗滤波器 wc=pi/6; N=21; m1=353300; W1=2/m1*[0:m1-1]; wboxcar=boxcar(N); hd=ideal_filter(wc,N); hFIR1=hd.*wboxcar'; fhFIR1=fft(hFIR1,m1); fhFIR1_db=20*log10((abs(fhFIR1)+eps)/max(abs(fhFIR1))); figure(5); subplot(3,2,1); stem(hFIR1); title('boxcar单位抽样响应hFIR1(n)'); subplot(3,2,2); plot(W1,abs(fhFIR1)); title('boxcar频率幅度abs(fhFIR1)'); subplot(3,2,3); plot(W1,fhFIR1_db); title('boxcar db频率幅度fhFIR1_db'); subplot(3,2,4); plot(W1,angle(fhFIR1)); title('boxcar相位特性angle(fhFIR1)'); %4.3.1.2 用矩形窗进行滤波 w7=conv(w5,hFIR1); fw7=fft(w7,m1); subplot(3,2,5); plot(w7); title('滤波后的信号时域图w7') subplot(3,2,6); plot(W1,abs(fw7)); title('滤波后信号的幅频响应fw7') %4.3.2.1 设计布莱克曼窗滤波器 wc=pi/6; N=41; m2=353320; W2=2/m2*[0:m2-1]; wblackman=blackman(N); hd=ideal_filter(wc,N); hFIR2=hd.*wblackman'; fhFIR2=fft(hFIR2,m2); fhFIR2_db=20*log10((abs(fhFIR2)+eps)/max(abs(fhFIR2))); figure(6); 4【16】
subplot(3,2,1); stem(hFIR2); title('blackman单位抽样响应hFIR2'); subplot(3,2,2); plot(W2,abs(fhFIR2)); title('blackman频率幅度abs(fhFIR2)'); subplot(3,2,3); plot(W2,fhFIR2_db); title('blackman db频率幅度fhFIR2_db'); subplot(3,2,4); plot(W2,angle(fhFIR2)); title('blackman相位特性angle(fhFIR2)'); %4.3.2.2 用布莱克曼窗进行滤波 w8=conv(w5,hFIR2); fw8=fft(w8,m2); subplot(3,2,5); plot(w8); title('滤波后的信号时域图w8') subplot(3,2,6); plot(W2,abs(fw8)); title('滤波后信号的幅频响应abs(fw8)') %5 音乐信号的滤波去噪 %5.1 加三余弦混合噪声并对加噪后的音乐信号滤波去噪 %5.1.1 产生三余弦混合噪声 nw9=1:length(w0); %lw0=1:length(w0) w9=0.05*cos(6000*pi/fs*nw9)+0.05*cos(10000*pi/fs*nw9)+0.05*cos(16000*pi/fs*nw9); figure(7); subplot(4,2,1); plot(w9); title('三余弦混合噪声信号w9'); lw9=length(w9); Ww9=2/lw9*(0:lw9-1); fw9=fft(w9); subplot(4,2,2); plot(Ww9,abs(fw9)); title('三余弦混合噪声信号的频谱abs(fw9)'); %5.1.2 将原信号与三余弦混合噪信号混叠 w10=w0+w9'; subplot(4,2,3); plot(w10); title('加三余弦混合噪声后的音乐信号w10'); lw10=length(w10); Ww10=2/lw10*(0:lw10-1); 5【16】
fw10=fft(w10); subplot(4,2,4); plot(Ww10,abs(fw10)); title('加三余弦混合噪声后音乐信号的频谱'); %5.1.3 设计IIR滤波器3进行滤波 [n3,wc3]=buttord(0.1,0.15,1,31); [b3,a3]=butter(n3,wc3); [hIIR3,w12]=freqz(b3,a3); w13=filter(b3,a3,w10); subplot(4,2,5); plot(w12/pi,abs(hIIR3));%IIR滤波器3特性 title('IIR滤波器3特性图'); subplot(4,2,7); plot(w13); title('IIR滤波器滤波后音乐信号w13'); lw13=length(w13); Ww13=2/lw13*(0:lw13-1); fw13=fft(w13); subplot(4,2,8); plot(Ww13,abs(fw13)); title('IIR滤波器滤波后音乐信号的频谱abs(fw13)'); %5.2 加随机白噪声并对加随机白噪声后的音乐信号滤波去噪 %5.2.1 产生白噪声 w14=rand(size(w0))-0.5; figure(8); subplot(4,2,1); plot(w14); title('随机白噪声信号w14'); lw14=length(w14); Ww14=2/lw14*(0:lw14-1); fw14=fft(w14); subplot(4,2,2); plot(Ww14,abs(fw14)); title('随机白噪声信号的频谱abs(fw14)'); %5.2.2 加白噪声 w15=w14+w0; subplot(4,2,3); plot(w15); title('加随机白噪声后的音乐信号w15'); lw15=length(w15); Ww15=2/lw15*(0:lw15-1); fw15=fft(w15); subplot(4,2,4); plot(Ww15,abs(fw15)); 6【16】
title('加随机白噪声后音乐信号的频谱abs(fw15)'); %5.2.3 加随机白噪声后进行IIR滤波 [n2,wc2]=buttord(0.15,0.2,1,11); [b2,a2]=butter(n2,wc2); [hIIR2,w16]=freqz(b2,a2); y2=filter(b2,a2,w15); subplot(4,2,5); plot(w16/pi,abs(hIIR2));%IIR滤波器2特性 title('IIR滤波器2特性图'); subplot(4,2,7); plot(y2); title('用IIR滤波器2滤波后音乐信号y2'); ly2=length(y2); Wy2=2/ly2*(0:ly2-1); fy2=fft(y2);
2 实验波形及分析
subplot(4,2,8); plot(Wy2,abs(fy2)); title('用IIR滤波器滤波2后音乐信号的频谱abs(fy2)'); 子程序 function hd =ideal_filter(wc,N); for n=0:N-1 a=(N-1)/2; if n==a hd(n+1)=wc/pi; else hd(n+1)=sin(wc*(n-a))/(n-a)/pi; end end 7【16】
图1 原音乐信号的波形和频谱
1)音乐信号的音谱和频谱观察
原音乐信号的波形和频谱如图1所示。读取的信号是双声道信号,即为双列向量,进行了分列处理。
图2减抽样音乐信号的波形和频谱
8【16】
图3 调制后信号的波形和频谱
2)音乐信号的抽取(减抽样)
通过观察和分析图1,选择3倍频和9倍频对信号进行减抽样并输出减抽样音乐信号的波形和频谱,就得到了非混叠频谱(3倍频减抽样得到的频谱)和混叠频谱(9倍频减抽样得到的频谱),如图2所示。
根据图2所示的频谱可得,非混叠频谱与原音乐信号的频谱差异很小,这是由于用3倍频对原信号进行抽样时满足的要求,抽样不当现象可忽略不计,因而没有产生严重的频谱混叠失真;混叠频谱与原音乐信号的频谱差异很大,是因为用9倍频对原信号进行抽样时不满足fs>>2fh的要求,造成频率响应的周期延拓分量相互重叠的现象从而产生了频率响应的混叠失真。
播放减抽样音乐信号时我们可以听到频谱未混叠的音乐信号与原音乐信号的差异很小,几乎很难分辨,而频谱混叠的音乐信号与原音乐信号的差异很大,声音低沉甚至伴有杂音,从而也证实了我们上面的理论分析的结论。 3)音乐信号的AM调制
9【16】
通过观察音乐信号的频率上限,选择低频调制频率和高频调制频率对信号进行调制,并输出调制信号的波形和频谱,如图3所示。
根据图3 所示的波形和频谱可得:低频调制后得到的音乐频谱没有产生严重的混叠而高频调制后得到的音乐频谱产生了严重的混叠。调制的基本原理是傅里叶变换的频移特性,它的实质就是把信号的频谱搬移到任何所需的较高频率范围,使它们互不重叠地占据不同的频率范围。由图1可得,原音乐信号的频谱频率上限约为0.25π,当调制频率时,音乐信号的 频谱被搬移到以(2n+1)Ww0(n为整数)为中心的地方产生了低频调制后的频谱fw3,此时调制频率Ww3低于原音乐信号的上限频率,因而调制产生的搬移频谱没有产生严重的混叠;当调制频率时,音乐信号的频谱被搬移到以(2n+1)Ww0(n为整数)为中心的地方产生了高
频调制后的频谱fw4,此时调制频率Ww4高于原音乐信号的上限频率,使得调制产生的搬移频谱产生严重的混叠。
播放调制音乐信号,我们可以从AM低频调制后的音乐信号中听到原音乐信号,只是信号的声音变低了很多而且信号中杂音干扰很严重,这说明了低频调制后的音乐信号音色变小了但频谱没有产生严重混叠;AM高频调制后的音乐信号几乎不能听到原音乐信号听到的全是杂音,高频调制后的音乐信号频谱严重混叠。
10【16】
图4 低频解调后信号波形及频谱和经过IIR滤波后信号波形及频谱
4)AM调制音乐信号的同步解调
对图3中调制后的音乐信号进行同步低频解调并输出解调信号的波形和频谱,如图4(前两图)所示。
设计巴特沃斯IIR滤波器对解调后的音乐信号w5进行滤波,滤波器的频率响应曲线hIIR1和滤波后音乐信号的波形和频谱如图4(后三图)所示。
根据图4可得,解调后的音乐信号的频谱主要集中在0~0.2π的频率范围内,因此设计出的巴特沃斯IIR1滤波器的通带截止频率Wc=0.05π,通带最大衰减为1dB,阻带截止频率0.2π,阶数N=21。通过对比图1中原音乐信号的频谱fw0和图 4中IIR1滤波器滤波后音乐的频谱fy1可得,在0~0.2π的频率范围内两者差异很小,而0.2π以后的高频频谱被滤波器滤掉了。
11【16】
图5 经过BOXCAR滤波后解调信号的波形及频谱
图6 经过BLACKMAN滤波后解调信号的波形及频谱
播放IIR1滤波器滤波后的音乐信号并与原音乐信号进行对比,我们可以听到处理后的音乐信号的低频部分与原音乐信号的低频部分相差无几,只是高频部分被滤掉了从而导致音调
12【16】
变低了,这与理论分析得出的结论一致。
用窗函数法设计FIR滤波器对解调后的音乐信号w5进行滤波,设计出的分别加矩形窗和布莱克曼窗的滤波器频率响应曲线如图5、图6中所示。参数选择:加矩形窗的滤波器:wc=pi/6,N=21,m1=353300;加布莱克曼窗的滤波器:wc=pi/6,N=41,m2=353320。
通过对比图1中原音乐信号的频谱fw0和图 5中的频谱fw7以及图 6中的频谱fw8可得,在0~0.2π的频率范围内两者差异很小,而0.2π以后的高频频谱几乎全被滤波器滤掉了。相应的频谱分别如图5和图6所示。
图7 叠加三余弦实信号验波及频谱
13【16】
图8 叠加白噪声信号试验波形及频谱
播放FIR滤波器滤波后的音乐信号并与原音乐信号进行对比,我们可以听到处理后的音乐信号的低频部分与原音乐信号的低频部分相差无几,只是高频部分被滤掉了从而导致音调变低了,而且加矩形窗的滤波器滤波得到的音乐信号含有轻微的杂音,这与分析得的结论一致。 5)音乐信号的滤波去噪
⑴加三余弦混合噪声的音乐信号的滤波去噪
A、给原始音乐信号叠加幅度为0.05,频率为3kHz、 5kHz、8kHz的三余弦混合噪声,得到的噪声频谱以及加噪后音乐信号的音谱和频谱如图7所示。由图7可得:三余弦混合噪声信号的三条频谱线分别加在频率为w1=0.136π,w2=0.227π和w3=0.363π处。
B、设计IIR低通滤波器对加噪后的音乐信号进行滤波参数选择:由于三余弦混合噪声信号的最低频率为0.136π,则可选通带截止频率Wc=0.1π,通带最大衰减为1dB,阻带截止频率Wst=0.15π,阻带最小衰减为50dB。滤波器的频率响应曲线hIIR3和滤波后音乐信号的波形w13和频谱fw13如图7所示:
对比图1可得:三余弦混合噪声的频谱线被过滤掉了,但是由于低频滤波器的滤波特性使得
14【16】
图7中音乐信号的频谱主要集中于0~0.15π范围内,高频部分被滤掉了。
C、播放相应的音乐可以听出:滤波后的音乐信号只含有少量的噪声但与原音乐信号相比声音变低沉了,说明了频谱的高频部分被滤掉了与上面的理论分析一致。 ⑵加随机白噪声的音乐信号的滤波去噪
A、给原始音乐信号叠加幅度为0.5的随机白噪声,得到的噪声频谱以及以及加噪后音乐信号的音谱和频谱如图8所示。由图8可得:随机白噪声信号的频谱均匀的加在原音乐信号的频谱中。
B、设计IIR低通滤波器对加噪后的音乐信号进行滤波去噪参数选择:通过观察和分析图1可得,原音乐信号的频谱主要集中在0~0.2π的频率范围内,为了尽可能滤掉噪声信号可以选择通带截止频率Wc=0.15π,通带最大衰减为1dB,阻带截止频率Wst=0.2π,阻带最小衰减为50dB。滤波器的频率响应曲线hIIR2和滤波后音乐信号的波形y2和频谱fy2如图8所示。 对比图1中的频谱fw0和图8中音乐信号的频谱fy2可得:图8中音乐信号的频谱fy2主要集中于0~0.2π范围内,高频部分被滤掉了,根据理论分析在保留的频谱中含有一定量的噪音频谱。
C、播放相应的音乐可以听出:滤波器处理后的音乐信号声音比原音乐信号低沉 而且含有一定量的噪音,这也说明了噪音没有被完全滤掉与理论分析一致。 四、参考问题解答
音乐信号的音调与信号的什么特征有关?
答:与声音的频率有关,频率高则声音高,频率低则声音低。 音乐信号的音色与信号的什么特征有关?
答:由混入基音的泛音所决定的。每个基音都有其固有频率和不同音强的泛音,因此使得每个声音具有特殊的音色效果。复音中的最低频率称为复音的基音,是决定声音音调的基本因素,它通常是常数。复音中的其它频率称为谐音(泛音)。
15【16】
两种不同音色的音乐信号叠加混叠后,为何人耳还可以分辨?
答:音调的高低决定于发声体振动的频率,响度的大小决定于发声体振动的振幅,但不同的发声体由于材料、结构不同,发出声音的音色也就不同,这样我们就可以通过音色的不同去分辨不同的发声体;音色是声音的特色,根据不同的音色,即使在同一音高和同一声音强度的情况下,也能区分出是不同乐器或人发出的。同样的音量和音调上不同的音色就好比同样色度和亮度配上不同的色相的感觉一样,人耳能够很容易地分辨出音乐信号的差异。 音乐信号的幅度与相位特征对信号有哪些影响?
答:音乐信号的幅度主要影响信号的响度;音乐信号的相位特征主要影响信号的音调,音色。
五、实验心得体会
这是我们信号处理的最后一次实验,而且是自己独自设计的。通过本实验,使得我在理论学习的基础上,加深了对matlab的应用及信号处理课程的理解,进一步熟悉了应用FFT实现两个序列的线性卷积的方法,掌握了应用FFT对典型信号进行频谱分析的方法。因为数字信号研究的方便性,所以对连续信号进行数字分析方法是十分必要的,即离散傅里叶变换,并且在本次实验中分析比较了相关时间复杂度。通过参考代码编程实现,我体会到了MATLAB作为具有高效的计算能力、灵活的图形处理与可视化功能以及易学易懂的自然化语言的数学工具软件的强大功能,同时实验过程也是对该软件的编程使用的巩固。我不止一次地感受到了信号处理原理与数学知识的紧密联系以及强烈的趣味性。也许以后不见得会再学习更多更加专业的后续课程,但是它对于拓展专业及相关知识面、温习所学的高数内容、应用理论分析问题、解决问题的能力却会让我受益匪浅。
16【16】
因篇幅问题不能全部显示,请点此查看更多更全内容