郑州住房和城乡建设厅网站,ip域名查询网站入口,广告代理,便民网app下载一、实验目的
#xff08;1#xff09;掌握利用DFT近似计算不同类型信号频谱的原理和方法。
#xff08;2#xff09;理解误差产生的原因及减小误差的方法。
#xff08;3#xff09;培养学生自主学习能力#xff0c;以及发现问题、分析问题和解决问题的能力。
二、…一、实验目的
1掌握利用DFT近似计算不同类型信号频谱的原理和方法。
2理解误差产生的原因及减小误差的方法。
3培养学生自主学习能力以及发现问题、分析问题和解决问题的能力。
二、知识点及背景知识
1利用DFT分析连续信号的频谱DFT参数
2 声音包括语音、乐音、噪音等。乐音是发音物体有规律地振动而产生的具有固定音高的音如音乐中的1(Do)、2(Re)、3(Mi)。按照音高顺次排列的一串乐音就是音阶如大家熟悉的1(Do )2(Re)3(Mi) 4(Fa)5(So)6(La)7(Si)就是音阶。乐音由不同频率的正弦信号构成其最简单的数学模型是cos(2pft)如C大调音阶各乐音对应的频率如下表 乐音 1 2 3 4 5 6 7 对应频率 261.63 293.66 329.63 349.23 392 440 493.88
三、研讨内容
1利用DFT分析x(t)Acos(2pf1t)Bsin(2pf2t)的频谱其中f1200Hzf2220Hz。分析题目给出合适的DFT参数并对实验结果进行分析讨论窗口的长度和窗口的类型对谱分析有何影响。 (1)AB1; (2)A1,B0.1。
代码
A 1;B 0.1;f1 200;f2 220;
t [0:0.001:0.5];
y A*cos(2*pi*f1*t)B*sin(2*pi*f2*t);
subplot(2,2,1);plot(t,y);title(原始信号);
axis([0,0.5,-2,2])
y2 fftshift(fft(y));
fs linspace(-1000/2,1000/2,length(y));
subplot(2,2,2);plot(fs,abs(y2));title(原始频谱)
bm blackman(length(y));
win y.*bm;
subplot(2,2,3);plot(t,win);axis([0,0.5,-2,2]);
title(加blackman窗后信号)
subplot(2,2,4);
win_fft fftshift(fft(win));
fs linspace(-1000/2,1000/2,length(win));
plot(fs,abs(win_fft));
title(加blackman窗后频谱)
结果
AB1 A1,B0.1 分析
实验中DFT点数为信号长度从图中可以看出blackman窗的频谱泄露要比矩形窗(原始带限信号)的小。 代码
w0 12*pi/64;w1 13*pi/64;
k 0:63;L 64;
xk cos(w0*k)1*cos(w1*k);plot(xk);
xk_f fftshift(fft(xk,L));f1 (0:L-1)/L;
figure(1);plot(f1,abs(xk_f));title(64点DFT)
k 0:127;L 128;
xk cos(w0*k)1*cos(w1*k);
xk_f fftshift(fft(xk,L));f1 (0:L-1)/L;
figure(2);plot(f1,abs(xk_f));title(128点DFT)
k 0:511;L 512;
xk cos(w0*k)1*cos(w1*k);
xk_f fftshift(fft(xk,L));f1 (0:L-1)/L;
figure(3);plot(f1,abs(xk_f));title(512点DFT)
结果分析
64点DFT时两个谱峰混在一起无法分辨出来128点DFT时两个谱峰依旧混在一起无法分辨出来512点DFT时两个谱峰分离开了。因为DFT是对离散信号频谱DTFT的等间隔抽样DFT点数越多谱线间隔越小频谱会显示更多的细节也就能够区分出相邻的谱峰了。
3(*)利用DFT分析音阶信号yueyin1.wav的频谱。要求读取该信号的抽样频率获得时域抽样点数N确定信号的持续时间以及合适的DFT点数并根据谱分析的结果判断是什么调的音阶。
C大调对应频率 乐音 1 2 3 4 5 6 7 对应频率 261.63 293.66 329.63 349.23 392 440 493.88
代码
[y,fs] audioread(yueyin1.wav)%y为时域抽样点数fs为抽样频率8000Hz
N length(y);L N
FFT fftshift(fft(y,L));Wsam 2*pi*fs
W (-Wsam/2(0:L-1)*Wsam/L)/(2*pi)
plot(W,abs(FFT));axis([0,600,0,1000]);title(yueyin1幅度谱)
结果分析:
从图中可以看出yueyin1对应的是C大调。实验中得出信号抽样频率为8KHz抽样点数32000点从而计算出信号持续时间为32000/80004S这与播放器显示的时长一致。本实验中采取的DFT点数为信号时域点数。 1利用DFT分析和弦信号hexian1.wav频谱确定构成该和弦是哪几个乐音即什么频率分量
代码
[y,fs] audioread(hexian1.wav);
N length(y);L N
FFT fftshift(fft(y,L));Wsam 2*pi*fs;W (-Wsam/2(0:L-1)*Wsam/L)/(2*pi)
figure(1);plot(W,abs(FFT));axis([-500,500,0,1500]);title(hexian1幅度谱)
plot(W,abs(FFT));axis([0,600,0,1000]);title(yueyin1幅度谱)
结果分析:
与乐音表对比该和弦应该是由2、5、6乐音组成。
2若乐曲全音符的持续时间为0.2s 16分音符从理论上分析利用DFT分析其乐音构成会出现什么问题设计实验验证一下你的判断并给出解决问题的方案。
代码
%0.2s的16分音符
N100;L1024;f1100;f2200;f3300;
fs1000;ws2*pi*fs;
T1/fs;t(0:(N-1))*T;
ycos(2*pi*f1*t)cos(2*pi*f2*t)cos(2*pi*f3*t);
Yfftshift(fft(y,L));w(-ws/2(0:L-1)*ws/L)/(2*pi);
figure(2);subplot(2,1,1);plot(w,abs(Y));
axis([-350,350,0,80]);title(矩形窗截短后幅度谱);
wh (hann(N));y y.*wh;
Y2 fftshift(fft(y,L))
subplot(2,1,2);plot(w,abs(Y2));axis([-350,350,0,50]);title(hann窗截短后频谱)
结果分析:代码
[y,fs] audioread(yueyin2.wav)
ws 2*pi*fs;N length(y);L N
w (-ws/2(0:L-1)*ws/L)/(2*pi);Y fftshift(fft(y,L))
plot(w,abs(Y));axis([0,2500,0,1100]);title(yueyin2频谱)
for i 1:8 ky((i-1)*40001:i*4000) yueyin(k,i,ws)
end
%yueyin.m
function f yueyin(y,i,ws) Y fftshift(fft(y)) N length(y) L N w (-ws/2(0:L-1)*ws/L)/(2*pi) subplot(2,4,i) plot(w,abs(Y)) axis([200,2100,0,1000]) title(i)
end
结果
分析:
不能直接确定各乐音的频谱组成因为频谱不包含时间信息不能确定各乐音的频谱构成。解决方法将乐音信号按时间分为八小段再对每一小段进行谱分析得到相应的频谱如上图所示。
从上图可以得到各个乐音谐波分量1-7(i)的频率依次呈递增趋势。