6

我不想使用库——我想从头开始编写。我想为通过无线电传输的 WEFAX 制作解码器。不同的音频频率转换为不同的像素暗度。只有灰度 - 没有颜色。

每分钟有 120 行,每行超过 1000 像素。我想检测频率并将其转换为可能的 8 位值。硬件等效物类似于 LM567 频率电压转换器。

我不知道从哪里开始。这类似于 FIR 还是 IIR?谁能指出我可以学习的代码?我不是为 Windows 编写的,严格来说是 unix。

艾伦

4

2 回答 2

1

你可以用定时器和过零来找出基频

http://en.wikipedia.org/wiki/Zero_crossing

于 2013-04-03T03:48:00.883 回答
0

假设您有 IQ 数据,您可以从使用相位微分器实现的简单 FM 解调器开始。频率是相位的导数,因此您可以简单地计算样本之间的相位差,从而得到原始 FM 信号的估计值。单个输出样本可以通过以下方式给出:

y[k] = arctan(imag(x[k]) / real(x[k])) - arctan(imag(x[k-1]) / real(x[k-1]))

您可能还需要执行一些相位展开以避免输出中的2*pi. 有关更多详细信息,请参见此处的瞬时频率部分。

FM 解调器的输出基本上应该是您的图像,因为它会产生一个幅度变化的信号,其幅度与原始信号的频率变化方式相同。您必须将其重新采样到正确的像素网格并正确缩放/量化灰度级。

对 FM 解调器的输出进行低通滤波以降低噪声也可以提高图像质量。

于 2013-04-03T07:51:13.167 回答