DSP研究性学习报告频谱计算.docx
《DSP研究性学习报告频谱计算.docx》由会员分享,可在线阅读,更多相关《DSP研究性学习报告频谱计算.docx(22页珍藏版)》请在冰豆网上搜索。
DSP研究性学习报告频谱计算
《数字信号处理》课程研究性学习报告
姓名
学号
同组成员
指导教师
时间
DFT近似计算信号频谱专题研讨
【目的】
(1)掌握利用DFT近似计算不同类型信号频谱的原理和方法。
(2)理解误差产生的原因及减小误差的方法。
(3)培养学生自主学习能力,以及发现问题、分析问题和解决问题的能力。
【研讨题目】基本题
1.D大调和弦由频率为293.66,369.99,440Hz的正弦信号组成,即x(t)=cos(2πf1t)+cos(2πf2t)+cos(2πf3t)的频谱,其中f1=293.66Hz,f2=369.99Hz,f3=440Hz。
(1)确定合适的DFT参数。
(2)利用DFT分析其频谱,并比较不同窗函数对谱分析结果的影响。
(3)若乐曲全音符的持续时间为0.2s,该和弦为16分音符,利用DFT分析其频谱会出现什么问题?
【题目分析】
【仿真结果】
N=25;
L=512;
f1=293.66;f2=369.99;f3=440;fs=1500;
T=1/fs;
ws=2*pi*fs;
t=(0:
N-1)*T;
x=cos(2*pi*f1*t)+cos(2*pi*f2*t)+cos(2*pi*f3*t);
X=fftshift(fft(x,L));
w=(-ws/2+(0:
L-1)*ws/L)/(2*pi);
plot(w,abs(X));
ylabel('幅度谱')
N=15;
fs=400Hz;
L=32;
N=50;
L=512;
f1=293.66;f2=369.99;f3=440;fs=1500;
T=1/fs;
ws=2*pi*fs;
t=(0:
N-1)*T;
x=cos(2*pi*f1*t)+cos(2*pi*f2*t)+cos(2*pi*f3*t);
wh=(hamming(N))';x=x.*wh;
X=fftshift(fft(x,L));
w=(-ws/2+(0:
L-1)*ws/L)/(2*pi);
plot(w,abs(X));
ylabel('幅度谱'
N=25;
L=512;
f1=293.66;f2=369.99;f3=440;fs=1500;
T=1/fs;
ws=2*pi*fs;
t=(0:
N-1)*T;
x=cos(2*pi*f1*t)+cos(2*pi*f2*t)+cos(2*pi*f3*t);
wh=(hamming(N))';x=x.*wh;
X=fftshift(fft(x,L));
w=(-ws/2+(0:
L-1)*ws/L)/(2*pi);
plot(w,abs(X));
ylabel('幅度谱')
【结果分析】
由实验结果可知,利用DFT进行谱分析时参数选择一般遵循以下原则:
(1)抽样频率fs≥2fm
(2)抽样信号长度
矩形窗N≥fs/▽f
Hamming窗N≥2fs/▽f
(3)DFT点数L≥fs/▽fd
【自主学习内容】
【阅读文献】
【发现问题】(专题研讨或相关知识点学习中发现的问题):
【问题探究】
【仿真程序】
【研讨题目】基本题
2.已知某离散序列为x[k]=cos(Ω0k)+0.75cos(Ω1k),0k63其中Ω0=0.4π,Ω1=Ω0+π/64
(1)对x[k]做64点FFT,画出此时信号的频谱。
(2)如果
(1)中显示的谱不能分辨两个谱峰,是否可对
(1)中的64点信号补零而分辨出两个谱峰。
通过编程进行证实,并解释其原因。
(3)给出一种能分辨出信号中两个谱峰的计算方案,并进行仿真实验。
(M2-4)
【温磬提示】
在计算离散非周期序列频谱时常用Ω/π作为横坐标,称Ω/π为归一化频率(normalizedfrequency)。
在画频谱时需给出横坐标。
每幅图下都需给出简要的文字说明。
由于离散非周期序列频谱是周期的,所以在计算时不需要用fftshift函数对fft计算的结果进行重新排列。
【序列频谱计算的基本方法】
【题目分析】
分析影响谱峰分辨率的主要因素,进一步认识补零在在频谱计算中的作用。
【仿真结果】
(1)
k=0:
63;
L=64;
w0=0.4*pi;
w1=w0+pi/64;
x=cos(w0*k)+0.75*cos(w1*k);x=[xzeros(1,L-length(x))];X=fftshift(fft(x));
w=-pi:
2*pi/L:
pi-2*pi/L;plot(w/pi,abs(X));
xlable(w/pi);
ylable(X(jw));
(2)L=512;
(3)N=128;
k=0:
127;
L=128;
w0=0.4*pi;
w1=w0+pi/64;
x=cos(w0*k)+0.75*cos(w1*k);x=[xzeros(1,L-length(x))];X=fftshift(fft(x));
w=-pi:
2*pi/L:
pi-2*pi/L;plot(w/pi,abs(X));
xlable(w/pi);
ylable(X(jw));
【结果分析】
通过改变DFT点数,不能分辨除两个谱峰,而改变抽样信号长度可以改变频谱分辨率。
【自主学习内容】
【阅读文献】
【发现问题】(专题研讨或相关知识点学习中发现的问题):
【问题探究】
【仿真程序】
【研讨题目】基本题
3.已知一离散序列为x[k]=AcosΩ0k+Bcos((Ω0+∆Ω)k)。
用长度N=64的哈明窗对信号截短后近似计算其频谱。
试用不同的A和B的取值,确定用哈明窗能分辩的最小的谱峰间隔
中c的值。
(M2-3)
【题目分析】
本题讨论用哈明窗计算序列频谱时的频率分辨率。
【仿真结果】
(1)A、B相等时
N=64;
k=0:
63;
L=0:
511;
A=1;B=1;
dw1=pi/32;
x1=A*cos(pi*k./4)+B*cos(pi*k./4+dw1*k);wh=(hamming(N))';x1=x1.*wh;
y1=fft(x1,512);
plot(L/512,abs(y1));
title('dw1=pi/32');
(2)A、B不相等且相差较大时
【结果分析】
教材中写的是hamming窗的c=2,而但这只是理论上的推导,根据以上的仿真结果可知,当AB相近时,取c=3能完全分辨出两个谱峰,当AB相差较大时,取c=4时能完全分辨两个谱峰。
说明实际与理论存在着差距,当我们选择窗函数时要根据具体情况进行分析。
【自主学习内容】
【阅读文献】
【发现问题】(专题研讨或相关知识点学习中发现的问题):
【问题探究】
在离散序列频谱计算中为何要用窗函数?
用不同的窗函数对计算结果有何影响?
与矩形窗相比哈明窗有何特点?
如何选择窗函数?
【仿真程序】
【研讨题目】中等题
4.各种乐器演奏音节的时频特性分析
(1)从下面乐器中选择三种,查找其演奏的曲目或音阶,存成wav格式(信号长度8秒即可)。
长笛,短笛,单簧管,低音单簧管,双簧管,萨克斯,低音萨克斯,大管,小号,长号,圆号,次中音号,大号,钢琴,定音鼓,军鼓,木琴,钢片琴,小提琴,中提琴,大提琴,贝斯提琴。
(2)分析你所选择乐器演奏音乐的频谱,对照乐谱,总结出你所选择乐器音节的基波频谱、谐波频率和幅度。
(3)画出你所选择乐器演奏音乐的时域波形,分析其包络特征,并给出包络拟合程序。
【音乐背景知识】
音乐是乐音随时间流动而形成的艺术,用信号专业术语来讲就是周期信号频率即某种指定规律的频谱结构随时间节奏变化的一种表述。
乐谱上的每一个音符表达了此时此刻规定出现的信号频率和持续时间。
乐音的基本特征可以用基波频率、谐波频率、包络波形几方面来描述。
1、乐音基波构成规律
我们平常读乐谱时唱出的1(do)、2(re)、3(mi)等并未固定基波频率,当指定乐曲的曲调时才知道此时对应的频率值。
比如C大调中“1”的基波频率为261.63Hz,F调中“1”的基波频率为349.23Hz,F调“5”的基波频率为523.25Hz。
上面那些频率值都是按照“十二平均律”计算导出的,钢琴是十二平均律制乐器,国际标准音规定,钢琴的a1键的频率是为440Hz;又规定每相邻半音的频率比值为21/12=1.059463,根据这规定,就可以得出钢琴上每一个琴键音的频率,图1是钢琴键盘和相应频率。
如与a1右边相邻#a1的频率是440×1.059463=466.16372Hz;再往上,b1的频率是493.088321Hz;c2的频率是523.25099......同理,与a1左边相邻的#g1的频率是440÷1.059463=415.030473Hz.....这种定音的方式就是“十二平均律”。
图1钢琴键盘和相应频率
2、音乐谐波的作用——音色
在乐音领域,称谐波为“泛音”,正是这些泛音决定了其不同的音色,使人能辨别出是不同的乐器发出的声音。
当指定音名(音调)之后仅指定了乐音信号的基波频率,谐波情况并未说明。
对于各种乐器如钢琴或吉他都可以发出某一音调,例如fA1=440Hz的乐音,而人的听觉会明显感觉两者的不同,这是由于谐波成分有所区别,频谱结构不同引起的,各种乐器都有自己的谐波分布规律,同种乐器不同音阶的谐波构成还可能略有区别。
3、音乐包络波形
包络是描述乐音特性的另一个重要因素。
各种乐器的包络大体上可以划分为以下几种类型:
连续型(风琴、弦乐)、弹奏型(钢琴、吉他)、击奏型(木琴、木鱼)、吹奏型(管乐)等。
不同类型的乐器,它们的包络形状也各不相同。
在音乐合成中,为简化编程,可以把复杂的包络函数用少量直线近似。
有时为了保证在乐音的邻接处信号幅度为零,也可以用指数衰减的包络来表示。
4、乐音持续时间
当知道了基波频率、谐波成分、包络形状后,还不能构成一首音乐,还必须知道每个乐音的持续时间。
每个音调都可以用连续的一段正弦信号并带有一小段静音(停顿)来表示。
停顿保证我们可以区分开连续的相同音调,每个音调的持续时间取决于它是全音符、二分之一音符、四分之一音符还是八分之一音符等等。
每个音符之间的停顿是相同的,不随音符的长度而变化。
【题目分析】
【仿真结果】
【结果分析】
【自主学习内容】
【阅读文献】
【发现问题】(专题研讨或相关知识点学习中发现的问题):
【问题探究】
【仿真程序】
【研讨内容】——扩展题
5.男女声音信号的转换
(1)采集若干男高音和女高音演唱的歌曲(wav格式)。
(2)对采集的音频信号进行频谱分析,并给出男高音和女高音的频率范围。
(3)研究男女声音信号转换的方法,将男高音演唱的歌曲转换成女高音演唱的歌曲。
【男女声音信号转换的方法】
【仿真程序】
【仿真结果】
【结果分析】
【自主学习内容】
【阅读文献】
【发现问题】
【问题探究】
【研讨题目】扩展题(选做)
6.本题研究连续周期信号频谱的近似计算问题。
周期为T0的连续时间周期信号x(t)可用Fourier级数表示为
其中
X(nω0)称为连续时间周期信号x(t)的频谱函数。
称为信号的基频(基波),
称为信号的谐波。
如果信号x(t)函数表达式已知,则可由积分得出信号的频谱。
如果信号x(t)函数表达式未知,或者x(t)函数表达式非常复杂,则很难由积分得信号的频谱。
本题的目的就是研究如何利用DFT近似计算连续时间周期信号的频谱。
(1)若在信号x(t)的一个周期T0内抽样N个点,即
,T为抽样周期(间隔),可获得序列x[k]
试分析序列x[k]的DFT与连续时间周期信号x(t)的频谱X(nω0)的关系;
(2)由
(1)的结论,给出由DFT近似计算周期信号频谱X(nω0)的方案;
(3)周期信号x(t)的周期T0=1,x(t)在区间[0,1]的表达式为
x(t)=20t2(1-t)4cos(12πt)
(a)试画出信号x(t)在区间[0,1]的波形;
(b)若要用10次以内的谐波近似表示x(t),试给出计算方案,并计算出近似表示的误差。
讨论出现误差的原因及减小误差的方法。
【题目分析】
【理论推导】
DFT计算所得结果X[m]与连续周期信号频谱X(nω0)的关系。
【计算方案】
根据理论推导结果设计近似计算方案。
分析产生误差的主要原因。
【扩展分析】
如果周期信号x(t)是带限信号,即信号的最高频率分量为Mω0(是正整数),试确定在一个周期内的最少抽样点N,使得在频谱的计算过程当中不存在混叠误差。
与抽样定理给出的结论比较,发表你的看法。
【仿真结果】
【结果分析】
讨论DFT点数对近似计算的影响,讨论所取谐波项的多少对近似计算的影响。
误差分析要给出定量的结果,如平均误差,最大误差等。
【自主学习内容】
【阅读文献】
【发现问题】(专题研讨或相关知识点学习中发现的问题):
【问题探究】
【仿真程序】
电子文件提交说明:
文件名学号_姓名_DSP1(每组在文件名上只需提供一个学号和姓名)
文件格式MicrosoftWord2007或以下版本
建议用Office套装软件Visio进行绘图。
Matlab所绘图形可在Visio环境下ungroup后进行编辑。