首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在特定频率下获得功率,特别提款权和FFT

在特定频率下获得功率,特别提款权和FFT
EN

Stack Overflow用户
提问于 2017-04-14 16:09:12
回答 1查看 725关注 0票数 0

我试图在一个特定的频率,一个RTL-特别提款权。我正在改编我在网上找到的FFT例子。这里的缩写代码(删除多余的内容):

代码语言:javascript
复制
import matplotlib.mlab as mlab
import rtlsdr

NFFT=1024

dwell = 0.016
sample_rate = 2.4e6
offset = 200e3
freq = 100e6

sdr = rtlsdr.RtlSdr(0)
sdr.set_sample_rate(sample_rate)
sdr.set_manual_gain_enabled(1)
sdr.set_gain(22.9)
sdr.freq_correction = 0

numsamples = next_2_to_pow(int(dwell * sample_rate))

freq = freq - offset  # avoid dc spike
sdr.set_center_freq(freq)
samples = sdr.read_samples(numsamples)

powers, freqs = mlab.psd(samples, NFFT=NFFT, Fs=sample_rate/1e6, window=hamming(NFFT))

bin_offset = int(offset / (sample_rate / NFFT))
freq = int(freq + offset)
pwr = float( "{:.2f}".format(10 * math.log10( powers[ int(len(powers)/2) + bin_offset ] )) )

这根本行不通。频率上的功率保持在相同的水平(噪音水平),即使我注入信号时也是如此。

我有两种理论来解释为什么这不管用。1) RTL-SDR返回I/Q数据,这种方法没有考虑到(?) 2)我对FFT的理解不足以正确地执行它。

到底是哪一个?我怎么才能修好它?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-15 12:35:19

您是否尝试过使用rtl_power,然后在输出中选择正确的bin?这是对rtl_sdr套件的一个相对较新的添加。用C语言,而不是Python。https://github.com/osmocom/rtl-sdr

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43415222

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档