实验1
1、音乐信号的音谱和频谱观察
○
1使用wavread语句读取音乐信号,获取抽样率; ○
2输出音乐信号的波形和频谱,观察现象; ○
3使用sound语句播放音乐信号,注意不同抽样率下的音调变化,解释现象。 clear all;close all;clc
[a,fs,bit]=wavread('c:\\MATLAB6p5\\work\\陪你一起看草原.wav'); size(a); y1=a(:,1);
a1=y1(10000:60000) figure;
subplot(2,1,1),plot(a); subplot(2,1,2),plot(a1);
x1=resample(a1,2,1); %y=resample(x,p,q)返回量的长度是向量x的p/q倍 sound(x1,fs); %sound(a,fs); N1=length(a1); F1=fft(a1,N1);
w=2/N1*[0:N1-1]; %频谱图横坐标设置 figure;
plot(w,abs(F1)); N2=length(a1);
t=0:1/N2:1/N2*(N2-1);
title('傅利叶变换'); %傅利叶变换; figure; plot(a1);
title('时域波形'); %时域波形;
1
2
1, 以二倍的抽样率听声音信号时,音乐播放的特别快,像被压缩了,播放的时间比原信号短。
2, 以二分之一的抽样率听声音信号时,音乐播放的特别慢,像被拉长了,播放的时间比原信号长。
3, 原信号频谱截止频率为0.5*pi
2、音乐信号的抽取(减抽样)
1观察音乐信号频率上限,选择适当的抽取间隔对信号进行减抽样(给出两种抽取间隔,○
代表混叠和非混叠);
2输出减抽样音乐信号的波形和频谱,观察现象,给出理论解释; ○
3播放减抽样音乐信号,注意抽样率的改变,比较不同抽取间隔下的声音,解释现象。 ○
clear all;close all;clc
[a,fs,bit]=wavread('c:\\MATLAB6p5\\work\\陪你一起看草原.wav'); size(a); y1=a(:,1);
a1=y1(10000:60000)
3
实验2
D=2; %减抽样; l=length(a1); yd=a1(1:D:l); sound(yd,fs/D);
N3=length(yd);
t=0:1/N3:1/N3*(N3-1); %横坐标设置 figure; plot(yd);
title('减抽样时域波形'); %时域波形; xlabel('t'); ylabel('幅度'); N4=length(yd); F2=fft(yd,N4); w=2/N4*[0:N4-1]; figure;
plot(w,abs(F2));
title('减抽样频谱'); %减抽样频谱 xlabel('f'); ylabel('幅度');
D=2,减抽样
4
D=4,减抽样
5
1, 原信号频谱截止频率为0.5*pi,当D=2时,频谱刚好不混叠,当D>2时,频谱就会混叠。
2, 减抽样后的音乐信号听起来变得尖锐,有失真。
3, 抽样率随着抽样间隔的增大而逐渐变小,声音越来越失真,音调变得急促,而尖锐,信号产生混叠
实验3
3、音乐信号的AM调制
1观察音乐信号的频率上限,选择适当调制频率对信号进行调制(给出高、低两种调制频○率);
2输出调制信号的波形和频谱,观察现象,给出理论解释; ○
3播放调制音乐信号,注意不同调制频率下的声音,解释现象。 ○
clear all;close all;clc
[a,fs,bit]=wavread('c:\\MATLAB6p5\\work\\陪你一起看草原.wav'); size(a); y1=a(:,1);
a1=y1(10000:100000);
6
%sound(a1,fs); N=length(a1); n1=0:[N-1];
y=cos(0.5*pi*n1); %产生余弦信号
N1=length(a1); F1=fft(y,N1);
w=2/N1*[0:N1-1]; figure;
plot(w,abs(F1));
title('cos(wt)频谱'); %余弦频谱 xlabel('f'); ylabel('幅度');
N2=length(a1); F2=fft(a1,N2); w=2/N2*[0:N2-1]; figure;
plot(w,abs(F2));
title('yinyue频谱'); %原信号频谱 xlabel('f'); ylabel('幅度');
x1=a1.*y'; % 音乐信号与余弦信号点乘进行调制figure plot(x1);
N3=length(a1);
F3=fft(x1,N3); %调制信号傅立叶变换 w=2/N3*[0:N3-1]; figure;
plot(w,abs(F3));
title('调制频谱'); %调制信号频谱 xlabel('f'); ylabel('幅度'); sound(x1,fs);
7
w=0.5*pi 时.
8
9
w=0.3*pi 时.
10
w=0.7*pi 时.
11
1, 由原信号频谱知,信号截止频率约为0.4pi,则产生混叠的阈值为0.6pi。 2, 原信号的调制相当于频谱搬移,左移一个右移一个,当调制频率(余弦频率)小于0.4pi或大于0.6pi时就会产生混叠或丢失一部分信息。 3, 当余弦点数取得少时,余弦频谱会产生泄漏。 4, 当调制频率较高时(发生混叠),声音响度低,几乎只能听见兹兹的声音,信号几乎完全失真,当调制频率较低时(未发生混叠),声音很尖锐,响度较大,稍微能听出一点调子,但也有兹兹的声音。
实验4
4、AM调制音乐信号的同步解调
1设计巴特沃斯IIR滤波器完成同步解调;观察滤波器频率响应曲线; ○
2用窗函数设计FIR滤波器完成同步解调,观察滤波器频率响应曲线;(要求:分别使用矩○
形窗和布莱克曼窗,进行比较);
3输出解调音乐信号,比较不同滤波器下的声音,解释现象。 ○
clear all;close all;clc
function hd=ideal(N,wc) for n=0:N-1
if n==(N-1)/2
hd(n+1)=wc/pi;
else hd(n+1)=sin(wc*(n-(N-1)/2))/(pi*(n-(N-1)/2)); end end
[a,fs,bit]=wavread('c:\\MATLAB6p5\\work\\陪你一起看草原.wav'); size(a); y1=a(:,1);
a1=y1(10000:100000);
%sound(a1,fs); %播放yuan的信号 N=length(a1); n1=0:[N-1];
y=cos(0.5*pi*n1);
x1=a1.*y';%点乘 figure plot(x1);
N1=length(a1);
F1=fft(x1,N1); %调制信号傅立叶变换
12
w=2/N1*[0:N1-1]; figure
plot(w,abs(F1));
title('调制频谱'); %调制信号频谱 xlabel('f'); ylabel('幅度');
%sound(x1,fs); %播放调制后的信号
x2=x1.*y'; figure
plot(x2); %解调后信号
F2=fft(x2,N1); %解调信号傅立叶变换 w=2/N1*[0:N1-1]; figure
plot(w,abs(F2));
title('解调频谱'); %解调频谱 xlabel('f'); ylabel('幅度');
%sound(x2,fs); %播放解调后的信号
[N,Wc]=buttord(0.4,0.5,1,15); [B,A]=butter(N,Wc); [H,W]=freqz(B,A); figure
plot(W/pi,abs(H));
title('数字巴特沃斯滤波器'); %数字巴特沃斯滤波器
x3=filter(B,A,x2); %滤波后信号 w=2/N1*[0:N1-1]; fx=fft(x3,N1); fa=fft(a1,N1); figure
subplot(2,1,1),plot(w,abs(fa)); title('yuan xin hao pin pu'); subplot(2,1,2),plot(w,abs(fx));
title('数字巴特沃斯滤波器滤波频谱'); %滤波后频谱
sound(x3,fs); %播放巴特沃斯滤波器滤波后信号sheng yin
N=33;wc=0.4*pi; hd=ideal(N,wc);
w1=boxcar(N); %矩形窗
w2=blackman(N); %布莱克曼窗
13
h1=hd.*w1'; h2=hd.*w2';
y3=conv(x2,h1); %解调后信号与矩形窗函数卷积 y4=conv(x2,h2); %解调后信号与布莱克曼窗函数卷积
%sound(y3,fs); %播放矩形窗滤波后信号sheng yin
%sound(y4,fs); %播放布莱克曼窗滤波后信号sheng yin figure;
subplot(2,1,1),plot(y3); title('矩形窗滤波后信号'); subplot(2,1,2);plot(y3);
title('布莱克曼窗滤波后信号');
fh1=fft(h1,N1);
db1=-20*log10(abs(fh1(1)./(abs(fh1)+eps))); fh2=fft(h2,N1);
db2=-20*log10(abs(fh2(1)./(abs(fh2)+eps)));
w=2/N1*[0:N1-1]; figure;
subplot(3,1,1),stem(h1); %矩形窗函数 grid on;
title('矩形窗'); xlabel('n'); ylabel('h(n)');
subplot(3,1,2),plot(w,abs(fh1)); grid on;
title('矩形窗'); xlabel('w'); ylabel('H(k)');
subplot(3,1,3);plot(w,db1); %矩形窗函数分贝图grid on;
figure;
subplot(3,1,1);stem(h2); grid on;
title('布莱克曼窗'); xlabel('n'); ylabel('h(n)');
subplot(3,1,2);plot(w,abs(fh2)); grid on;
title('布莱克曼窗'); xlabel('w'); ylabel('H(k)');
%理想低通滤波器加窗后幅度响应 14
subplot(3,1,3);plot(w,db2); %布莱克曼窗窗函数分贝图 grid on;
w=2/N1*[0:N1-1]; Fy1=fft(y3,N1); Fy2=fft(y4,N1); figure;
subplot(2,1,1);plot(w,abs(Fy1)); title('矩形窗滤波后频谱'); subplot(2,1,2);plot(w,abs(Fy2)); title('布莱克曼窗滤波后频谱');
15
16
17
18
19
1, 解调后信号频谱在高频和低频处均有一部分,且成对称分布,需要滤掉高频才可大致还原原信号。
2, 原信号的截止频率为0.4pi,使用数字巴特沃斯滤波器滤波器滤波参数通带截止频率0.4pi,阻带开始频率0.5pi,阻带衰减15db。滤波效果很好,基本还原了原信号。
3, 使用窗函数滤波要根据过渡带宽算阶数N,选截止频率为0.4pi。
4, 使用矩形窗滤波,矩形窗过渡带窄,但是阻带有波纹,高频部分有小部分未滤掉。
5, 使用布莱克曼窗滤波,布莱克曼窗过渡带宽,但是阻带较好。 6, 使用矩形窗和布莱克曼窗滤波,效果都行,基本都能还原原信号
实验5
5、音乐信号的滤波去噪
1给原始音乐信号叠加幅度为0.05,频率为3kHz、5kHz、8kHz的三余弦混合噪声,观察○
噪声频谱以及加噪后音乐信号的音谱和频谱,并播放音乐,感受噪声对音乐信号的影响; 2给原始音乐信号叠加幅度为0.5的随机白噪声(可用rand语句产生),观察噪声频谱以及○
加噪后音乐信号的音谱和频谱,并播放音乐,感受噪声对音乐信号的影响;
3根据步骤○1、○2观察到的频谱,选择合适指标设计滤波器进行滤波去噪,观察去噪后○
20
信号音谱和频谱,并播放音乐,解释现象。
clear all;close all;clc
[a,fs,bit]=wavread('c:\\MATLAB6p5\\work\\陪你一起看草原.wav'); size(a); y1=a(:,1);
a1=y1(10000:100000);
%sound(a1,fs); %播放yuan的信号
N1=length(a1); n1=0:[N1-1];
x1=0.05*cos(2*pi*3000*n1/fs); x2=0.05*cos(2*pi*5000*n1/fs); x3=0.05*cos(2*pi*8000*n1/fs); x4=x1+x2+x3; figure;
plot(x4);%叠加余弦信号
F1=fft(x4,N1);%叠加余弦信号傅立叶变换 w=2/N1*[0:N1-1]; figure
plot(w,abs(F1));
title('叠加余弦信号频谱');%叠加余弦信号频谱 xlabel('f'); ylabel('幅度');
y2=a1+x4';
%sound(y2,fs); %播放叠加余弦音乐信号figure;
plot(y2); %叠加余弦音乐信号
F2=fft(y2,N1); %叠加余弦音乐信号傅立叶变换 figure
plot(w,abs(F2));
title('叠加余弦噪声音乐信号频谱'); %叠加余弦音乐信号频谱 xlabel('f'); ylabel('幅度');
[N,Wc]=buttord(0.06,0.3,1,50); [B,A]=butter(N,Wc); [H,W]=freqz(B,A); figure
plot(W/pi,abs(H));
21
title('数字巴特沃斯滤波器'); %数字巴特沃斯滤波器
y3=filter(B,A,y2); %滤波后信号 fa=fft(a1,N1); fy=fft(y3,N1); figure
subplot(3,1,1),plot(w,abs(fa)); title('yuan xin hao pin pu'); subplot(3,1,2),plot(w,abs(F2));
title('叠加余弦噪声音乐信号频谱'); %叠加音乐信号频谱 subplot(3,1,3),plot(w,abs(fy));
title('数字巴特沃斯滤波器滤波频谱'); %滤波后频谱
%sound(y3,fs); %播放滤波后音乐信号
r=rand(N1,1)-0.5; yr=a1+r; figure; plot(yr);
%sound(yr,fs); %播放叠加随机噪声音乐信号
[N,Wc]=buttord(0.05,0.4,1,50); [B,A]=butter(N,Wc); [H,W]=freqz(B,A); figure;
plot(W/pi,abs(H));
title('数字巴特沃斯滤波器2'); %数字巴特沃斯滤波器
yf=filter(B,A,yr); %滤波后信号 Fz=fft(r,N1); Fr=fft(yr,N1); Ff=fft(yf,N1); figure;
subplot(2,1,1),plot(w,abs(fa)); title('yuan xin hao pin pu'); subplot(2,1,2),plot(w,abs(Fz)); title('随机噪声频谱'); figure;
subplot(2,1,1),plot(w,abs(Fr));
title('叠加随机噪声音乐信号频谱'); %叠加音乐信号频谱 subplot(2,1,2),plot(w,abs(Ff));
title('数字巴特沃斯滤波器滤波频谱'); %滤波后频谱
sound(yf,fs); %播放滤波后音乐信号
22
23
24
25
26
27
1, 三余弦信号的频谱为不同频率处得三根线,加噪声后的音乐信号频谱是在原信号频谱上加了三条不同频率的线。加噪声后音乐信号能听到原有的音调,但里面有非常大的杂音,兹兹的噪声。
2, 对加余弦噪声的信号进行滤波,用巴特沃斯滤波器滤波,参数为:通带截止频率0.06pi,阻带开始频率0.3pi,阻带衰减50db,滤波后滤掉了一部分高频信息,三根余弦基本滤除。滤波后信号听起来还稍微有点杂音,有稍微的失真。
3, 对原信号加随机白噪声,白噪声均匀分布,对其用巴特沃斯滤波器滤波,参数为:通带截止频率0.05pi,阻带开始频率0.4pi,阻带衰减50db,滤波后滤掉了一部分高频信息,
阻带衰减快,到0.4pi就衰减到0,但还保留了低频处得噪声,滤波后音乐信号听起来能听出原调,但有失真,且伴随有较大声的随机白噪声。
实验6
6、音乐信号的幅频滤波及相频分析
1设计低通滤波器(可自行选取不同的截止频率),滤除原始音乐信号的高频信息,观察滤○
波前后的幅度频谱,并比较滤波前后的音乐效果,感受高频信息对音乐信号的影响; 2设计高通滤波器(可自行选取不同的截止频率),滤除原始音乐信号的低频信息,观察滤○
波前后的幅度频谱,并比较滤波前后的音乐效果,感受高频信息对音乐信号的影响; 3选取两端不同的音乐信号,分别将其幅度谱和相位谱交叉组合构成新的音乐信号,播放○
并比较组合后的音乐与原始音乐,感受相频信息对音乐信号的影响。
clear all;close all;clc
[a,fs,bit]=wavread('c:\\MATLAB6p5\\work\\陪你一起看草原.wav'); size(a); y1=a(:,1);
a1=y1(10000:100000);
%sound(a1,fs); %播放原的信号1
28
N1=length(a1);
F1=fft(a1,N1); %原信号1傅立叶变换 w=2/N1*[0:N1-1];
[N,Wc]=buttord(0.1,0.2,1,30); [B,A]=butter(N,Wc); [H,W]=freqz(B,A); figure
plot(W/pi,abs(H));
title('数字巴特沃斯滤波器'); %数字巴特沃斯滤波器
a2=filter(B,A,a1); %滤波后信号 fd=fft(a2,N1); figure;
subplot(211),plot(w,abs(F1));
title('原信号1频谱'); % 原信号1频谱 xlabel('f'); ylabel('幅度');
subplot(212),plot(w,abs(fd));
title('数字巴特沃斯滤波器滤波频谱'); %滤波后频谱
%sound(a2,fs); %播放滤波后音乐信号
[N,Wc]=buttord(0.1,0.2,1,30); [B,A]=butter(N,Wc,'high'); [H,W]=freqz(B,A); figure
plot(W/pi,abs(H));
title('数字巴特沃斯滤波器'); %数字高通巴特沃斯滤波器
a3=filter(B,A,a1); %滤波后信号 fg=fft(a3,N1); figure
plot(w,abs(fg));
title('数字巴特沃斯滤波器滤波频谱'); %滤波后频谱
%sound(a3,fs); %播放滤波后音乐信号
[x,fs,bit]=wavread('C:\\MATLAB6p5\\work\\刘欢 - 在路上.wav'); size(x); x1=x(:,1);
x2=x1(10000:100000);
%sound(x2,fs); %播放原的信号2
29
figure
subplot(211),plot(x2)
F2=fft(x2,N1); %原信号2傅立叶变换 w=2/N1*[0:N1-1];
subplot(212),plot(w,abs(F2));
title('原信号2频谱'); % 原信号2频谱 xlabel('f'); ylabel('幅度');
Fa1=abs(F1); Fa2=abs(F2);
Fx1=angle(F1); Fx2=angle(F2);
f1=Fa1.*exp(j*Fx2); %相位谱和幅度谱交叉组合f2=Fa2.*exp(j*Fx1); figure
subplot(211),plot(w,abs(f1));
title('原信号1幅度谱,原信号2相位谱'); subplot(212),plot(w,abs(f2));
title('原信号2幅度谱,原信号1相位谱'); b1=ifft(f1); b2=ifft(f2);
%sound(real(b1),fs); %sound(real(b2),fs);
30
31
32
33
1, 通滤波器滤掉高频信息,声音听起来比较低沉、沉闷,高频分量解释信号的突变部分。
2, 高通滤波器滤掉低频信息,声音听起来比较尖锐、不浑厚,低频影响信号整体部分。
3, 通过幅度谱、相位谱交叉组合,组合后音乐信号听起来与提供相位谱的音乐信号相似,相位谱影响音乐信号的音色。
34
因篇幅问题不能全部显示,请点此查看更多更全内容