Questions tagged «demodulation»

2
从原始WAV提取二进制磁条卡数据
我面临着一个棘手的挑战:从iPhone磁条卡读取器中提取二进制数据。卡上的磁化强度如下所示: 资源 这是当您刷卡时iPhone收到的.WAV(不要将希望寄予太大希望,这是奖励会员卡;))。顺便说一下,这是以不同的速度刷了三下。这是我正在使用的滑动的原始SInt16转储。 似乎有人在这里做过, 但是我捕获的实际数据并不是特别容易处理。 读数以不确定的“ 0”开始(并结束)-请注意,只有在收集到2个ZEROS之后,该波才会重复,这表示NS后跟SN: (请注意,三行中的每一行都代表我要刷一张不同的卡;此图像中的底部卡已使用了15年,因此磁场在某些地方明显退化严重,在这张照片中看不到) 这将允许算法确定时钟滴答。 磁场在每个时钟滴答处反转。 同样对于二进制1,磁场恰好在刻度线的中间反转: 该序列始终以1101 + 0(奇偶校验位)开始标记开始。您可以在上图中的所有三个读数中进行选择。我在问题顶部链接的cosmodro文章中更清楚地表明了这一点。 这是一个磁性衰减的示例(在底下的卡片读取中进一步记录): 我试图找出一种明智的方法来将该波形转换为其相应的二进制序列。 我已经找到了一份详细介绍的PDF,但是我无法弄清楚他们使用的算法。 该PDF包含一个有趣的图像: 如果我可以按照该图提取红线和蓝线,则可以使用其中之一来提取数据,但是我无法弄清楚构造背后的逻辑。 所以这是我的问题:如何提取二进制序列? PS。请注意,滑动速度不会保持恒定。因此,一旦确定了时钟,就需要将时钟从一个滴答声一直调整到下一个滴答声。 PPS。自相关会捕捉成对的滴答声吗?(看到滴答声会交替显示NS SN ...) 编辑(12年6月):在这方面我需要很多帮助,但是最后我完成了坚实的阅读器(http://www.magstripedecoder.com/)。感谢大家的帮助!我建议IRC的efnet频道上的#musicdsp给那些有足够的心力去迎接挑战,掌握数学的人-这真的很难!

3
如何在软件中解调AFSK信号
我正在尝试通过音频通道(扬声器/麦克风)将二进制数据从一台设备传输到另一台设备。我在分组无线电中使用AFSK(音频频移键控),具有和两个频率f m a r k = 1200 Hz和f s p a c e = 2200 Hz。我在Ruby中玩了一些,而我的第一个实现只是模仿了一个经典的非相干解调器,到目前为止,它仍然可以正常工作。1200 波特1200 鲍德1200 \text{ Baud}F中号一个ř ķ= 1200 赫兹F米一种[Rķ=1200 赫兹f_{mark} = 1200 \text{ Hz}Fš p 一个Ç ë= 2200 赫兹Fsp一种CË=2200 赫兹f_{space} = 2200 \text{ Hz} 问题是,我正在尝试将其移植到移动平台上,在该平台上性能是一个问题,而我目前的解决方案太慢了。我发现了许多方法可以在软件中解调AFSK: 滑动DFT(FFT) 滑动Görtzel过滤器 锁相环 过零 怎么走?可供选择的选项太多。我相信还有更多选择。也许有比我上面提到的解决方案更好的解决方案?有人甚至为我提供了代码示例吗?我担心 性能(应在移动平台(例如iOS或Android设备)上运行) 稳定(应该能够处理一些噪音) 任何建议和提示,不胜感激!
14 dft  demodulation  fsk 

2
使用DSP技术改善SNR
我正在构建没有载波频率的光学OOK(开关键环)系统。[但是我在符号之间有一个保护时间,因此连续的“ 1”消息将导致脉冲序列而不是DC,请参见图)。本质上,信号的存在指示一个,信号的缺失指示零。我有一个精确的时钟,可以将接收器与发送器同步。该系统以低SNR运行,我希望使用DSP技术来提高SNR。 我有几个问题: 我在硬件中进行选择性采样,换句话说,我不连续采样通道,而仅在看到信号的可能性最大时采样(即,这是一个光脉冲,我对ADC计时,以便ADC在末尾采样我知道整个模拟链都稳定了的脉冲)。见图片。 自然,此图不显示噪音,但在那儿。特别是低信号系统,主要噪声源是散粒噪声,约翰逊噪声和放大器内部噪声。(光学系统,因此除Sun外没有其他干扰源)。我对噪声的观察表明,它在所有频率上都是相似的。(至少我在范围中看到的) 现在,我在软件中使用简单的阈值比较来确定数据是一还是零。有没有更好的办法?我已经考虑过一些选择,但我希望收到专家的来信。 到目前为止,我已经考虑了以下选项: 进行连续ADC并尝试在上升时间进行集成:不确定是否有好处(我不知道还有其他好处)。 软件中的匹配过滤器:并不是很了解数学,但根据我阅读的内容,可能 在保护时间期间采样并从信号ADC值中减去此值(这可能会提供一些其他详细信息,但也不能确定,保护时间就是噪声测量值) 因为我的数据速率快,所以将硬件更改为同步解码器既昂贵又费时,并且可能无法很好地工作,并且由于我必须构建一个多MHz的载频系统,因此获得同步解调器将意味着昂贵的电路板。


2
如何解调OFDM信号
我正在解码OFDM信号,该信号由6个经过BPSK调制的载波(或音调)和一个有助于调谐的导频音组成。这是我第一次使用OFDM,所以我需要知道我是否以正确的方式进行处理。 我想对它进行解码的方法是使用导频音进行校准(因为接收器可能会略微被打乱),然后使用六个带通滤波器将每个载波分离出来,然后以通常的方式对其进行解调。谁能看到任何问题吗?还是可以建议一种更好的方法

1
FSK解调,位定时恢复
我目前正在实施声学FSK调制和解调。我不是信号处理专家,因此非常感谢您提供有关位定时恢复的帮助。目前我实现使用两个匹配滤波器用于每个音调的解调器(具有的相位差对于非相干检测)。基本上,每个滤波器的输出都是振幅不同的峰值。我有两个问题:90∘90∘90^{\circ} 如何执行位定时恢复? 对于包同步前同步码(线性调频,巴克码,黄金码等),您有什么建议? 我用Google搜索了Gardner算法,但不确定它是否适用以及如何适用。考虑一下,我目前正在使用声卡使用2个频率为800 bps的比特率。

2
如何软解码DQPSK?
通过采用符号和前一个符号的星座位置的点积,我成功地对D-BPSK进行了软解码。如果结果> = 1,则符号相位保持不变,并且该位为零。如果结果<= -1,则相位已偏移,结果为1。在-1和1之间,结果是软0或软1。 我不知道如何使用D-QPSK进行相同的操作。我可以只使用阶段,但这会丢掉很多可以帮助软解码器的信息。 本文解释了如何做到这一点,并给出了公式(10): b1=Re{sns∗n−1},b2=Im{sns∗n−1}b1=Re{snsn−1∗},b2=Im{snsn−1∗}b_1 = \mathrm{Re}\{s_n s^*_{n-1}\}, b_2 = \mathrm{Im}\{s_n s^*_{n-1}\} 但是我不明白这种表示法- *浮动在上面意味着什么?我尝试仅将复数相乘并取实部和虚部,但这没有用。 由于星座可以旋转,因此如何将两个轴分开?

2
如何实现基于梯度的霍夫变换
我正在尝试使用霍夫变换进行边缘检测,并希望使用渐变图像作为基础。 我迄今所做,给出的图像I尺寸的[M,N]和它的部分衍生物gx,gy是计算中的每个像素作为梯度角thetas = atan(gy(x,y) ./ gx。同样,我将梯度幅度计算为magnitudes = sqrt(gx.^2+gy.^2)。 要构建霍夫变换,我使用以下MATLAB代码: max_rho = ceil(sqrt(M^2 + N^2)); hough = zeros(2*max_rho, 101); for x=1:M for y=1:N theta = thetas(x,y); rho = x*cos(theta) + y*sin(theta); rho_idx = round(rho)+max_rho; theta_idx = floor((theta + pi/2) / pi * 100) + 1; hough(rho_idx, theta_idx) = hough(rho_idx, theta_idx) + …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.