⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 s1_9.m

📁 能够实现音乐不同乐器的转换,在MatLab上实现
💻 M
字号:
%主要参见 周期信号的傅里叶级数分析 一节

clear all;

load('guitar.mat');
s1=ones(10,1);
rw=kron(s1,realwave);

T=2430/8000;
N=2430;
t = linspace(0,T-T/N,N)';

k1=-20;     %确定系数的起止下标
k2=20;
k=[k1:k2];

omg1=2069;  %由(7)得到的基频

FF=1/N*exp(-j*kron(omg1*k.',t.'))*rw;   %通过基频的数值求各次谐波的系数
                                        %即求指数形式傅里叶级数的系数 教材3.19式
D1=220*2^(5/12);
F=220*2^(8/12);
G=220*2^(10/12);
C=440*2^(3/12);
D=440*2^(5/12);

t2=[0:1/8000:1]';
t4=[0:1/8000:0.5]';
t8=[0:1/8000:0.25]';
%衰减包络 由于是吉他所以去掉了(2)中的二次方倒数
e2=exp(-t2*2.5);
e4=exp(-t4*5);
e8=exp(-t8*10);

%以对应的音符为基频,用得到的系数去生成各谐波 教材3.18式
so4=exp(j*kron(t4,C*k))*FF.*e4;
so8=exp(j*kron(t8,C*k))*FF.*e8;
la8=exp(j*kron(t8,D*k))*FF.*e8;
re2=exp(j*kron(t2,G*k))*FF.*e2;
do4=exp(j*kron(t4,F*k))*FF.*e4;
do8=exp(j*kron(t8,F*k))*FF.*e8;
la18=exp(j*kron(t8,D1*k))*FF.*e8;

M=3*abs([so4;so8;la8;re2;do4;do8;la18;re2]);
sound(M,8000);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -