SDR# (SDRSharp)代码讲解
讲解SDRSharp代码
老邵的科创世界
老邵的科创世界
软件无线电和无人机飞控的代码讲解和应用开发
展开
-
SDR# (SDRSharp)代码讲解 (九)
看完了变量可以看一下三个循环各自代表的功能,来对整个代码结果做一个整体上的理解。首先,最外侧的循环,对应于第48行的for,代表了当前运算对应第几级。第58行,对应于同一级中有几个旋转因子,所以这个循环在结束前的第73行~75行做的运算就是在计算这一级的下一个旋转因子。第62行的for循环,对应于同一级且同一个旋转因子所要做的运算。比如最左侧的第一级,一共就只有一个旋转因子,所以第58行的for循...原创 2018-01-06 18:42:16 · 4031 阅读 · 10 评论 -
SDR# (SDRSharp)代码讲解 (八)
幻灯片29页的变址处理(对输入数组做交换)完成后,接下来就要做碟形算法了。对应于代码第48行~第78行。要看懂这段代码,首先有几个地方要搞懂。一个是复数乘法的实现方式,可以参照幻灯片第5页,复数乘法输出的实部等于输入的两个复数的实部相乘的结果减去输入两个复数的虚部相乘的结果,而复数乘法输出的虚部等于两个输入复数的实部乘以另一个的虚部的和,这个如果不理解可以自己用两个复数推导一下复数乘法的公式。其实...原创 2018-01-06 18:41:11 · 3314 阅读 · 0 评论 -
SDR# (SDRSharp)代码讲解 (七)
要实现运算,还要把旋转因子W用代码实现,首先可以根据前面N=8例子中的碟形算法每一级中用到的W归纳一下,总结出旋转因子的一般形式,这样就方便用软件代码实现并做自动化的运算了。可以看到其实这个旋转因子W就是自然对数e的复指数,W上的参数变化,对应于在复数平面的旋转,所以叫旋转因子。这个旋转跟矩阵运算里的矩阵旋转没关系。现在来看sdrsharp里的FFT运算的代码,sdrsharp/DNR/Fouri...原创 2018-01-06 18:40:52 · 3545 阅读 · 0 评论 -
SDR# (SDRSharp)代码讲解 (六)
要理解FFT代码原理,首先要说一下FFT算法的前身DFT。DFT是离散傅立叶变换,公式和连续傅立叶变换很接近,只不过是把连续傅立叶变换的积分换成了累加而已。理论上,用DFT的公式(参加幻灯片第四页),只要用软件代码对一个输入的数据序列进行公式里的这些乘法和累加后,就能计算出这个输入的傅立叶变换的结果。但是从公式也可以看出来,为了计算一个频点上的傅立叶变换的值,就要做N次乘法和长度为N-1的累加,然...原创 2018-01-06 18:39:22 · 2938 阅读 · 0 评论 -
SDR# (SDRSharp)代码讲解 (五)
解调算法还有不少有趣的,比如DSB、LSB、USB解调器,这些以后会讲,读者也可以先把这些模块的代码对照Matlab RTL-SDR那本书看一下。另外,比如DownConverter和Oscillator也是一个经典的用软件方式实现以前硬件中实现的工作的例子。还有DCRemover在我们大多数的SDR中也很重要,Decimator在数字信号处理中也很常见。RdsDecoder是国外的在FM信号中携...原创 2018-01-06 18:38:07 · 5291 阅读 · 0 评论 -
SDR# (SDRSharp)代码讲解 (四)
前面讲完了AMDetector.cs,可以说你已经入了SDR和DSP的门了,也具备一定的读代码能力了,接下去的无非是举一反三,按照之前说的那套格式实现其它类型的解调算法。比如我们接下来要讲的FMDetector.cs,总体结构和AMDetector.cs是很相似的,最重要的部分也是这个模块中对应的Demodulate方法。这个Demodulate里的算法其实就是参照书中381页的9.7原创 2017-12-31 23:41:13 · 3797 阅读 · 0 评论 -
SDR# (SDRSharp)代码讲解 (三)
我认为前面讲的这几种类型的代码里,最重要的有两方面:一个是与硬件驱动交互的部分(这部分上一篇已经大致讲了,另外也可以参考我的另一个HackRF代码讲解系列,会找到很多类似的东西,只不过那里调用的libhackrf.so这里变成了libhackrf.dll),另一个是数字信号处理的代码(包括AM、FM解调,FFT算法,语音降噪算法),我们会先讲这部分代码。对于SDR领域,最有意义的就是这原创 2017-12-31 23:07:04 · 6693 阅读 · 6 评论 -
SDR# (SDRSharp)代码讲解 (二)
程序结构进入SDRSharp主文件夹,可以发现下面有很多目录,这些目录主要分为3大类。第一类是只与界面相关的代码,如:FrequencyEdit、FrequencyManager(频率管理界面)、CollapsiblePanel(左侧可收起的界面)、SDRSharp(第二层的SDRSharp子文件夹,里面是主界面)、PanView(主界面里的频谱图和瀑布图)这一类文件夹原创 2017-12-31 22:01:12 · 7357 阅读 · 1 评论 -
SDR# (SDRSharp)代码讲解 (一)
SDR#(也称SDRSharp)与Linux平台下常用的GQRX类似,是目前Windows平台上最常用的频谱观察,音频解调软件,支持AM、FM、SSB等多种调制方式。以SDRSharp为基础又派生出了其它一些软件比如TVSharp以及ADSBSharp等。接下来本帖会讲解SDRSharp的核心代码,借此抛砖引玉,希望读者也能自此获得灵感,写出自己的作品。我们的讲解会以最后一个开...原创 2017-12-22 10:35:35 · 18230 阅读 · 5 评论