简体   繁体   English

为什么我无法从简单的GNURadio模块听到清晰的声音

[英]Why I cannot hear clear sound from simple GNURadio block

I made simple FM Radio in GNU Radio but I cannot hear clear sound. 我在GNU Radio中制作了简单的FM Radio,但听不到清晰的声音。 It just makes very noisy, chopped sound. 它只会发出非常吵杂的声音。 Even dial-tone example makes same problem. 甚至拨号音示例也会出现相同的问题。

Is there anyone who met same problem?? 有谁遇到过同样的问题吗?

My environment: 我的环境:

  • VM in Virtual box(2 core, 1GB memory) 虚拟机中的虚拟机(2核,1GB内存)
  • ubuntu 14.04.4 LTS Ubuntu 14.04.4 LTS
  • GNU Radio 3.7.9 GNU Radio 3.7.9

Dial-tone example(same with original one in official website..) 拨号音示例(与官方网站中的原始示例相同。)

#!/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

This example works very well on my machines. 这个例子在我的机器上工作得很好。

The noisy common reason for problems like these is the fact that virtualized sound cards don't work quite like their real counterparts, especially when the virtualizer tries to resample 出现此类问题的常见原因是虚拟声卡的工作原理与真实声卡不同,尤其是在虚拟机尝试重新采样时

I'd bet your problems go away as soon as you run your GNU Radio natively, instead of in a VM. 我敢打赌,只要您在本地运行GNU Radio而不是在VM中运行,您的问题就会消失。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM