matlab写wav水印,Matlab 生成任意波形wav文件

本文介绍了如何使用Matlab自定义参数生成1KHz的立体声wav文件,包括设置采样频率、位深、时长等,通过正弦函数生成波形,播放、描绘波形图像并保存为.wav文件。代码包含详细注释,便于理解和学习。
摘要由CSDN通过智能技术生成

目录

1、背景

2、实现

2.1 参数定义

2.2 生成时间序列

2.3 生成左右声道波形

2.4 播放生成的波形

2.5 描绘波形图像

2.6 写入 .wav文件

2.7 读取生成的 wav 文件进行,并描绘波形

3、完整代码

4、运行图片

1、背景

测试DAC/功放的性能指标的时候,常需要 1KHz 的波形来分析,主要测试参数有输出幅度,相移、失真度、频响曲线、信噪比(SNR)等常用的手段来评估设备的好坏程度,测试仪器一般选用AG,粗略测试也可以使用稍微好一点的示波器。

曾经一开始接触这部分调试的时候,从网上找了些音频文件,发现怎么测参数都不对,后来从别人那里考来了一份常用的1K文件,才得出像样点的结果,由于此文件需要的精度高,而网上下载的文件质量参差不齐,而且没有所需要的各种格式,比如各采样率、位深、时常、特殊幅值、任意频率等的参数,所以干脆自己写一个程序来生成,所有内部的波形都能够看得出来,会比较放心地拿来测试。

对音频这块比较专业的软件有 Adobe Audition 这一款,很适合音频录制、编辑和混合,但是作为程序员,还是喜欢通过用代码来生成想要的内容,因此选择使用 Matlab,Matlab 在信号处理上,也可以说是老大了,各种处理的算法基本都是有对应的函数库,就算有些没有,编写起来也很容易,包含了众多科学/工程领域的包及仿真工具。当然,对于本文这种比较小的需求,虽说有种牛刀杀鸡的感觉,但是未尝不是一个学习的过程,再不用一下,在学校里学的就得忘光了。

2、实现

本文是该分栏的第一篇文章,上述废话多了点哈,后面的代码都尽量保证代码的注释多点,也欢迎大家来指正错误一起学习哦,现在开始来实现吧~~

2.1 参数定义

可以自由设置的参数如下,同学们可以根据需要来修改想要的参数,然后运行一下来生成wav文件。

40b7fc0551574645cf3514902167088b.png

代码片段(csdn 的 markdown 貌似对 m 文件的支持不太好,没有高亮 - -。):

%% 参数定义 %%%%%%%%%%%

fs = 96000; % 采样频率

bps = 16; % 位深 bit

Tfile = 60; % 声音片段的总时长,单位s

vol = 0; % 声音片段的音量 0db

sinewave1_fs = 1000; % 左声道频率,单位Hz

sinewave2_fs = 1000; % 右声道频率

stereo = 1; % 0:单声道,1:立体声

filename = ('96000_16b_1KHz_60s_stereo_gen_by_Matlab.wav'); %输出文件名称(自己定义,后缀是.wav)

2.2 生成时间序列

生成一个时间序列,序列里每一个点对应一个采样点。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值