哈Ha
今天,我们继续讨论SDR接收和信号处理。 在一个读者问了一个问题之后,我很偶然地对模拟电视的接收产生了兴趣。 但是,由于信号采样的普遍缺乏,事实并非如此简单-在许多地方,模拟电视已经关闭。 阅读器甚至发送了带有RTL-SDR的记录,但是,在RTL处记录的宽度约为2 MHz,而电视信号带宽约为8 MHz,并且在记录上什么都不清楚。 结果,这个话题被抛弃了很长时间,最后,就在现在,在我下次去亲戚的旅程中,我带着SDRPlay,并调到电视频道的频率,在屏幕上看到了想要的信号。
一个小的Python程序,一切正常:

对于那些对细节感兴趣的人,继续下调。
理论
在战后的旧年代,当数字实验室仅在秘密实验室中了解数字信号传输时,但是人们已经想看电视了,存在三种相互竞争的模拟标准。 第一个是40年代以来开发的美国
NTSC (国家电视系统委员会),由于60Hz的美国网络频率而被“锐化”,垂直分辨率仅为486线。 在德国不久之后,开始开发
PAL (相交线)标准,该标准略好于美国(
PAL 576线的分辨率,并专注于50Hz的欧洲网络频率),后来又出现了法国
SECAM (Séquentielcouleuràmémoire)。 它消除了PAL的一些与色彩还原有关的缺点,并且有一个版本认为采用两个标准也是一项政治决定,因此某些国家的居民无法观看其他国家的节目(距欧盟和申根国家大约50年)。 。 一种或另一种方式,但整个世界是这样分裂的:

因为 Habr仍然是俄语网站,因此将来我们将考虑SECAM,尽管如果有人发送了采样信号PAL,也会很有趣。
根据旧的滚动条 ,SECAM频谱如下:

左边是频率F0,是调幅亮度(L)信号。 这实际上是黑白图像,仍可以在老式的
暖灯黑白
灯电视上显示。 原有的问题和用户之间旧设备的存在已经存在,因此在不失去与旧电视机兼容性的情况下单独添加了彩色通道。 在频率调制为4.25和4.406 MHz的频率调制中交替传输两个颜色通道。 最后,在更高的频率下,声音也在频率调制中被单独传输。
顺便说一下,随着圣彼得堡电视的收看,这是一个有趣的时刻。 正如俄罗斯媒体报道的那样,模拟电视已于10月关闭:

但是,这仅适用于
国家频道 ;没有人强迫商业
频道关闭其广播。 至少在撰写本文时(2019年12月),在圣彼得堡市中心的“模拟”中仍有大约5-6个频道可用。 但是它会持续多长时间是未知的,因此那些想要记录“用于历史”信号样本的人应该仍然很着急。
最后,是时候打开SDR,看看我们在现实生活中拥有什么:

音频通道并不困难,您可以将鼠标悬停在HDSDR上的“鼠标”上,选择带宽约为50KHz的FM并收听。 我们将从亮度通道开始解码,这将使我们获得现成的“图片”。
解码方式
如上所述,亮度信号被发送到AM。 为了不自己编写解码器,我们使用GNU Radio-将频谱传输到零频率,启动AM解码器并将结果保存到文件中。

现在我们可以用Python打开保存的文件:
import numpy as np import matplotlib.pyplot as plt lum_data = np.fromfile("pal_lum.raw", dtype='int32') lum_data = -lum_data - 4700 fs = 9000000//2 x_time = np.linspace(0, len(lum_data)/fs, num=len(lum_data)) plt.plot(x_time, lum_data)
我们在屏幕上看到一个4帧的序列。

一帧0.02s的长度-仅为1/50-是50Hz网络频率的倍数,该网络频率的信号用作“时钟发生器”(请不要忘记信号是模拟信号)。 每帧传输320条线-我们进行了隔行扫描,因此最终帧速率为25 Hz。
让我们更详细地查看各行:

如您所见,每行的开头对应于一个“时钟”,然后信号摆幅对应于该行中的当前亮度值。 一切都非常简单,并且几乎没有任何改变,这样的信号被施加到电视机的阴极射线管上。
剩下的就是技术问题了。 我们在内存中创建图像并将两个帧复制到其中,因为 我们已经交织在一起。 信号跨度不超过+200,这使我们可以将这些值直接写为RGB颜色。
如您所见,我正在使用零交叉来检测新行的开始。 图片最终被垂直压缩,在这种情况下,它取决于SDR的采样频率,最后我只是调整了宽度。
10帧动画的最终结果(不再接受Habr文件存档):

结论
分析此类标准很有趣,因为 首先,它们很容易实现,其次,它们的研究也具有历史意义。 当然,我的目标并不是制作功能完善的软件电视调谐器,因此代码以一种操作简单的方式显示。
如果文章的评分为正,则在第二部分中,可以考虑使用彩色并显示完整的彩色图片。
对于那些希望自己尝试的人,可以在
此处下载IQ文件。
所有成功的实验。