预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共29页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

《数字信号处理》课程设计 设计题目:基于MATLAB的音乐信号处理和分析 一、课程设计的目的 本课程设计通过对音乐信号的采样、抽取、调制、解调等多种处理过程的理论分析和 MATLAB实现,使学生进一步巩固数字信号处理的基本概念、理论、分析方法和实现方法; 使学生掌握的基本理论和分析方法知识得到进一步扩展;使学生能有效地将理论和实际紧密 结合;增强学生软件编程实现能力和解决实际问题的能力。 二、课程设计基本要求 1学会MATLAB的使用,掌握MATLAB的基本编程语句。 2掌握在Windows环境下音乐信号采集的方法。 3掌握数字信号处理的基本概念、基本理论和基本方法。 4掌握MATLAB设计FIR和IIR数字滤波器的方法。 5掌握使用MATLAB处理数字信号、进行频谱分析、设计数字滤波器的编程方法。 三、课程设计内容 1、音乐信号的音谱和频谱观察 使用windows下的录音机录制一段音乐信号或采用其它软件截取一段音乐信号(要求:时 间不超过5s、文件格式为wav文件) ①使用wavread语句读取音乐信号,获取抽样率;(注意:读取的信号是双声道信号,即 为双列向量,需要分列处理); ②输出音乐信号的波形和频谱,观察现象; ③使用sound语句播放音乐信号,注意不同抽样率下的音调变化,解释现象。 Wavread格式说明: [w,fs,b]=wavread(‘语音信号’),采样值放在向量w中,fs表示采样频率(hz),b表示 采样位数。 上机程序: [y,fs,bit]=wavread('Ido片段')%读取音乐片段,fs是采样率 size(y)%求矩阵的行数和列数 y1=y(:,1);%对信号进行分列处理 n1=length(y1);%取y的长度 t1=(0:n1-1)/fs;%设置波形图横坐标 figure subplot(2,1,1); plot(t1,y1);%画出时域波形图 ylabel('幅值'); xlabel('时间(s)'); title('信号波形'); subplot(2,1,2); Y1=fft(y1); w1=2/n1*(0:n1-1);%设置角频率 plot(w1,abs(Y1));%画频谱图 title('信号频谱'); xlabel('数字角频率'); ylabel('幅度'); gridon; sound(y,fs); 实验结果: 信号波形 1 0.5 值0 幅 -0.5 -1 0123456 时间(s) 信号频谱 6000 4000 值 幅 2000 0 00.20.40.60.811.21.41.61.82 数字角频率 1、通过观察频谱知,选取音乐信号的频谱集中在0~0.7*pi之间,抽样点数fs=44100; 2、当采样频率问原来0.5(0.5*fs)倍时:音乐片段音调变得非常低沉,无法辨认原声,播 放时间变长;抽样频率减小,抽样点数不变时,其分辨力增大,记录长度变长,声音失真。 3、当采样频率问原来2(2*fs)倍时:音乐片段音调变得尖而细,语速变快,播放时间变短; 抽样频率增加,抽样点数不变时,其分辨力下降,记录长度变短,声音失真。 2、音乐信号的抽取(减抽样) ①观察音乐信号频率上限,选择适当的抽取间隔对信号进行减抽样(给出两种抽取间隔, 代表混叠与非混叠); ②输出减抽样音乐信号的波形和频谱,观察现象,给出理论解释; ③播放减抽样音乐信号,注意抽样率的改变,比较不同抽取间隔下的声音,解释现象。 上机程序: [y,fs,bit]=wavread('Ido片段') y1=y(:,1); n1=length(y1); tn1=(0:n1-1)/fs; figure subplot(2,1,1); plot(tn1,y1); ylabel('幅度'); xlabel('时间(s)'); title('原信号波形'); wn1=2/n1*[0:n1-1]; Y1=fft(y1); subplot(2,1,2); plot(wn1,abs(Y1)); title('原信号频谱'); xlabel('数字角频率w'); ylabel('幅度'); gridon; D=2;%设置抽样间隔 y2=y1(1:D:n1);%减抽样 n2=length(y2);%减抽样后信号长度 t2=(0:n2-1)/fs;%设置横坐标 figure subplot(2,1,1); plot(t2,y2);%绘制减抽样信号波形图 ylabel('幅度'); xlabel('时间(s)'); title('2:1减抽样信号波形'); Y2=fft(y2);%对y2进行n2点fft谱分析 w2=2/n2*[0:n2-1]; subplot(2,1,2); plot(w2,