2016-07-20 46 views
0

我在GNU Radio中製作了簡單的FM收音機,但聽不到清晰的聲音。它只是非常嘈雜,切碎的聲音。即使撥號音的例子也有同樣的問題。爲什麼我聽不到簡單GNURadio模塊的清晰聲音

有沒有人遇到同樣的問題?

我的環境:

  • VM虛擬框(2核心,1GB顯存)
  • 的Ubuntu 14.04.4 LTS
  • GNU收音機3.7.9

撥號音例子(與官方網站中的原版相同)

#!/usr/bin/env python 
# 
# Copyright 2004,2005,2007 Free Software Foundation, Inc. 
# 
# This file is part of GNU Radio 
# 
# GNU Radio is free software; you can redistribute it and/or modify 
# it under the terms of the GNU General Public License as published by 
# the Free Software Foundation; either version 3, or (at your option) 
# any later version. 
# 
# GNU Radio is distributed in the hope that it will be useful, 
# but WITHOUT ANY WARRANTY; without even the implied warranty of 
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 
# GNU General Public License for more details. 
# 
# You should have received a copy of the GNU General Public License 
# along with GNU Radio; see the file COPYING. If not, write to 
# the Free Software Foundation, Inc., 51 Franklin Street, 
# Boston, MA 02110-1301, USA. 
# 

from gnuradio import gr 
from gnuradio import analog 
from gnuradio import audio 
from gnuradio.eng_option import eng_option 
from optparse import OptionParser 

class my_top_block(gr.top_block): 

    def __init__(self): 
     gr.top_block.__init__(self) 

     parser = OptionParser(option_class=eng_option) 
     parser.add_option("-O", "--audio-output", type="string", default="", 
          help="pcm output device name. E.g., hw:0,0 or /dev/dsp") 
     parser.add_option("-r", "--sample-rate", type="eng_float", default=48000, 
          help="set sample rate to RATE (48000)") 
     (options, args) = parser.parse_args() 
     if len(args) != 0: 
      parser.print_help() 
      raise SystemExit, 1 

     sample_rate = int(options.sample_rate) 
     ampl = 1 

     src0 = analog.sig_source_f (sample_rate, analog.GR_SIN_WAVE, 350, ampl) 
     src1 = analog.sig_source_f (sample_rate, analog.GR_SIN_WAVE, 440, ampl) 
     dst = audio.sink (sample_rate, options.audio_output) 
     self.connect (src0, (dst, 0)) 
     self.connect (src1, (dst, 1)) 


if __name__ == '__main__': 
    try: 
     my_top_block().run() 
    except KeyboardInterrupt: 
     pass 

回答

1

這個例子在我的機器上工作得很好。

像這些問題的嘈雜常見的原因是,虛擬化的聲卡不工作很喜歡他們的真正的同行,尤其是當虛擬器試圖重新取樣

我敢打賭,你的問題很快消失因爲你原生地運行你的GNU Radio,而不是在VM中運行。

相關問題