近代数字信号处理实验-DFT分析信号的频谱

一、实验目的

(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)的频谱,其中f1=200Hzf2=220Hz。分析题目,给出合适的DFT参数,并对实验结果进行分析,讨论窗口的长度和窗口的类型对谱分析有何影响。

 (1)A=B=1; (2)A=1,B=0.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窗后频谱')

  • 结果:

A=B=1

      A=1,B=0.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/8000=4S,这与播放器显示的时长一致。本实验中采取的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分音符

N=100;L=1024;f1=100;f2=200;f3=300;

fs=1000;ws=2*pi*fs;

T=1/fs;t=(0:(N-1))*T;

y=cos(2*pi*f1*t)+cos(2*pi*f2*t)+cos(2*pi*f3*t);

Y=fftshift(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

   k=y((i-1)*4000+1: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)的频率依次呈递增趋势。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/493401.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

人工智能+能源:能源行业变革新趋势

来源:资本实验室随着环保压力的不断加大,以及可再生能源成本持续降低等因素,越来越多的国家都开始大力推动从传统化石能源转向可再生能源,全球很多大型企业也纷纷加入了全球可再生能源计划RE100,以实现可再生能源100%的…

利用numpy生成各种波

一,生成矩形波 矩形波的傅里叶级数 xnp.linspace(-np.pi,np.pi,201) knp.arange(1,99) k2*k-1 ynp.zeros_like(x) for i in range(len(x)):y[i](4/np.pi)*np.sum(np.sin(k*x[i])/k) # print(t) # print(f) plt.plot(x,y) plt.show() 二,生成锯齿波和三角…

解决TeamViewer访问超时限制的问题

一、卸载TeamViewer:找到安装路径,点击uninstall卸载 二、修改MAC地址 1、查看现有的mac地址:打开cmd界面,输入ipconfig/all 按回车,红框标记为无线局域网mac地址。 2、修改现有无线局域网mac地址 (1)按住…

Linux系统中的load average

1. load average 定义 linux系统中的Load对当前CPU工作量的度量。简单的说是进程队列的长度。 Load Average 就是一段时间 (1 分钟、5分钟、15分钟) 内平均 Load 。 通过系统命令"w"查看当前load average情况 上边0.31,0.30,0.31表示 第一位0.…

工业机器人原来可以这么酷,马斯克和中国美的都对它青睐有加

来源:机器人大讲堂摘要:工业机器人或许是大家认为最枯燥的机器人之一了吧?每次机器人展会上,工业机器人的展位总会备受冷落,硬邦邦的机械臂相比呆萌可爱的服务机器人总是少了那么几分吸引力。但是,我们也不…

100年前没人信他,但他仅1项研究便远程摧毁万架飞机……

来源:世界科技创新论坛摘要:他是爱迪生最强大的对手,也是一个一生独立开发并取得专利700种,合作开发达1000种以上的科学狂人。科学界有一个普遍共识,人类历史上曾经存在过两个公认的旷世天才:达芬奇和尼古拉…

服务器安装opencv报错--libSM.so.6: cannot open shared ...+tensorflow 报错libcusolver.so.8.0: can not...

1.安装opencv出现以下错误: pip install opencv-contrib-python apt-get install -y python-qt4 apt-get install tk-dev python-tk 例如linux.zip.001, linux.zip.002, linux.zip.003... 首先 cat linux.zip* > linux.zip #合并为一个zip包 然后 unzip linu…

AlphaGo之后,DeepMind重磅推出AlphaFold:基因序列预测蛋白质结构

来源:机器之心摘要:Alphabet(谷歌)旗下公司 DeepMind 的人工智能 AlphaGo 曾在国际象棋、围棋等项目中取得了超越人类的表现,其研究不仅震惊世界,也两次登上 Nature。如今,该公司已将人工智能技…

李开复看2019投资趋势:最坏的时代将酝酿最伟大的公司

来源:网易智能摘要:12月3日下午,创新工场在北京举办了2019投资趋势分享会。创新工场创始人、董事长兼CEO李开复,创新工场联合创始人、管理合伙人汪华与创新工场合伙人张鹰对目前中国经济形势和投资趋势做了分析。01最坏的时代将酝…

高斯混合模型做聚类

概述 聚类算法大多数采用相似度来判断,而相似度又大多数采用欧式距离长短来衡量,而GMM采用了新的判断依据—–概率,即通过属于某一类的概率大小来判断最终的归属类别 。 GMM的基本思想就是:任意形状的概率分布都可以用多个高斯分…

基于深度学习的NLP 32页最新进展综述,190篇参考文献

来源:专知摘要:深度学习使用多层学习层次的数据表示,并在许多领域得到了最优的结果。最近,各种各样的模型设计和方法在自然语言处理(NLP)蓬勃发展。在本文中,我们回顾了被广泛应用于各种NLP任务的深度学习相关模型和算法以及它们的发展演变过程。我们还总…

.net framework摘抄与理解

1."源码"编译成"托管模块": 2.将"托管模块"合并成"托管程序集" 3.clr中的"JIT"执行"托管程序集" 第二次执行已被JIT编译成机器码的Console.WriteLine("") 转载于:https://www.cnblogs.com/doujiaomifan…

“新一代人工智能前沿与挑战”国际研讨会专家观点分享

来源:西电人工智能学院摘要:2018年11月25日-26日举办的“新一代人工智能前沿与挑战”中青年论坛暨第二十一届学术周在西安电子科技大学圆满落幕,研讨会上包括长江学者、IEEE Fellow、领域顶尖中青年学者、新锐企业领导者等在内的国内外权威专…

决策树算法及可视化

经典决策树算法包括ID3算法、C4.5算法以及GBDT的基分类器CART算法 ,ID3算法选择特征的依据是信息增益、C4.5是信息增益比,而CART则是Gini指数。 例子: 所谓信息增益就是数据在得到特征X的信息时使得类Y的信息不确定性减少的程度。假设数据集D的信息熵为H(D)&#x…

python多进程并发+pool多线程+共享变量

一.多进程 当计算机运行程序时,就会创建包含代码和状态的进程。这些进程会通过计算机的一个或多个CPU执行。不过,同一时刻每个CPU只会执行一个进程,然后不同进程间快速切换,给我们一种错觉,感觉好像多个程…

高通骁龙855发布,5G大幕拉开,新一轮手机大战在即

来源:网易智能摘要:高通终于公布下一代移动芯片骁龙855。美国时间12月4日,高通在美国夏威夷召开了第三届高通骁龙技术峰会,在峰会首日,骁龙855正式发布。并非外界传言的8150,高通还是沿用了之前的命名规则。…

机器学习的几种方法(knn,逻辑回归,SVM,决策树,随机森林,极限随机树,集成学习,Adaboost,GBDT)

一.判别模式与生成模型基础知识 举例:要确定一个瓜是好瓜还是坏瓜,用判别模型的方法是从历史数据中学习到模型,然后通过提取这个瓜的特征来预测出这只瓜是好瓜的概率,是坏瓜的概率。 举例:利用生成模型是根据好瓜的特…

京东物联网战略大升级|与华为合作,疯狂发布新品,“养鱼”的京东正在物联网赛道上花式秀技术...

来源:物联网智库12月4日下午,在“智联万物 新响无限”2018年京东IoT战略发布会上,京东发布了其IoT领域的最新战略规划,推出了新的品牌“京鱼座”,还推出一系列合作品牌与硬件产品,该战略不仅是对去年5月9日…

电动车的惊世骗局

来源:世界科技创新论坛摘要:新能源是一个很好的机会,技术也没有瓶颈,如果发展对了方向,十年扶持一两个世界领先水平的企业是没问题的。但如果有人趁机“钻空子”,让有限的资源被浪费,怕是很难有…

语义分割中的类别不平衡的权重计算

这是5幅图,加上背景共5类。 可以参考这篇文章https://blog.csdn.net/u012426298/article/details/81232386 对于一个多类别图片数据库,每个类别都会有一个class frequency, 该类别像素数目除以数据库总像素数目, 求出所有class frequency 的median 值&…