(此文档为word 格式,下载后您可任意编辑修改!)
课 程 设 计 报 告
课程名称 信号与系统课程设计
指导教师
设计起止日期
学 院 信息与通信工程
专 业 电子信息工程
学生姓名
班级学号
成 绩
指导老师签字
目 录
1、课程设计目的 ............................................................ 1
2、课程设计要求 ............................................................ 1
3、课程设计任务 ............................................................ 1
4、课程设计内容 ............................................................ 1
5、总结 ................................................................... 11 参考文献 .................................................................. 12 附录 ...................................................................... 12
1、课程设计目的和要求
目的:
掌握MATLAB 的使用方法。“信号与系统”是一门重要的专业基础课,MATLAB 作为信号
处理强有力的计算和分析工具是电子信息工程技术人员常用的重要工具之一。本课程设计
基于MATLAB 完成信号与系统综合设计实验,以提高学生的综合应用知识能力为目标,是“信
号与系统”课程在实践教学环节上的必要补充。通过课设综合设计实验,激发学生理论课
程学习兴趣,提高分析问题和解决问题的能力。
要求:
(1)运用MATLAB 编程得到简单信号、简单信号运算、复杂信号的频域响应图;
(2)通过对线性时不变系统的输入、输出信号的时域和频域的分析,了解线性时不变
系统的特性,同时加深对信号频谱的理解。
2、课程设计原理
1离散时间信号卷积使用MATLAB 中的conv 函数
2. 在MATLAB 中,filter 函数的作用是进行数字滤波,其实也就是系统的响应序列求解;
y=filter(b,a,x); y=filter(b,a,x)表示向量b 和a 组成的系统对输入x 进行滤波,系统的输出为
y 。
3. 在MATLAB 中,zplane 函数——绘制系统零极点图
4. 在MATLAB 中,有专门的frepz()函数来求解。调用形式为 [,fs)其中向量b 和a 为离散系
统的系数,fs 为采样频率,n 为在区间[0 fs2]频率范围内选取的频率点数,f 记录频率点数。
由于freqz 函数是采用基2的FFT 的算法,n 常取2的幂次方,以便提高计算速度。
5.MATLAB 提供了如abs(),angle()等基本函数用来计算DTFT 幅度,相位。
3、课程设计所用设备
(1)个人电脑一台
(2)MATLAB2012设计程序
4、课程设计内容和步骤
(1)根据设计题目的要求,熟悉相关内容的理论基础,理清程序设计的措施和步骤;
(2)根据设计题目的要求,提出各目标的实施思路、方法和步骤;
(3)根据相关步骤完成MATLAB 程序设计,所编程序应能完整实现设计题目的要求;
(4)调试程序,分析相关理论;
(5)编写设计报告。
5、设计过程、实现过程、实现结果
(一)基本部分
(1)信号的时频分析
任意给定单频周期信号的振幅、频率和初相,要求准确计算出其幅度谱,并准确画出
时域和频域波形,正确显示时间和频率。
设计思路:
首先给出横坐标,即时间,根据设定的信号的振幅、频率和初相,写出时域波形的表
达式;然后对时域波形信号进行傅里叶变化,得到频域波形;最后使用plot 函数绘制各个
响应图。
源程序:
clc,clear,close all
A=4;fc=200;a=0*pi3;
T=1fc;
fs=15*fc;Ts=1fs;
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)*(fsN)-fs2;
subplot(223),plot(f,magX)
xlabel('f(Hz)'),ylabel('|X(jw)|'),title(' 信号幅度谱' )
subplot(224),plot(f,phaseX)
xlabel('f(Hz)'),ylabel('angle[X(jw)]'),title(' 信号相位谱' )
结果图:
结果分析:
cos 函数波形为周期信号,其频域响应为两个冲击函数,并且符合对偶性。
(2)傅里叶级数分析
分析周期锯齿波的傅里叶级数系数,用正弦信号的线性组合构成锯齿波,要求谐波次
数可以任意输入,分析不同谐波次数所构成的锯齿波,解释是否存在吉伯斯现象。
设计思路:
根据原理——任意周期信号都可以表达成傅里叶级数的形式,对周期举行锯齿波进行
傅里叶级数分解,利用for 循环完成级数求和运算。当N 值较小时,傅里叶级数的逼近效
果不是很理想,随着N 值变大,傅里叶级数越来越接近理想值。
源程序:
clc; clear; close all; %初始化工作空间
t=-6:61000:6; %时间
N = input('please input the nunber:');
w0=pi; %角频率
XN=0;
for n=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)]);
xlabel('Time(sec)');
ylabel(['X',num2str(N),('t')]);
结果图;
结果分析:
随着N 值的增大,傅里叶级数与理想的周期锯齿波越来越接近,符合预期效果。
(3)系统分析
任意给定微分方程或差分方程描述的系统,画出系统的幅频响应和相频响应。
设计思路:
根据微分方程、差分方程与系统函数的对应关系,结合matlab 自带的freqs 和freqz
两个函数,分析系统的幅频特性和相频特性。
源程序:
clc,clear,close all ,
%微分方程为 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(w1pi,abs(Hw1))
xlabel('rads' );ylabel('|H(jw)|');title(' 连续时间系统幅频响应' );
subplot(2,2,4);
plot(w1pi,angle(Hw1))
xlabel('rads' );ylabel('Phase' );title(' 连续时间系统相频响应' );
%差分方程为 y(n )-0.5*y(n-1)+45*y(n-2)=3*x(n)-0.6*x(n-1);
b=[3,-0.6]; %系统函数H(z)分子多项式系数
a=[1,-0.5,45]; %系统函数H(z)分母多项式系数
[Hw,w]=freqz(b,a); %求离散时间系统频率响应
figure(2)
subplot(2,1,1);zplane(b,a);title(' 离散时间系统零极点图' );
subplot(2,2,3);plot(wpi,abs(Hw))
xlabel('wpi)' );ylabel('|H(e^j^w)|');title(' 离散时间系统幅频响应' );
subplot(2,2,4);plot(wpi,angle(Hw))
xlabel('wpi' );ylabel('Phase' );title(' 离散时间系统相频响应' );
结果分析:所显示零极点等图符合验算结果
(4)音乐合成程序设计
对于任意一小段音乐,利用“十二平均律”计算该音乐中各个乐音的频率,产生并播放这些乐音。分析音乐的频谱,从中识别出不同的乐音。
设计思路:
根据时间长短来区别各个音符拍长短,根据频率高低来区别各个音符的音调,具体细节参考“十二平均律”,将每段乐音连接起来,使用sound 函数播放乐音。对每段乐音进行傅里叶变换,分析其频谱。
clc,clear,close all ,
fs=8e3;
D=zeros(1,sum(N));
X=1;
for k=1:42
D(X:X+N(k)-1)=(sin(2*pi*freq(k)*(1fs:1fs:N(k)fs)));
X=X+N(k);
end ;
sound(D,fs);
结果分心:所听音乐符合预期。
(5)调制
分析单位冲激响应为的系统的滤波特性,画出其幅频响应曲线。
设计思路:
根据傅里叶变换特性,时域相乘对应频域卷积,将题目中的时域波形进行分解,并将两个函数分别对应的傅里叶变换进行卷积。参考常用的傅里叶变换对,所求的频域特性为方波和冲击函数的卷积。
源程序:
clc,clear,close all ,
fs=300;
t=-10:1fs:10;
N=length(t);
n=[-(N-1)2:(N-1)2];
(50*pi*t).*sin(100*pi*t).(pi*t+0.00001);
f1=fft(=fftshift(f1);
f=nN*fs;
figure(1)
plot(t,)),
xlabel('w' ),ylabel('Amplitude' ),title('Modulation' );
结果图;
结果分析:所得结果符合演算过程,与预期一致。
(二)提高部分
设计思路:通过定义每个音来写乐谱,在加包络谐波,在播放音乐,后画出波形。 源程序
%提高题 音乐合成
clear;clc;close all ;
TUNE_BASED=220*[2^(312) 2^(512) 2^(712) 2^(812) 2^(1012) 2^(1212) 2^(1412) ]; %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 调高音的音频宏定义
=1:fs*delay(i);
temp=sin(2*pi*song(i)*nfs); %普通
temp_low=sin(pi*song(i)*nfs); %低八度
temp_(4*pi*song(i)*nfs); %高八度
temp_envelope=exp((-14000)*n); %指数衰减包络
temp_(4*pi*song(i)*nfs); %2倍频谐波
wav_normal(m:m+fs*delay(i)-1)=temp; %正常波形
wav_low(m:m+fs*delay(i)-1)=temp_low; %低八度波形
wav_:m+fs*delay(i)-1)=temp_:m+fs*delay(i)-1)=temp.*temp_envelope; %只加包络波形
wav_:m+fs*delay(i)-1)=temp+temp_:m+fs*delay(i)-1)=(temp+temp_=m+f
s*delay(i);
end
%% 播放
sound(wav_normal,fs); %播放原始声音
sound(wav_envelope_only,fs); %播放加包络声音
sound(wav_envelope__song=13;
length_num_song=fs*sum(delay(1:num_song));
figure;
subplot(311);
plot((1:length_num_song)8000,wav_normal(1:length_num_song)); xlabel(' 时间s' );ylabel(' 幅值' );title(' 普通 无包络 无谐波 波形图' ); subplot(312);
plot((1:length_num_song)8000,wav_envelope_only(1:length_num_song));
xlabel(' 时间s' );ylabel(' 幅值' );title(' 加包络 无谐波 波形图' );
subplot(313);
plot((1:length_num_song)8000,wav_envelope__song));
xlabel(' 时间s' );ylabel(' 幅值' );title(' 加包络 加谐波 波形图' );
%% 抽取前13个音符(8秒) 分析频域谐波效果
normal=abs(fftshift(fft(wav_normal(1:length_num_song)))); %普通频谱图
_song))));%加谐波频谱图
fft_rang=(0:length_num_song-1)length_num_song*fs-fs2; %频域范围 figure;
subplot(211);
plot(fft_rang,normal);
xlabel(' 频率Hz' );ylabel(' 幅值' );title(' 普通音无谐波频谱图' );
subplot(212);
plot(fft_rang,_song)))); %高八度频谱图
low=abs(fftshift(fft(wav_low(1:length_num_song)))); %低八度频谱图
subplot(311);
plot(fft_rang,normal);
xlabel(' 频率Hz' );ylabel(' 幅值' );title(' 普通音频谱图' ); subplot(312);
plot(fft_rang,low);
xlabel(' 频率Hz' );ylabel(' 幅值' );title(' 低八度音频谱图' ); subplot(313);
plot(fft_rang,
basic2.m
basic3.m
basic4.m
basic5.m
enhanced7.m
辅助文件:
msg.wav
sys.wav
(此文档为word 格式,下载后您可任意编辑修改!)
课 程 设 计 报 告
课程名称 信号与系统课程设计
指导教师
设计起止日期
学 院 信息与通信工程
专 业 电子信息工程
学生姓名
班级学号
成 绩
指导老师签字
目 录
1、课程设计目的 ............................................................ 1
2、课程设计要求 ............................................................ 1
3、课程设计任务 ............................................................ 1
4、课程设计内容 ............................................................ 1
5、总结 ................................................................... 11 参考文献 .................................................................. 12 附录 ...................................................................... 12
1、课程设计目的和要求
目的:
掌握MATLAB 的使用方法。“信号与系统”是一门重要的专业基础课,MATLAB 作为信号
处理强有力的计算和分析工具是电子信息工程技术人员常用的重要工具之一。本课程设计
基于MATLAB 完成信号与系统综合设计实验,以提高学生的综合应用知识能力为目标,是“信
号与系统”课程在实践教学环节上的必要补充。通过课设综合设计实验,激发学生理论课
程学习兴趣,提高分析问题和解决问题的能力。
要求:
(1)运用MATLAB 编程得到简单信号、简单信号运算、复杂信号的频域响应图;
(2)通过对线性时不变系统的输入、输出信号的时域和频域的分析,了解线性时不变
系统的特性,同时加深对信号频谱的理解。
2、课程设计原理
1离散时间信号卷积使用MATLAB 中的conv 函数
2. 在MATLAB 中,filter 函数的作用是进行数字滤波,其实也就是系统的响应序列求解;
y=filter(b,a,x); y=filter(b,a,x)表示向量b 和a 组成的系统对输入x 进行滤波,系统的输出为
y 。
3. 在MATLAB 中,zplane 函数——绘制系统零极点图
4. 在MATLAB 中,有专门的frepz()函数来求解。调用形式为 [,fs)其中向量b 和a 为离散系
统的系数,fs 为采样频率,n 为在区间[0 fs2]频率范围内选取的频率点数,f 记录频率点数。
由于freqz 函数是采用基2的FFT 的算法,n 常取2的幂次方,以便提高计算速度。
5.MATLAB 提供了如abs(),angle()等基本函数用来计算DTFT 幅度,相位。
3、课程设计所用设备
(1)个人电脑一台
(2)MATLAB2012设计程序
4、课程设计内容和步骤
(1)根据设计题目的要求,熟悉相关内容的理论基础,理清程序设计的措施和步骤;
(2)根据设计题目的要求,提出各目标的实施思路、方法和步骤;
(3)根据相关步骤完成MATLAB 程序设计,所编程序应能完整实现设计题目的要求;
(4)调试程序,分析相关理论;
(5)编写设计报告。
5、设计过程、实现过程、实现结果
(一)基本部分
(1)信号的时频分析
任意给定单频周期信号的振幅、频率和初相,要求准确计算出其幅度谱,并准确画出
时域和频域波形,正确显示时间和频率。
设计思路:
首先给出横坐标,即时间,根据设定的信号的振幅、频率和初相,写出时域波形的表
达式;然后对时域波形信号进行傅里叶变化,得到频域波形;最后使用plot 函数绘制各个
响应图。
源程序:
clc,clear,close all
A=4;fc=200;a=0*pi3;
T=1fc;
fs=15*fc;Ts=1fs;
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)*(fsN)-fs2;
subplot(223),plot(f,magX)
xlabel('f(Hz)'),ylabel('|X(jw)|'),title(' 信号幅度谱' )
subplot(224),plot(f,phaseX)
xlabel('f(Hz)'),ylabel('angle[X(jw)]'),title(' 信号相位谱' )
结果图:
结果分析:
cos 函数波形为周期信号,其频域响应为两个冲击函数,并且符合对偶性。
(2)傅里叶级数分析
分析周期锯齿波的傅里叶级数系数,用正弦信号的线性组合构成锯齿波,要求谐波次
数可以任意输入,分析不同谐波次数所构成的锯齿波,解释是否存在吉伯斯现象。
设计思路:
根据原理——任意周期信号都可以表达成傅里叶级数的形式,对周期举行锯齿波进行
傅里叶级数分解,利用for 循环完成级数求和运算。当N 值较小时,傅里叶级数的逼近效
果不是很理想,随着N 值变大,傅里叶级数越来越接近理想值。
源程序:
clc; clear; close all; %初始化工作空间
t=-6:61000:6; %时间
N = input('please input the nunber:');
w0=pi; %角频率
XN=0;
for n=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)]);
xlabel('Time(sec)');
ylabel(['X',num2str(N),('t')]);
结果图;
结果分析:
随着N 值的增大,傅里叶级数与理想的周期锯齿波越来越接近,符合预期效果。
(3)系统分析
任意给定微分方程或差分方程描述的系统,画出系统的幅频响应和相频响应。
设计思路:
根据微分方程、差分方程与系统函数的对应关系,结合matlab 自带的freqs 和freqz
两个函数,分析系统的幅频特性和相频特性。
源程序:
clc,clear,close all ,
%微分方程为 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(w1pi,abs(Hw1))
xlabel('rads' );ylabel('|H(jw)|');title(' 连续时间系统幅频响应' );
subplot(2,2,4);
plot(w1pi,angle(Hw1))
xlabel('rads' );ylabel('Phase' );title(' 连续时间系统相频响应' );
%差分方程为 y(n )-0.5*y(n-1)+45*y(n-2)=3*x(n)-0.6*x(n-1);
b=[3,-0.6]; %系统函数H(z)分子多项式系数
a=[1,-0.5,45]; %系统函数H(z)分母多项式系数
[Hw,w]=freqz(b,a); %求离散时间系统频率响应
figure(2)
subplot(2,1,1);zplane(b,a);title(' 离散时间系统零极点图' );
subplot(2,2,3);plot(wpi,abs(Hw))
xlabel('wpi)' );ylabel('|H(e^j^w)|');title(' 离散时间系统幅频响应' );
subplot(2,2,4);plot(wpi,angle(Hw))
xlabel('wpi' );ylabel('Phase' );title(' 离散时间系统相频响应' );
结果分析:所显示零极点等图符合验算结果
(4)音乐合成程序设计
对于任意一小段音乐,利用“十二平均律”计算该音乐中各个乐音的频率,产生并播放这些乐音。分析音乐的频谱,从中识别出不同的乐音。
设计思路:
根据时间长短来区别各个音符拍长短,根据频率高低来区别各个音符的音调,具体细节参考“十二平均律”,将每段乐音连接起来,使用sound 函数播放乐音。对每段乐音进行傅里叶变换,分析其频谱。
clc,clear,close all ,
fs=8e3;
D=zeros(1,sum(N));
X=1;
for k=1:42
D(X:X+N(k)-1)=(sin(2*pi*freq(k)*(1fs:1fs:N(k)fs)));
X=X+N(k);
end ;
sound(D,fs);
结果分心:所听音乐符合预期。
(5)调制
分析单位冲激响应为的系统的滤波特性,画出其幅频响应曲线。
设计思路:
根据傅里叶变换特性,时域相乘对应频域卷积,将题目中的时域波形进行分解,并将两个函数分别对应的傅里叶变换进行卷积。参考常用的傅里叶变换对,所求的频域特性为方波和冲击函数的卷积。
源程序:
clc,clear,close all ,
fs=300;
t=-10:1fs:10;
N=length(t);
n=[-(N-1)2:(N-1)2];
(50*pi*t).*sin(100*pi*t).(pi*t+0.00001);
f1=fft(=fftshift(f1);
f=nN*fs;
figure(1)
plot(t,)),
xlabel('w' ),ylabel('Amplitude' ),title('Modulation' );
结果图;
结果分析:所得结果符合演算过程,与预期一致。
(二)提高部分
设计思路:通过定义每个音来写乐谱,在加包络谐波,在播放音乐,后画出波形。 源程序
%提高题 音乐合成
clear;clc;close all ;
TUNE_BASED=220*[2^(312) 2^(512) 2^(712) 2^(812) 2^(1012) 2^(1212) 2^(1412) ]; %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 调高音的音频宏定义
=1:fs*delay(i);
temp=sin(2*pi*song(i)*nfs); %普通
temp_low=sin(pi*song(i)*nfs); %低八度
temp_(4*pi*song(i)*nfs); %高八度
temp_envelope=exp((-14000)*n); %指数衰减包络
temp_(4*pi*song(i)*nfs); %2倍频谐波
wav_normal(m:m+fs*delay(i)-1)=temp; %正常波形
wav_low(m:m+fs*delay(i)-1)=temp_low; %低八度波形
wav_:m+fs*delay(i)-1)=temp_:m+fs*delay(i)-1)=temp.*temp_envelope; %只加包络波形
wav_:m+fs*delay(i)-1)=temp+temp_:m+fs*delay(i)-1)=(temp+temp_=m+f
s*delay(i);
end
%% 播放
sound(wav_normal,fs); %播放原始声音
sound(wav_envelope_only,fs); %播放加包络声音
sound(wav_envelope__song=13;
length_num_song=fs*sum(delay(1:num_song));
figure;
subplot(311);
plot((1:length_num_song)8000,wav_normal(1:length_num_song)); xlabel(' 时间s' );ylabel(' 幅值' );title(' 普通 无包络 无谐波 波形图' ); subplot(312);
plot((1:length_num_song)8000,wav_envelope_only(1:length_num_song));
xlabel(' 时间s' );ylabel(' 幅值' );title(' 加包络 无谐波 波形图' );
subplot(313);
plot((1:length_num_song)8000,wav_envelope__song));
xlabel(' 时间s' );ylabel(' 幅值' );title(' 加包络 加谐波 波形图' );
%% 抽取前13个音符(8秒) 分析频域谐波效果
normal=abs(fftshift(fft(wav_normal(1:length_num_song)))); %普通频谱图
_song))));%加谐波频谱图
fft_rang=(0:length_num_song-1)length_num_song*fs-fs2; %频域范围 figure;
subplot(211);
plot(fft_rang,normal);
xlabel(' 频率Hz' );ylabel(' 幅值' );title(' 普通音无谐波频谱图' );
subplot(212);
plot(fft_rang,_song)))); %高八度频谱图
low=abs(fftshift(fft(wav_low(1:length_num_song)))); %低八度频谱图
subplot(311);
plot(fft_rang,normal);
xlabel(' 频率Hz' );ylabel(' 幅值' );title(' 普通音频谱图' ); subplot(312);
plot(fft_rang,low);
xlabel(' 频率Hz' );ylabel(' 幅值' );title(' 低八度音频谱图' ); subplot(313);
plot(fft_rang,
basic2.m
basic3.m
basic4.m
basic5.m
enhanced7.m
辅助文件:
msg.wav
sys.wav