0

信号处理对我来说是一个新领域,我不知道从哪里开始寻找我的问题的解决方案。

我有一个折线图,它被转换为一个只包含纯音调的音频文件。我正在尝试使用处理将其转换回折线图,尽管我认为语言无关紧要。我隐约知道我可能需要使用傅立叶变换,但这不是我熟悉的东西。

我查看了使用 Minim 进行处理及其频谱分析功能提供的所有示例,但我仍然不知道应该如何进行,或者我什至应该寻找什么。

我想调制解调器和传真机将序列化数据转换为音频形式并以几乎相同的方式返回,尽管我不确定它们如何设法将数据从音调形式转换回来。

4

1 回答 1

2

执行此操作的基本方法是,对于要绘制到的区域中的每个像素,您可以通过在计算的高度处绘制像素来确定要表示的数据样本或样本。

血腥细节:

忽略压缩音频的复杂性,一个音频文件是一组样本。样本以固定速率记录。对于音频,常见的采样率为每秒 44100、48000 或 96000 个样本。音频文件通常会指定这个速率。要绘制此数据,您需要将音频样本映射到像素。

举个简单的例子,假设您以每秒 48000 个样本记录了 1 秒的 ECG 数据。那是文件中的 48000 个样本。让样本是范围从 0 到 1 的浮点值,尽管它们通常是整数样本。并假设您正在绘制一个 10 像素高、100 像素宽的矩形。

鉴于这一切,这意味着每个像素将代表 480 个数据样本。您可以平均这 480 个样本,以获得您应该在第一个像素中绘制的值。要找出填充像素的位置,请将样本的范围(0 到 1)映射到绘图矩形(高度 0 到 10)。0 样本将在矩形底部绘制,1 样本将在顶部绘制, 0.5 个样本将在中间绘制。假设前 480 个样本的平均值为 0.1。然后,您将在绘图区域最左侧像素的底部向上 1 个像素处绘制一个点,相对于绘图矩形的底部为 (0,1)。

重复此操作,直到您确定在显示区域中为每个像素绘制像素的位置。

如果您的样本少于要显示的像素,您将为每个像素插入值。给定相同的绘图区域,10 x 100,但只有 10 个数据样本,您将为每个数据样本插入 9 个像素位置。

于 2012-11-21T19:57:41.597 回答