如何使用音频文件作为输入实现单边带抑制载波调制?
Posted
技术标签:
【中文标题】如何使用音频文件作为输入实现单边带抑制载波调制?【英文标题】:How to impliment a Single Sideband Suppressed Carrier Modulator with an audio file as input? 【发布时间】:2021-01-25 22:04:08 【问题描述】:我收到了一个音频信号,我使用 audioread 将其导入 Octave。我已经获得了 fs 并且可以自然地绘制时域信号。在 FFT 之后,频域可以很容易地绘制出来。 我的问题是如何将此信号作为输入并在 Octave 中使用 SSB-SC 调制对其进行调制?我相信我首先必须创建一个 DSB,然后使用滤波器过滤边带,但我也不确定如何创建 DSB,我可能能够创建的滤波器。任何建议将不胜感激。
【问题讨论】:
【参考方案1】:有几种方法可以实现 SSB-SC 调制。例如参见***上的Single-sideband modulation - Practical implementations。有关更多详细信息,请参阅关于 SSB 的不错的教程 http://www.eng.auburn.edu/~roppeth/courses/TIMS-manuals-r5/TIMS%20Experiment%20Manuals/Student_Text/Vol-A2/A2-03.pdf
Octave/Matlab 具有这些用于实现 SSB 调制技术的构建块:
x .* exp((2j * pi * f / sample_rate) * (1:length(x))
在频率上移动信号,其中x
是时域中的样本数组 (modulation / frequency shifting property)。
filter 应用 FIR 或 IIR 滤波器。要设计滤波器,有几个选项是 firls 或 fir1,以及信号包中的其他选项。
hilbert 用于实值信号的希尔伯特变换(解析扩展)。
【讨论】:
非常感谢您的回复,这是最有用的资源。但是,需要一些研究时间才能弄清楚该怎么做。您在那里给出的用于转换频率信号的公式是傅立叶变换吗?我有点知道它背后的数学和计算,只是我现在不知道如何将它打成八度音阶,因为没有真正的函数可以做到这一点。我仍然不确定如何创建 DSB,一旦像我说的那样,我可以构建一个过滤器? 好问题。我更新了我的答案以澄清。在第一个要点中,我的意思是x
作为时域中的样本数组。复数正弦曲线在时间上的调制对应于频率的偏移。 FWIW,Octave 确实有一个 fft function,如果有帮助的话。
肯定有帮助。非常感谢!以上是关于如何使用音频文件作为输入实现单边带抑制载波调制?的主要内容,如果未能解决你的问题,请参考以下文章
模拟信号基于matlab抑制载波双边带调幅信号产生+解调含Matlab源码 985期