提高题音乐合成信号与系统课程设计报告Word文档格式.docx
- 文档编号:8088316
- 上传时间:2023-05-10
- 格式:DOCX
- 页数:19
- 大小:142.48KB
提高题音乐合成信号与系统课程设计报告Word文档格式.docx
《提高题音乐合成信号与系统课程设计报告Word文档格式.docx》由会员分享,可在线阅读,更多相关《提高题音乐合成信号与系统课程设计报告Word文档格式.docx(19页珍藏版)》请在冰点文库上搜索。
(3)根据相关步骤完成MATLAB程序设计,所编程序应能完整实现设计题目的要求;
(4)调试程序,分析相关理论;
(5)编写设计报告。
5、设计过程、实现过程、实现结果
(一)基本部分
(1)信号的时频分析
任意给定单频周期信号的振幅、频率和初相,要求准确计算出其幅度谱,并准确画出时域和频域波形,正确显示时间和频率。
设计思路:
首先给出横坐标,即时间,根据设定的信号的振幅、频率和初相,写出时域波形的表达式;
然后对时域波形信号进行傅里叶变化,得到频域波形;
最后使用plot函数绘制各个响应图。
源程序:
%基本题1,时频分析,2011010512
clc,clear,closeall
A=4;
fc=200;
a=0*pi/3;
T=1/fc;
fs=15*fc;
Ts=1/fs;
t=0:
Ts:
3*T-Ts;
N=length(t);
x=A*sin(2*pi*fc*t+a);
subplot(211),plot(t,x)
xlabel('
t(s)'
),ylabel('
x(t)'
),title('
时域波形图'
)
X=fft(x);
XX=fftshift(X);
magX=abs(XX);
phaseX=angle(XX);
f=(0:
N-1)*(fs/N)-fs/2;
subplot(223),plot(f,magX)
f(Hz)'
|X(jw)|'
信号幅度谱'
subplot(224),plot(f,phaseX)
angle[X(jw)]'
信号相位谱'
结果图:
结果分析:
cos函数波形为周期信号,其频域响应为两个冲击函数,并且符合对偶性。
(2)傅里叶级数分析
分析周期锯齿波的傅里叶级数系数,用正弦信号的线性组合构成锯齿波,要求谐波次数可以任意输入,分析不同谐波次数所构成的锯齿波,解释是否存在吉伯斯现象。
根据原理——任意周期信号都可以表达成傅里叶级数的形式,对周期举行锯齿波进行傅里叶级数分解,利用for循环完成级数求和运算。
当N值较小时,傅里叶级数的逼近效果不是很理想,随着N值变大,傅里叶级数越来越接近理想值。
%基本题2,傅里叶级数分析,2011010512
clc;
clear;
closeall;
%初始化工作空间
t=-6:
6/1000:
6;
%时间
N=input('
pleaseinputthenunber:
'
);
w0=pi;
%角频率
XN=0;
forn=1:
N;
fn=(-1)^(n+1)/(n*pi);
XN=XN+fn*sin(n*w0*t);
end
XN=XN+0.5;
%抬升0.5
figure;
plot(t,XN);
title(['
Gibbs,N='
num2str(N)]);
Time(sec)'
ylabel(['
X'
num2str(N),('
t'
)]);
结果图;
随着N值的增大,傅里叶级数与理想的周期锯齿波越来越接近,符合预期效果。
(3)系统分析
任意给定微分方程或差分方程描述的系统,画出系统的幅频响应和相频响应。
根据微分方程、差分方程与系统函数的对应关系,结合matlab自带的freqs和freqz两个函数,分析系统的幅频特性和相频特性。
%基本题3系统分析2011010512
clc,clear,closeall,
%微分方程为r'
(t)+6r'
(t)+8r(t)=2*e(t)
b=[0,0,2];
%系统函数H(s)分子多项式系数
a=[1,6,8];
%系统函数H(s)分母多项式系数
[Hw1,w1]=freqs(b,a);
%求连续时间系统频率响应
figure
(1)
subplot(2,1,1);
zplane(b,a);
title('
连续时间系统零极点图'
subplot(2,2,3);
plot(w1/pi,abs(Hw1))
rad/s'
ylabel('
|H(jw)|'
连续时间系统幅频响应'
subplot(2,2,4);
plot(w1/pi,angle(Hw1))
Phase'
连续时间系统相频响应'
%差分方程为y(n)-0.5*y(n-1)+4/5*y(n-2)=3*x(n)-0.6*x(n-1);
b=[3,-0.6];
%系统函数H(z)分子多项式系数
a=[1,-0.5,4/5];
%系统函数H(z)分母多项式系数
[Hw,w]=freqz(b,a);
%求离散时间系统频率响应
figure
(2)
离散时间系统零极点图'
plot(w/pi,abs(Hw))
w/pi)'
|H(e^j^w)|'
离散时间系统幅频响应'
plot(w/pi,angle(Hw))
w/pi'
离散时间系统相频响应'
所显示零极点等图符合验算结果
(4)音乐合成程序设计
对于任意一小段音乐,利用“十二平均律”计算该音乐中各个乐音的频率,产生并播放这些乐音。
分析音乐的频谱,从中识别出不同的乐音。
根据时间长短来区别各个音符拍长短,根据频率高低来区别各个音符的音调,具体细节参考“十二平均律”,将每段乐音连接起来,使用sound函数播放乐音。
对每段乐音进行傅里叶变换,分析其频谱。
%基本题4,音乐合成程序设计,一分钱,2011010512
fs=8e3;
freq=[384,512,426.66,512,426.66,320,384,288,320,384,320,384,426.66,512,384,426.66,384,320,384,256,288,320,288,256,288,320,436.66,384,320,384,436.66384,512,426.66,384,320,384,288,384,288,320,256];
N=[1/2,1/2,1/4,1/4,1/2,1/4,1/4,1/4,1/4,1,1/4,1/4,1/4,1/4,1/4,1/4,1/4,1/4,1/4,1/2,1,1/4,1/4,1/4,1/4,1,1/4,1/4,1/4,1/4,1,1/4,1/4,1/4,1/4,1/4,1/4,1/2,1/4,1/4,1/2,1/2]*fs;
D=zeros(1,sum(N));
X=1;
fork=1:
42
D(X:
X+N(k)-1)=(sin(2*pi*freq(k)*(1/fs:
1/fs:
N(k)/fs)));
X=X+N(k);
end;
sound(D,fs);
结果分心:
所听音乐符合预期。
(5)调制
分析单位冲激响应为
的系统的滤波特性,画出其幅频响应曲线。
根据傅里叶变换特性,时域相乘对应频域卷积,将题目中的时域波形进行分解,并将两个函数分别对应的傅里叶变换进行卷积。
参考常用的傅里叶变换对,所求的频域特性为方波和冲击函数的卷积。
%基本题5,调制,2011010512
fs=300;
t=-10:
10;
n=[-(N-1)/2:
(N-1)/2];
h=sin(50*pi*t).*sin(100*pi*t)./(pi*t+0.00001);
f1=fft(h);
Fn=fftshift(f1);
f=n/N*fs;
plot(t,h),
Amplitude'
H(t)'
plot(f,abs(Fn)),
w'
Modulation'
所得结果符合演算过程,与预期一致。
(二)提高部分
题目1、音乐合成2011010512
设计思路:
通过定义每个音来写乐谱,在加包络谐波,在播放音乐,后画出波形。
源程序
%提高题音乐合成
clear;
closeall;
TUNE_BASED=220*[2^(3/12)2^(5/12)2^(7/12)2^(8/12)2^(10/12)2^(12/12)2^(14/12)];
%C调
H_TUNE=2*TUNE_BASED;
L_TUNE=0.5*TUNE_BASED;
l_dao=L_TUNE
(1);
%将“l_dao”宏定义为低音“1”的频率262Hz
l_re=L_TUNE
(2);
%将“l_re”宏定义为低音“2”的频率286Hz
l_mi=L_TUNE(3);
%将“l_mi”宏定义为低音“3”的频率311Hz
l_fa=L_TUNE(4);
%将“l_fa”宏定义为低音“4”的频率349Hz
l_sao=L_TUNE(5);
%将“l_sao”宏定义为低音“5”的频率392Hz
l_la=L_TUNE(6);
%将“l_a”宏定义为低音“6”的频率440Hz
l_xi=L_TUNE(7);
%将“l_xi”宏定义为低音“7”的频率494Hz
%以下是C调中音的音频宏定义
dao=TUNE_BASED
(1);
%将“dao”宏定义为中音“1”的频率523Hz
re=TUNE_BASED
(2);
%将“re”宏定义为中音“2”的频率587Hz
mi=TUNE_BASED(3);
%将“mi”宏定义为中音“3”的频率659Hz
fa=TUNE_BASED(4);
%将“fa”宏定义为中音“4”的频率698Hz
sao=TUNE_BASED(5);
%将“sao”宏定义为中音“5”的频率784Hz
la=TUNE_BASED(6);
%将“la”宏定义为中音“6”的频率880Hz
xi=TUNE_BASED(7);
%将“xi”宏定义为中音“7”的频率523H
%以下是C调高音的音频宏定义
h_dao=H_TUNE
(1);
%将“h_dao”宏定义为高音“1”的频率1046Hz
h_re=H_TUNE
(2);
%将“h_re”宏定义为高音“2”的频率1174Hz
h_mi=H_TUNE(3);
%将“h_mi”宏定义为高音“3”的频率1318Hz
h_fa=H_TUNE(4);
%将“h_fa”宏定义为高音“4”的频率1396Hz
h_sao=H_TUNE(5);
%将“h_sao”宏定义为高音“5”的频率1567Hz
h_la=H_TUNE(6);
%将“h_la”宏定义为高音“6”的频率1760Hz
h_xi=H_TUNE(7);
%将“h_xi”宏定义为高音“7”的频率1975Hz
%%简谱欢乐颂
song=[mimifasao...
saofamire...
daodaoremi...
mirere,...
mimifasao...
redaodao,...
reremidao...
remifamidao...
remifamire...
daorel_saomi...
saofamifare...
redaodao0];
delay=0.5*[1111,...
1111,...
1.50.51,...
10.50.511,...
1110.50.5,...
1.50.511];
%%设置采样精度
fs=8000;
%%生成波形
wav_normal=0;
%普通波形
wav_low=0;
%低八度波形
wav_hight=0;
%高八度的波形
wav_envelope_only=0;
%包络的波形
wav_envelope_harmonic=0;
%加包络加谐波的波形
m=1;
fori=1:
length(song)
n=1:
fs*delay(i);
temp=sin(2*pi*song(i)*n/fs);
%普通
temp_low=sin(pi*song(i)*n/fs);
%低八度
temp_highet=sin(4*pi*song(i)*n/fs);
%高八度
temp_envelope=exp((-1/4000)*n);
%指数衰减包络
temp_harmonic=0.2*sin(4*pi*song(i)*n/fs);
%2倍频谐波
wav_normal(m:
m+fs*delay(i)-1)=temp;
%正常波形
wav_low(m:
m+fs*delay(i)-1)=temp_low;
wav_hight(m:
m+fs*delay(i)-1)=temp_highet;
%高八度波形
wav_envelope_only(m:
m+fs*delay(i)-1)=temp.*temp_envelope;
%只加包络波形
wav_harmonic_only(m:
m+fs*delay(i)-1)=temp+temp_harmonic;
%只加谐波波形
wav_envelope_harmonic(m:
m+fs*delay(i)-1)=(temp+temp_harmonic).*temp_envelope;
%包络谐波波形
m=m+fs*delay(i);
end
%%播放
sound(wav_normal,fs);
%播放原始声音
sound(wav_envelope_only,fs);
%播放加包络声音
sound(wav_envelope_harmonic,fs);
%播放加包络加谐波声音
%%抽取前13个音符(8秒)分析包络与谐波
num_song=13;
length_num_song=fs*sum(delay(1:
num_song));
subplot(311);
plot((1:
length_num_song)/8000,wav_normal(1:
length_num_song));
时间/s'
幅值'
普通无包络无谐波波形图'
subplot(312);
length_num_song)/8000,wav_envelope_only(1:
加包络无谐波波形图'
subplot(313);
length_num_song)/8000,wav_envelope_harmonic(1:
加包络加谐波波形图'
%%抽取前13个音符(8秒)分析频域谐波效果
normal=abs(fftshift(fft(wav_normal(1:
length_num_song))));
%普通频谱图
harmonic=abs(fftshift(fft(wav_harmonic_only(1:
%加谐波频谱图
fft_rang=(0:
length_num_song-1)/length_num_song*fs-fs/2;
%频域围
subplot(211);
plot(fft_rang,normal);
频率/Hz'
普通音无谐波频谱图'
subplot(212);
plot(fft_rang,harmonic);
普通音加谐波频谱图'
%%抽取前13个音符(8秒)分析频域的高八度低八度效果
hight=abs(fftshift(fft(wav_hight(1:
%高八度频谱图
low=abs(fftshift(fft(wav_low(1:
%低八度频谱图
普通音频谱图'
plot(fft_rang,low);
低八度音频谱图'
plot(fft_rang,hight);
高八度音频谱图'
与预期一致听到音乐也和预期一致。
6、设计总结
通过这次试验,我明白了学到的知识只有会用才有价值,只有在应用中才能找到自己的不足并加以弥补,如果我们不去将知识应用,那我们学的东西将失去价值。
在设计过程中,自己学会了Matlab软件的部分功能,在今后的生活中我希望能够学到更多!
在设计工程中我遇到了很多困难,但是我坚持作了下来,这对我来说是一次磨练,令我更加坚强。
在今后的生活中,当我们遇到困难我们不应该轻言放弃而是应该坚持,努力实现自己的目标。
参考文献
[1]君里、应启珩、为理,信号与系统引论,:
高等教育,2009年3月.
[2]谷源涛、应启珩、君里,信号与系统——MATLAB综合实验,:
高等教育,2008年1月.
[3]梁虹等,信号与系统分析与Matlab实现,:
电子工业,2002年2月.
[4]《信号分析和处理MATLAB语言与应用》国防科技大学黄文梅勇2000年
附录
MATLAB程序清单:
basic1.m
basic2.m
basic3.m
basic4.m
basic5.m
enhanced7.m
辅助文件:
msg.wav
sys.wav
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 提高 音乐 合成 信号 系统 课程设计 报告