数字信号处理课程设计任务.docx

上传人:b****5 文档编号:5396400 上传时间:2022-12-15 格式:DOCX 页数:13 大小:33.03KB
下载 相关 举报
数字信号处理课程设计任务.docx_第1页
第1页 / 共13页
数字信号处理课程设计任务.docx_第2页
第2页 / 共13页
数字信号处理课程设计任务.docx_第3页
第3页 / 共13页
数字信号处理课程设计任务.docx_第4页
第4页 / 共13页
数字信号处理课程设计任务.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

数字信号处理课程设计任务.docx

《数字信号处理课程设计任务.docx》由会员分享,可在线阅读,更多相关《数字信号处理课程设计任务.docx(13页珍藏版)》请在冰豆网上搜索。

数字信号处理课程设计任务.docx

数字信号处理课程设计任务

《数字信号分析与处理》课程设计任务

(测控技术及仪器专业)(第七学期)

一、数字信号分析与处理课程设计的目的:

该课程设计是测控技术与仪器专业的必修课,开设课程设计的目的使学生掌握数字信号处理的基本概念和基本理论,能够利用辅助工具进行FIR和IIR数字滤波器的设计,进行一维信号的频谱分析,并进行仿真验证。

加强实践教学环节,加强学生独立分析、解决问题的能力,培养学生动手能力和解决实际问题的能力,实现宽口径教育。

二、本课程设计的时间:

测控技术及仪器专业本课程设计一周

三、课程设计内容:

每班按学号从前向后排列,每3人一组;最后一组人可以多或少一点。

每组做同一个题目,第一组做题目一,第二组做题目二,第三组做题目三…第八组做题目八…

课程设计步骤:

(1)确定方案;

(2)用MatLab或LabView设计程序

(3)设计验证方法;

(4)进行设计验证;

(5)进行设计验收或答辩。

(6)完成设计报告;

四、课程考核分三部分:

第一部分是考勤和平时上机表现,占40%;不定期点名,必须全勤,否则没有成绩!

第二部分是答辩成绩,占30%,暂定于周4下午

第三部分为课程设计报告,占30%。

周五完成

题目一、地震发生时,除了会产生地震波,还会由地层岩石在断裂、碰撞过程中所发生的震动产生次声波。

它的频率大约在每秒十赫兹到二十赫兹之间(可以用11Hz和15Hz的两个信号的和进行仿真,幅度可以分别设定为1、2)。

大气对次声波的吸收系数很小,因此它可以传播的很远,而且穿透性很强。

通过监测次声波信号可以监测地震的发生、强度等信息,因为自然界中广泛存在着各种次声波,这就对地震产生的次声波产生了干扰(可以用白噪声模拟,方差为5),需要采取一定的处理方法,才能检测到该信号,请设计检测方案;并处理方法给出具体的软件(可以以51系列单片机、STM32F407、TMS320F28335或TMS320F6745为例)或硬件的实现方法(简言之,软件设计流程,硬件设计电路原理图)

题目二、采集一未知频率的的混有白噪声的正弦信号(假设为频率为35Hz,幅度为1,初相位为0,噪声的方差为5);请设计一滤波器提取该正弦信号并对其进行频谱分析;并处理方法给出具体的软件(可以以51系列单片机、STM32F407、TMS320F28335或TMS320F6745为例)或硬件的实现方法(简言之,软件设计流程,硬件设计电路原理图)

题目三、已知一个方波信号(可以假设频率为160Hz,幅度为1),混有方差为2的白噪声,请设计滤波器,提取该信号;并采用快速卷积的方法对信号进行滤波(见教学参考书的第五章数字滤波器的基本结构5.3节FIR滤波器的基本结构四、快速卷积结构);将滤波后的信号与原方波信号进行比较。

题目四、ZFFT算法:

对正弦信号

用采样频率100kHz进行采样,打算对其进行频谱分析,由于用采样硬件(FPGA)直接进行FFT,为了节省资源,只能进行1024点FFT运算,由于频率分辨力为100Hz左右,在频谱上并不能分开这两个信号,我们将采样的信号与复指数信号

进行相乘(即调制);然后用低通滤波器(截至频率可以选择为1024Hz)对其进行滤波,这样我们将被测信号的频谱搬移到0频率,然后我们对滤波后的信号重新采样;再进行1024点的FFT运算,这时频率分辨力为1Hz,应该能够分辨这两个频率很靠近的正弦信号。

请将这一处理过程用MATLAB仿真完成。

题目五、假设有方波信号与正弦信号相乘

并混有白噪声;设计滤波器对其进行滤波,提出信号,对其进行频谱分析,观察其频谱,看一看这个信号的频谱有什么特征;;并处理方法给出具体的软件(可以以51系列单片机、STM32F407、TMS320F28335或TMS320F6745为例)或硬件的实现方法(简言之,软件设计流程,硬件设计电路原理图)

题目六、人能听到的声音的频率范围一般是20Hz~20kHz,但是我们听到的语音、乐音要低于这个频率范围,现在我们有一首歌曲“爸爸的草鞋.wav”,采样频率为44100Hz;请完成以下处理

(1)将歌曲重新用8000Hz频率采样,然后播放处理后的声音数据,听听发生了什么,为什么?

(2)分析歌曲的频谱,通过频谱分析去解释歌手张明敏的嗓音特点.

(3)设计滤波器,弱化伴奏乐音。

题目七、现在我们有一首歌曲“北京北京.wav”,采样频率为44100Hz;请完成以下处理

(1)将歌曲重新用2000Hz频率采样,然后播放处理后的声音数据,听听发生了什么,为什么?

(2)分析歌曲的频谱,通过频谱分析去解释歌手黄勇与梁博的嗓音特点.

(3)设计滤波器,强化伴奏乐音。

题目八、现在我们有两首歌曲“体会.wav和CrazyFaith.wav”,采样频率为44100Hz;请完成以下处理

(1)将歌曲重新用2000Hz频率采样,然后播放处理后的声音数据,听听发生了什么,为什么?

(2)分析歌曲的频谱,通过频谱分析去解释男女歌手的嗓音特点.

(3)根据上面的分析,提出一个方案,对歌手通过声音进行自动识别

题目九、现在我们有一首歌曲“滴答.wav”,采样频率为44100Hz;请完成以下处理

(1)给歌曲加上10kHz的干扰,并进行播放。

(2)分析歌曲的频谱,通过频谱分析去解释女歌手的嗓音特点.

(3)根据上面的分析,设计滤波器对干扰进行滤除。

题目十、现在我们有一首歌曲“梦田.wav”,采样频率为44100Hz;请完成以下处理

(1)分析歌曲的频谱,通过频谱分析去解释女歌手(潘越云和齐豫)嗓音的不同.

(2)录制自己的声音数据(唱歌,说话也可以),比较一下同组同学声音特点。

(3)给出一个方案对录制的声音进行识别

题目十一、现在我们有一首歌曲“天下最美的草原.wav”,采样频率为44100Hz;请完成以下处理

(1)分析歌曲的频谱,通过频谱分析去解释歌手(呼斯楞)嗓音特点.

(2)录制自己的声音数据(唱歌,说话也可以),比较一下同组同学声音特点。

(3)将同组的男同学的声音频谱向高频搬移1kHz,女同学向低频搬移500Hz,播放修改的声音数据,听听发生了什么,为什么?

相关的音乐文件可以到网盘去下载,账号:

hustjtj@

在网盘的数字信号处理\数字信号处理课程设计\音乐文件目录下。

也可以用U盘到老师那里去拷贝。

参考资料:

1、用完全设计法设计数字滤波器

Fs=60*512;

t=0:

1/Fs:

0.2;

y=5*sin(2*pi*50*t)+2*sin(2*pi*150*t)+10*sin(2*pi*1000*t);

%设计椭圆低通滤波器,根据要求,分离第一个信号的滤波器

%通带内最大衰减纹波Rp=0.1db,阻带内最小衰减Rs=60dB

%通带为0~60Hz,阻带为140Hz至fs/2,一塌糊涂

Rp=0.1;Rs=60;

Wp=60;Ws=140;

%确定滤波器的阶数

[n,Wn]=ellipord(Wp/(Fs/2),Ws/(Fs/2),Rp,Rs,'z');

%设计滤波器

[b1,a1]=ellip(n,Rp,Rs,Wn)

%计算设计低通滤波器的幅度频率响应

[h1,w1]=freqz(b1,a1,1024,Fs);

%用设计的低通滤波器对信号y进行滤波得到信号yn1

yn1=filter(b1,a1,y);

 

firpmParks-McClellanoptimalFIRfilterdesign

b=firpm(n,f,a)returnsrowvectorbcontainingthen+1coefficientsoftheordernFIRfilterwhosefrequency-amplitudecharacteristicsmatchthosegivenbyvectorsfanda.

Theoutputfiltercoefficients(taps)inbobeythesymmetryrelation:

b(k)=b(n+2-k),k=1,…,n+1

Vectorsfandaspecifythefrequency-magnitudecharacteristicsofthefilter:

fisavectorofpairsofnormalizedfrequencypoints,specifiedintherangebetween0and1,where1correspondstotheNyquistfrequency.Thefrequenciesmustbeinincreasingorder.aisavectorcontainingthedesiredamplitudesatthepointsspecifiedinf.Thedesiredamplitudeatfrequenciesbetweenpairsofpoints(f(k),f(k+1))forkoddisthelinesegmentconnectingthepoints(f(k),a(k))and(f(k+1),a(k+1)).Thedesiredamplitudeatfrequenciesbetweenpairsofpoints(f(k),f(k+1))forkevenisunspecified.Theareasbetweensuchpointsaretransitionor"don'tcare"regions.fandamustbethesamelength.Thelengthmustbeanevennumber.Therelationshipbetweenthefandavectorsindefiningadesiredfrequencyresponseisshownintheillustrationbelow.

Examples

desiredandactualfrequencyresponsesofa17th-orderParks-McClellan

bandpassfilter:

f=[00.30.40.60.71];a=[001100];

b=firpm(17,f,a);

[h,w]=freqz(b,1,512);

plot(f,a,w/pi,abs(h))

legend('Ideal','firpmDesign')

[n,f0,mo,w]=remezord(f,m,dev,Fs);

Rp=3,Rs=40;

Fs=20000;f=[500]

EXAMPLE

Designalowpassfilterwithapassband-edgefrequencyof1500Hz,a

stopband-edgeof2000Hz,passbandrippleof0.01,stopbandripple

of0.1,andasamplingfrequencyof8000Hz:

[n,fo,mo,w]=firpmord([15002000],[10],[0.010.1],8000);

b=firpm(n,fo,mo,w);

Thisisequivalentto

c=firpmord([15002000],[10],[0.010.1],8000,'cell');

b=firpm(c{:

});

 

2、用simulink仿真验证

用simulink进行仿真验证

启动simulink

在simulink的库中打开Sources库中找到SineWave发生器,放三个在仿真文件中,双击进行参数设置,sinetype设为TimeBased,Time设为Usesimulationtime,Amplitude设为5,Bias设为0,Frequency设为2*pi*50,Phase设为0,Sampletime设为0;同样方法设置另外两个正弦发生器。

打开CommonlyUsedBolck库找到sum元件,放到仿真文件,双击进行参数设置,IconShape设为round,Listofsigns设为|+++,Sampletime设为-1。

打开Discrete库找到DiscreteFilter,放三个在仿真文件中,双击进行参数设置,

Numerator设为[b1],Denominator设为[a1],Sampletime设为1/Fs。

打开Sinks库找到Scope,放到仿真文件中

如上图进行连线。

3、用扬声器放音,麦克录音函数

recObj=audiorecorder(44100,16,2);

get(recObj)

%Collectasampleofyourspeechwithamicrophone,andplotthesignaldata:

%Recordyourvoicefor5seconds.

recObj=audiorecorder;

disp('Startspeaking.')

recordblocking(recObj,5);

disp('EndofRecording.');

%Playbacktherecording.

play(recObj);

%Storedataindouble-precisionarray.

myRecording=getaudiodata(recObj);

%Plotthewaveform.

plot(myRecording);

4、将wave文件读入,用sound放音

wavreadReadMicrosoftWAVE(".wav")soundfile.

Y=wavread(FILE)readsaWAVEfilespecifiedbythestringFILE,

returningthesampleddatainY.The".wav"extensionisappended

ifnoextensionisgiven.

[Y,FS,NBITS]=wavread(FILE)returnsthesamplerate(FS)inHertz

andthenumberofbitspersample(NBITS)usedtoencodethe

datainthefile.

[...]=wavread(FILE,N)returnsonlythefirstNsamplesfromeach

channelinthefile.

[...]=wavread(FILE,[N1N2])returnsonlysamplesN1throughN2from

eachchannelinthefile.

[Y,...]=wavread(...,FMT)specifiesthedatatypeformatofYused

torepresentsamplesreadfromthefile.

IfFMT='double',Ycontainsdouble-precisionnormalizedsamples.

IfFMT='native',Ycontainssamplesinthenativedatatype

foundinthefile.InterpretationofFMTiscase-insensitive,

andpartialmatchingissupported.Ifomitted,FMT='double'.

SIZ=wavread(FILE,'size')returnsthesizeoftheaudiodatacontained

inthefileinplaceoftheactualaudiodata,returningthe

2-elementvectorSIZ=[sampleschannels].

[Y,FS,NBITS,OPTS]=wavread(...)returnsastructureOPTSofadditional

informationcontainedintheWAVfile.Thecontentofthis

structurediffersfromfiletofile.Typicalstructurefields

include'.fmt'(audioformatinformation)and'.info'(text

whichmaydescribetitle,author,etc.)

OutputScaling

TherangeofvaluesinYdependsonthedataformatFMTspecified.

Someexamplesofoutputscalingbasedontypicalbit-widthsfound

inaWAVfilearegivenbelowforboth'double'and'native'formats.

FMT='native'

#BitsMATLABdatatypeDatarange

-------------------------------------------------

8uint8(unsignedinteger)0<=Y<=255

16int16(signedinteger)-32768<=Y<=+32767

24int32(signedinteger)-2^23<=Y<=2^23-1

32single(floatingpoint)-1.0<=Y<=+1.0

FMT='double'

#BitsMATLABdatatypeDatarange

-------------------------------------------------

N<32double-1.0<=Y<+1.0

N=32double-1.0<=Y<=+1.0

Note:

Valuesinymightexceed-1.0or+1.0forthecaseof

N=32bitdatasamplesstoredintheWAVfile.

Supportsmulti-channeldata,withupto32bitspersample.

SupportsMicrosoftPCMdataformatonly.

Seealsowavwrite,auread,auwrite.

clearall;closeall;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);

Audioread(2012b以上版本,可以读取mp3文件)

5、mp3文件的处理

MATLAB读取音频文件并进行音频特征提取

 (2013-04-0116:

40:

18)

转载▼

标签:

 

matlab

 

特征提取

 

it

分类:

 MATLAB音乐识别

1、用audioread('');函数读取电脑中的音频文件,参数是音频文件的路径:

[sampledata,FS]=audioread('F:

\1.mp3');

sampledata保存音频信号数据,FS是音频采样率,MP3格式的采样率一般为44100;

2、判断音频数据是否是双声道,如果是双声道则保留一个声道的数据,用calsample.m文件的函数完成此功能,文件内容如下:

functionsample=calsample(sampledata,FS)

temp_sample=resample(sampledata,1,FS/11025);

[m,n]=size(temp_sample);

if(n==2)

    sample=temp_sample(:

1);

else

    sample=temp_sample;

end

end

3、对音频数据进行快速傅里叶变换得到频谱图,并选取scope区域内的能量最大并且能量增幅最大的点作为峰值点,进行特征提取,keypoint.m文件内容如下:

functionpoint=keypoint(sample,scope)

%对音频数据进行快速傅里叶变换,得到变换后的数据为b,频率为f,时间为t

[b,f,t]=specgram(sample,1024,11025,hanning(1024),256);

specgram(sample,1024,11025,hanning(1024),256);%绘制频谱图

holdon;

energy=abs(b);%根据快速傅里叶变换后的数据进行能量计算

%energy=sample;

diffenergy=caldiffenergy(energy);%计算能量差分

[m,n]=size(energy);%获取能量矩阵的大小

%f=(0:

4);

%t=(0:

4);

f_unit=max(f)/(length(f)-1);%根据频率点个数计算频率单位长度

t_unit=max(t)/(length(t)-1);%根据时间点个数计算时间单位长度

k=1;

l=1;

p=1;

num=1;

point.t=0;

point.f=0;%point结构体数组用来保存峰值点

temp.t=0;

temp.f=0;%temp结构体数组用来保存计算中的临时点

count=0;%count为零表示在当前scope中未找到峰值点

x_f=0;

y_t=0;

plot(x_f,y_t);

holdon;

fori

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育 > 育儿知识

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1