当前位置: 首页 > news >正文

2013年认证杯SPSSPRO杯数学建模B题(第二阶段)流行音乐发展简史全过程文档及程序

2013年认证杯SPSSPRO杯数学建模

B题 流行音乐发展简史

原题再现:

  随着互联网的发展,流行音乐的主要传播媒介从传统的电台和唱片逐渐过渡到网络下载和网络电台等。网络电台需要根据收听者的已知喜好,自动推荐并播放其它音乐。由于每个人喜好的音乐可能横跨若干种风格,区别甚大,需要分别对待。这就需要探讨如何区分音乐风格的问题。
  第二阶段问题: 近几十年来,流行音乐的风格经历了相当复杂的演变过程。每个时代都有其代表性的人物和风格,歌曲的成功要素也随时间不断改变。请你建立合理的数学模型,对曾经走红过的流行歌曲,通过其原唱录音或曲谱来推断其所处时代。并请你写一篇短文2,向大众简述(在某个时期内)流行歌曲的“成功要素”是如何变化的。

整体求解过程概述(摘要)

  近几十年来,中国流行音乐的风格经历了相当复杂的演变过程,每个时代都有其代表性的人物和风格,歌曲的成功要素也随着时间不断变化。不同时期的流行音乐不仅反映了不同历史时期人们的精神面貌,也用音乐这个特殊的方式记载着不同历史时期人们的日常生活和人文背景。
  我们建立了基于层次分析法的模糊评价模型,先对各时代的流行歌曲进行随机选择(各 30 首,时间有限,理论上各 100 首为宜),然后对它们的音乐标签进行分析,总结出各时代的特点。接着随机选择 10 首歌,通过分析其特点判断出它所属的年代。并通过对近几十年来音乐发展的分析,得出了歌曲成功要素的变化趋势。
  在对歌曲的年代进行判断的问题中,我们首先使用了层次分析法,把影响歌曲分类的因素分为风格,主题和情感这三个因素。将风格又分为流行、乡村、摇滚和布鲁斯这四种;将主题分为爱国、爱情、友情、亲情和理想;将情感分为喜悦、忧伤、思念和励志。我们选取百度音乐、酷狗音乐、酷我音乐、QQ 音乐及 Last.fm 等大型音乐网站,从上面免费获得音乐(所筛选的歌曲)的标签(包括风格、主题和情感三个方面)。统计得出不同的时代各个因素在总体中的比例,然后运用模糊评价法,建立因子集、评判集等,从而确定风格、主题、情感对应的权值,即这三种因素在不同年代对流行音乐的影响程度。
  为了验证模型的正确性,我们对每个年代的流行歌曲再次进行随机选取(各 10 首,时间有限,理论上 30 首为宜)。我们建立了 BP 神经网络模型,并用matlab对歌曲的风格进行频谱和波形的分析,然后从歌词中总结其主体和情感。结果,运用所建模型得到的音乐标签与权威音乐网站所给标签的一致性很高(均超过 70%)。这表明所建模型具有可行性,因此,是正确的。
  在对音乐的成功要素进行分析的过程中,我们根据之前所统计的结果,并对其建立柱状图,可以清晰地得出风格、主题、情感这三种要素随时代的变化情况,从而分析出成功要素的变化趋势。从 60 年代开始,流行音乐在风格方面从单一化慢慢发展成丰富多元化。主题上以爱国、亲情和友情为主题的流行音乐逐渐减少,表达达爱情的歌曲则明显增加。情感方面表达忧伤的歌曲的比重上升明显,而表达喜悦的歌曲则明显下降;以励志和思念为情感的歌曲则变化不大。

问题分析:

  不同时期的流行音乐不仅反映了不同历史时期人们的精神面貌,也用音乐这个特殊的方式记载着不同历史时期人们的日常生活和人文背景。
  我们研究一首歌曲能够成为一个时代的流行歌曲的原因,首先要从其流行要素来分析。所谓流行要素,即歌曲在流行过程中所必须具备的条件。毫无疑问,好的歌词在歌曲的流行要素中比之音乐是第一位的。词作者借助于艺术想象力和各种其它处理,使得艺术幻象中的空间形象得以再现。歌词创作是一种造型的艺术,词作者要通过各种想象和艺术处理,创造一种美的艺术的幻象。同时,所有的歌词又必须能够传达一个可以用音乐来谱写的思想,并且能够提供某种感情基调和联系线索,以此来激发音乐家的想象力。实际上,当今的流行歌曲已经成为体现当代社会群体文化生活质量的重要衡量标准之一,歌曲的主题和情感主要通过歌词来表现。
  歌曲的第二个重要的流行要素是音乐。当作曲家被一首好的歌词所激励并为它谱曲时,这首词才能变成一支歌。在音乐艺术的创作过程中,音乐家始终处于一种纯粹音响的天地里,大脑里所有的世界有形的影象和现实都变得模糊不清了,感觉对象变得与视觉影象关系不再那么紧密,在其音乐想象中异常充实的是具有广阔连续性的无比激情,每一种东西都能用一种曲调表现出来,并使其组合成为一部完整的作品。音乐的旋律能够反映一首歌的风格。
  我国流行音乐逐渐发展起来是在 70 年代,改革开放后,随着通俗文艺的兴起,流行歌曲在中国大陆保持着迅猛的发展态势,产生了广泛的社会影响。为了进行有针对性的研究,我们将研究对象定义在中国流行音乐范围内,并且将研究阶段分为:60 年代-70年代末、80 年代、90 年代、21 世纪-今…四个时期。
  我们将研究分为两个步骤完成,第一步总结出每个时期流行音乐的特点,第二步根据所得结论将音乐按时代分类。因此建立基于层次分析法的模糊评价模型和 BP 神经网络模型。
  1.第一部分:每个时代流行音乐的特点:可以利用逐层分析法,通过分析不同时代流行音乐的不同标签,总结出其风格特点、主题特点、情感特点这三种具有决定性因素的性质,从而归纳总结出每个时代的流行要素。然后将音乐按时代划分等级,即 60-80年代音乐、80 年代音乐、90 年代音乐、21 世纪音乐,构成评语集。利用模糊分析法,将影响因素分为两个层次,组成一级、二级因素集,再根据抽取的歌曲的数据找出相应的权重集,模糊矩阵,建立模糊评价模型,从而得出歌曲所属的年代。
  2.第二部分:将音乐按时代分类:先建立 BP 神经网络模型,找出能提取流行音乐风格的方法,在分析其主题和情感,按权重得出所在年代。

模型假设:

  (1)随机抽取的音乐具有代表性,能购反映时代的音乐特点。
  (2)音乐的高潮部分能反映它的音乐风格特征。
  (3)流行音乐所属年代的判别因素主要由风格、主题和情感三种因素决定。
  (4)流行音乐的风格特征主要由流行、乡村、摇滚、新世纪这四种因素决定;其他因素影响不大。
  (5)流行音乐的主题特征主要由理想、爱国、爱情、亲情、友情这五种因素决定,其他因素忽略不计。
  (6)流行音乐的情感特征主要由喜悦、忧伤、思念、励志这四种因素决定,其他因素忽略不计。
  (7)所选取的百度音乐、酷狗音乐、酷我音乐、QQ 音乐及 Last.fm 等大型音乐网站上给出的音乐标签具有权威性,即所给标签是正确合理的。

论文缩略图:

在这里插入图片描述
在这里插入图片描述

全部论文请见下方“ 只会建模 QQ名片” 点击QQ名片即可

部分程序代码:(代码和文档not free)

%画出频谱图和波形图
[y,Fs,bits]=wavread('1yao.wav');%读出信号,采样率和采样位数。
y=y(:,1);
sigLength=length(y);
Y = fft(y,sigLength);
Pyy = Y.* conj(Y) / sigLength;
halflength=floor(sigLength/2);
f=Fs*(0:halflength)/sigLength;
figure;plot(f,Pyy(1:halflength+1));
title('摇滚音乐的频谱图');
xlabel('Frequency(Hz)');%频谱图
t=(0:sigLength-1)/Fs;
figure;plot(t,y);
title('摇滚音乐的波形图');%波形图
xlabel('Time(s)');
%这是提取特征值函数,返回值为各个端点之间距离的平均值和方差。
function [ FileName,mean_value,variance ] = Feature_Extract( FileName )
%UNTITLED2 Summary of this function goes here
% Detailed explanation goes here
[F,Fs,bits]=wavread(FileName,20*44100);%读入波形函数
time=20;%采样时间
T=1:time*Fs;%采样时间轴
Wave=F(T);
Wave=Wave/max(abs(Wave));%数据统一化处理
WLen=length(T);
winlen=2^nextpow2(Fs*20/1000);
dupwin=2^nextpow2(Fs*5/1000);
stepwin=winlen-dupwin;
E=zeros(WLen-stepwin,1);%初始化能量矩阵
for i=1:stepwin:WLen-stepwin%计算帧能量 FE
xm=Wave(i:i+stepwin);
E(i)=sum(xm.*xm);
end
E0=[E zeros(length(E),1)];
E0=setxor(E0(:,1),0);
j=1;
for i=1:length(E)%记录帧的位置
if E(i)>0
E0(j,1)=E(i);
E0(j,2)=i;
j=j+1;
end
end
Emin=min(E0(:,1));%计算帧能量的最小值
Emax=max(E0(:,1));%计算帧能量的最大值
Emean=mean(E0(:,1));
lamda=0.5;%设定静止阀值
Ttfe=Emin+lamda*(Emean-Emin);
for i=1:length(E0(:,1))%屏蔽 E0 中对帧能量小于静止阀值的值
if E0(i,1)<Ttfe
E0(i,1)=0;
end
end
FER=ones(length(E0(:,1)),2);%初始化帧能量比例矩阵
for i=1:(length(E0(:,1))-1)%计算帧能量比
if(and(E0(i,1),E0(i+1,1)))%若当前帧与后一帧都不为 0
FERa=E0(i+1,1)/E0(i,1);
FERb=E0(i,1)/E0(i+1,1);
FER(i,1)=max(FERa,FERb);
FER(i,2)=E0(i,2);
end
end
level=mean(FER(:,1));%设定高潮阀值
result0=zeros(length(FER(:,2)),1);%初始化结果矩阵
j=2;
if FER(1,1)-level>0
result(1)=FER(1,2);
end%过滤出高潮端点
for i=2:length(FER(:,2))-1
if FER(i,2)-level>0
if FER(i-1,2)-level<0
result0(j)=FER(i,2);
j=j+1;
end
end
end
result0=setxor(result0,0);%删除多余的 0 元素
result=zeros(length(result0)-1,1);
for i=1:length(result0)-1
result(i)=result0(i+1)-result(i);
end
charaction=zeros(size(result));
for i=1:length(result)-1
charaction(i)=result(i+1)-result(i);
end
result=charaction;
%特证分析
FileName;
u=mean(result);
d=var(result);
disp([FileName])
disp(['均值:' num2str(u) ' 方差:' num2str(d)]);%输出结果
mean_value=u;
variance=d;
end
全部论文及程序请见下方“ 只会建模 QQ名片” 点击QQ名片即可

相关文章:

2013年认证杯SPSSPRO杯数学建模B题(第二阶段)流行音乐发展简史全过程文档及程序

2013年认证杯SPSSPRO杯数学建模 B题 流行音乐发展简史 原题再现&#xff1a; 随着互联网的发展&#xff0c;流行音乐的主要传播媒介从传统的电台和唱片逐渐过渡到网络下载和网络电台等。网络电台需要根据收听者的已知喜好&#xff0c;自动推荐并播放其它音乐。由于每个人喜好…...

使用ARCore深度API实现点云采集

一、深度API 本小节内容摘自ARCore官方文档。 ARCore 深度API Depth API 可助力实现对象遮挡、提升沉浸感和新颖的互动体验&#xff0c;从而增强 AR 体验的真实感。 在下图中&#xff0c;右侧画面是采用深度API进行遮挡后的效果&#xff0c;与左侧图相比更加真实。 深度值 给…...

软考数据库

目录 分值分布1. 事务管理1.1 事物的基本概念1.2 数据库的并发控制1.2.1 事务调度概念1.2.2 并发操作带来的问题1.2.3 并发控制技术1.2.4 隔离级别&#xff1a; 1.3 数据库的备份和恢复1.3.1 故障种类1.3.2 备份方法1.3.3 日志文件1.3.4 恢复 2. SQL语言发权限收权限视图触发器…...

Echarts 自适应宽高,或指定宽高进行自适应

文章目录 需求分析 需求 有一个按钮实现对Echarts的指定缩放与拉长&#xff0c;形成自适应效果 拉长后效果图 该块元素缩短后效果图 分析 因为我习惯使用 ref 来获取组件的 DOM 元素&#xff0c;然后进行挂载 <div ref"echartsRef" id"myDiv" :sty…...

体验报告:为什么Claude-3是码农和学者的新宠?

在这个充斥着海量信息的新时代&#xff0c;人工智能的飞速发展带来了翻天覆地的变化。特别是在编程、学术探索以及专业文案创作等领域&#xff0c;AI的助力显得格外关键。最近&#xff0c;我有机会尝试了一种革命性的人工智能工具——Claude-3&#xff0c;其表现令我震惊&#…...

接口自动化框架搭建(九):接入钉钉消息通知

1&#xff0c;jenkins安装钉钉插件 2&#xff0c;在钉钉群聊设置机器人 3&#xff0c;jenkins配置钉钉 根据情况选择&#xff1a; 除了这些&#xff0c;其他不用配置&#xff0c;配置完成点击确认 4&#xff0c;项目配置 添加后保存 5&#xff0c;测试下效果 构建完成后&a…...

一、点击视频下载(通过视频url实现);二、点击下载视频按钮,视频以压缩包形式下载(但未实现压缩视频)

一、点击视频下载&#xff08;通过视频url实现&#xff09; <div class"video-list" v-for"(item,index) in videoList" :key"index"><span class"video-title" >{{item.title}}</span><span class"video-…...

B树、B+树、哈夫曼树

目录 1. B树2. B树3. 哈夫曼树 1. B树 特点&#xff1a;一个节点当中可以有多个值&#xff0c;节点内部key 值是有序的&#xff0c;节点内部存储的是key-value类型的数据 磁盘中文件存储用B树。 4阶B树一个节点最多三个key值 5阶B树一个节点最多四个key值 B树有很多的分支&…...

评价指标_Precision(精确率)、Recall(召回率)和Accuracy(准确率)区别和联系

Precision&#xff08;精确率&#xff09;、Recall&#xff08;召回率&#xff09;和Accuracy&#xff08;准确率&#xff09;是机器学习和信息检索领域常用的评价指标&#xff0c;它们用于评估分类器或检索系统的性能&#xff0c;但各自关注的方面略有不同。 Precision&#x…...

【React】React AJAX

在React中使用AJAX&#xff08;Asynchronous JavaScript and XML&#xff09;是一种常见的做法&#xff0c;用于从服务器获取数据并在组件中显示。尽管AJAX的名字中包含了XML&#xff0c;但现在更多地使用JSON&#xff08;JavaScript Object Notation&#xff09;作为数据交换格…...

vue 移动端弹窗带滚动效果 滚动到底的时候弹窗下的页面会跟着滑动

<template><div class"wrap" :style"dynamicStyle"><!--dynamicStyle主要是介个 通过computed设置postion的值 弹窗的时候设置为fixed 关闭弹窗的时候设置为unset--><div class"banner-wrap"><img src"/assets/…...

Linux-3 yum和vim

目录 本节目标&#xff1a; Linux 软件包管理器 yum 什么是软件包 1.yum是什么&#xff1f;软件包&#xff1f; 2.Linux(centos)的生态 3.yum的相关操作 我怎么知道我应该安装什么软件&#xff1f; 4.yum的本地配置 关于 rzsz 查看软件包 Linux编辑器-vim使用 1.v…...

什么是计算机视觉?计算机视觉:从基础到前沿

引言 计算机视觉&#xff0c;作为人工智能的一个重要分支&#xff0c;致力于赋予机器“看”的能力——即从图像或视频中理解和解释视觉信息的能力。这项技术的发展为自动驾驶汽车、面部识别、机器人导航等多种应用开辟了道路&#xff0c;正在逐步改变我们的工作和生活方式。本…...

Java中的可变字符串

Java中的可变字符串 一、什么是可变字符串二、可变字符串的使用场景以及使用步骤1.新建一个可变字符串2.可变字符串的一系列方法 一、什么是可变字符串 可变字符串是Java.lang包下的 在我们学习到JDBC的时候需要将原有的sql语句根据不同的差异添加一段新的关键字或者单词&…...

C++多线程:单例模式与共享数据安全(七)

1、单例设计模式 单例设计模式&#xff0c;使用的频率比较高&#xff0c;整个项目中某个特殊的类对象只能创建一个 并且该类只对外暴露一个public方法用来获得这个对象。 单例设计模式又分懒汉式和饿汉式&#xff0c;同时对于懒汉式在多线程并发的情况下存在线程安全问题 饿汉…...

康耐视visionpro-CogAcqFifoTool工具详细说明

CogAcqFifoTool操作说明&#xff1a; ① 打开工具栏&#xff0c;双击或点击鼠标拖拽 添加CogAcqFifoTool ②.从图片采集设备/图像采集卡列表里选择对应的相机&#xff0c;视频格式选择图像格式。 Mono表示黑白图像&#xff0c;RGB表示彩色相机。点击初始化取相初始化相机。 ③…...

静态图片如何生成gif动画?一个网站在线实现

在当下这个媒体时代&#xff0c;各种各样的图片充斥着我们的生活。尤其是gif动图能够快速有效的传递信息&#xff0c;让用户更加直观的了解某个时间或是场景。非常的生动便捷&#xff0c;那么怎么弄制作gif动画图片呢&#xff1f;其实&#xff0c;只是gif动画的方法非常的简单&…...

Git 实战教程

Git 是一款强大的分布式版本控制系统&#xff0c;广泛用于团队协作与项目管理。本文将为你提供一份 Git 的实战教程&#xff0c;通过实例演示 Git 的基本用法和高级特性&#xff0c;帮助你快速上手 Git。 一、Git 基础 安装 Git 首先&#xff0c;你需要在你的计算机上安装 G…...

解决Vue中仓库持久化的问题,不借助插件用原生JS实现仓库持久化。了解仓库的插件机制、监听的时机

1、演示 前言&#xff1a;目前Vue有两种仓库&#xff0c;一种是Vuex&#xff0c;一种是Pinia&#xff0c;懂得都懂&#xff0c;这里就不详细介绍这两者的区别了 2、什么是持久化 仓库里面的数据是需要跨越页面周期的&#xff0c;当页面刷新之后数据还在&#xff0c;在默认情况下…...

ajax的优缺点有哪些?

我们先来介绍一下什么是ajax&#xff1a; 对于ajax的理解&#xff0c;ajax是一种使用现有技术集合技术内容包括: HTML或XHTML、CSS、 JavaScript、DOM、XML、 XSLT&#xff0c; 以及最重要的XMLHttpRequest。 用于浏览器与服务器之间使用异步数据传输(HTTP请求)&#xff0c;做…...

Ubuntu系统下交叉编译openssl

一、参考资料 OpenSSL&&libcurl库的交叉编译 - hesetone - 博客园 二、准备工作 1. 编译环境 宿主机&#xff1a;Ubuntu 20.04.6 LTSHost&#xff1a;ARM32位交叉编译器&#xff1a;arm-linux-gnueabihf-gcc-11.1.0 2. 设置交叉编译工具链 在交叉编译之前&#x…...

RocketMQ延迟消息机制

两种延迟消息 RocketMQ中提供了两种延迟消息机制 指定固定的延迟级别 通过在Message中设定一个MessageDelayLevel参数&#xff0c;对应18个预设的延迟级别指定时间点的延迟级别 通过在Message中设定一个DeliverTimeMS指定一个Long类型表示的具体时间点。到了时间点后&#xf…...

1.3 VSCode安装与环境配置

进入网址Visual Studio Code - Code Editing. Redefined下载.deb文件&#xff0c;然后打开终端&#xff0c;进入下载文件夹&#xff0c;键入命令 sudo dpkg -i code_1.100.3-1748872405_amd64.deb 在终端键入命令code即启动vscode 需要安装插件列表 1.Chinese简化 2.ros …...

postgresql|数据库|只读用户的创建和删除(备忘)

CREATE USER read_only WITH PASSWORD 密码 -- 连接到xxx数据库 \c xxx -- 授予对xxx数据库的只读权限 GRANT CONNECT ON DATABASE xxx TO read_only; GRANT USAGE ON SCHEMA public TO read_only; GRANT SELECT ON ALL TABLES IN SCHEMA public TO read_only; GRANT EXECUTE O…...

苍穹外卖--缓存菜品

1.问题说明 用户端小程序展示的菜品数据都是通过查询数据库获得&#xff0c;如果用户端访问量比较大&#xff0c;数据库访问压力随之增大 2.实现思路 通过Redis来缓存菜品数据&#xff0c;减少数据库查询操作。 缓存逻辑分析&#xff1a; ①每个分类下的菜品保持一份缓存数据…...

Python ROS2【机器人中间件框架】 简介

销量过万TEEIS德国护膝夏天用薄款 优惠券冠生园 百花蜂蜜428g 挤压瓶纯蜂蜜巨奇严选 鞋子除臭剂360ml 多芬身体磨砂膏280g健70%-75%酒精消毒棉片湿巾1418cm 80片/袋3袋大包清洁食品用消毒 优惠券AIMORNY52朵红玫瑰永生香皂花同城配送非鲜花七夕情人节生日礼物送女友 热卖妙洁棉…...

嵌入式学习笔记DAY33(网络编程——TCP)

一、网络架构 C/S &#xff08;client/server 客户端/服务器&#xff09;&#xff1a;由客户端和服务器端两个部分组成。客户端通常是用户使用的应用程序&#xff0c;负责提供用户界面和交互逻辑 &#xff0c;接收用户输入&#xff0c;向服务器发送请求&#xff0c;并展示服务…...

C# 表达式和运算符(求值顺序)

求值顺序 表达式可以由许多嵌套的子表达式构成。子表达式的求值顺序可以使表达式的最终值发生 变化。 例如&#xff0c;已知表达式3*52&#xff0c;依照子表达式的求值顺序&#xff0c;有两种可能的结果&#xff0c;如图9-3所示。 如果乘法先执行&#xff0c;结果是17。如果5…...

LabVIEW双光子成像系统技术

双光子成像技术的核心特性 双光子成像通过双低能量光子协同激发机制&#xff0c;展现出显著的技术优势&#xff1a; 深层组织穿透能力&#xff1a;适用于活体组织深度成像 高分辨率观测性能&#xff1a;满足微观结构的精细研究需求 低光毒性特点&#xff1a;减少对样本的损伤…...

Spring Security 认证流程——补充

一、认证流程概述 Spring Security 的认证流程基于 过滤器链&#xff08;Filter Chain&#xff09;&#xff0c;核心组件包括 UsernamePasswordAuthenticationFilter、AuthenticationManager、UserDetailsService 等。整个流程可分为以下步骤&#xff1a; 用户提交登录请求拦…...