此电视棒本是用来接收DVB-T数字电视信号的,不过有人发现它使用的RTL2832U芯片可以输出8bit的原始 I/Q 采样,且接收频段覆盖64MHz-1700MHz,因此很适合作为软件无线电接收机。

相关软件下载地址:
http://sourceforge.net/projects/libwdi/files/zadig/ (Win7使用zadig_v2.0.1.160.7z)
http://osmocom.rtlsdr.org//trac/raw-attachment/wiki/rtl-sdr/RelWithDebInfo.zip (仅需要其中的rtlsdr.dll)
http://sdrsharp.com/ (需要下载SDR# Dev 和 SDR# RTLSDR Plugin )

在深圳白石洲,使用自带的拉杆天线,FM的效果似乎和我的PL600差不多,438.500MHz中继台的信号也听的十分清楚。
如果要更深入了解的话,可以学习SDR#的源码或使用GNU Radio等。

DIY上变频模块:
http://www.hellocq.net/forum/read.php?tid=296387
http://www.george-smart.co.uk/wiki/FunCube_Upconverter

参考资料:
http://osmocom.rtlsdr.org/trac/wiki/rtl-sdr
http://www.hellocq.net/forum/read.php?tid=307027&page=1
http://bbs.leowood.net:88/forum_read.asp?id=12084833&page=1&property=0&ClassID=1
http://bbs.tecsun.com.cn/0002.asp?open=437958

一大堆的SDR软件:

http://www.voidcn.com/blog/kc87654321/article/p-6220446.html


本文链接地址: 用RTL2832U+E4000电视棒体验软件无线电
https://blog.qingfengju.com/index.asp?id=322

分类:嵌入式/电子 查看次数:25430 发布时间:2013/3/24 12:50:32

#include <atlbase.h>
#include <DShow.h>
#pragma comment(lib,"Strmiids.lib")
 
CComPtr<IFilterMapper> pMapper;
HRESULT hr=pMapper.CoCreateInstance(CLSID_FilterMapper);
if(FAILED(hr))
{
    _tprintf(L"创建IFilterMapper接口失败\n");
    return 0;
}
 
CComPtr<IEnumRegFilters> pEnumRegFilters;
DWORD dwMerit=0;
hr=pMapper->EnumMatchingFilters(&pEnumRegFilters,dwMerit,FALSE,GUID_NULL,GUID_NULL,FALSE,FALSE,GUID_NULL,GUID_NULL);
if(FAILED(hr))
{
    _tprintf(L"创建IEnumRegFilters接口失败\n");
    return 0;
}
 
int Nums=0;
ULONG cFetched=0;
REGFILTER *pRegFilter=NULL;
while(pEnumRegFilters->Next(1,&pRegFilter,&cFetched)==S_OK)
{
    for(size_t i=0;i<cFetched;i++)
    {
        _tprintf(L"%02d %s\n",++Nums,(pRegFilter+i)->Name);
    }
 
    CoTaskMemFree(pRegFilter);
}
 
pEnumRegFilters.Release();
pMapper.Release();

需要注意的是:

自己开发的Filter如果只是简单的通过AMovieDllRegisterServer2(TRUE)注册,将不会被枚举出来。

 

为了可以被枚举,还需要用IFilterMapper::RegisterFilterFilter信息写入注册表,代码如下:

HRESULT RegisterFilter(BOOL bRegister)
{
    CComPtr<IFilterMapper> pMapper;
    HRESULT hr=pMapper.CoCreateInstance(CLSID_FilterMapper);
    if(FAILED(hr))
    {
        _tprintf(L"创建IFilterMapper接口失败\n");
        return hr;
    }
 
    if(bRegister)
    {
        hr=pMapper->RegisterFilter(CLSID_RotationFilter,L"Rotation Filter",MERIT_NORMAL);
        if(FAILED(hr))
        {
            _tprintf(L"RegisterFilter CLSID_RotationFilter失败\n");
            return hr;
        }
    }
    else
    {
        hr=pMapper->UnregisterFilter(CLSID_RotationFilter);
        if(FAILED(hr))
        {
            _tprintf(L"UnregisterFilter CLSID_RotationFilter失败\n");
            return hr;
        }
    }
 
    pMapper.Release();
    return S_OK;
}
 
STDAPI DllRegisterServer()
{
    HRESULT hr= AMovieDllRegisterServer2(TRUE);
    if (FAILED(hr))
    {
        return hr;
    }
 
    hr=RegisterFilter(TRUE);
    if (FAILED(hr))
    {
        return hr;
    }
 
    return S_OK;
}

本文链接地址: DirectShow.4 枚举Windows Mobile (WinCE) 所有Filter
https://blog.qingfengju.com/index.asp?id=268

分类:嵌入式/电子 查看次数:9807 发布时间:2011/11/21 16:07:46