考虑了良久,最终还是决定将这篇博文写出来.
先说一下假台产生的原因吧:
大部分情况下收音机只是整机功能的一部分,其它功能模块都有可能造成收音频段干扰.例如:
24Mhz晶体会造成很强的4倍频干扰即96Mhz,比一般电台强得多.自动搜台必搜到.
12Mhz晶体会造成96Mhz,108Mhz假台;
27Mhz晶体会造成108Mhz干扰;
4Mhz倍频点更多:,88Mhz,92Mhz,96Mhz,100Mhz,104Mhz,108Mhz.
除了晶振倍频造成假台外,电路板上还会寄生出很多干扰频点出来. 如显示扫描, I2C通信干扰, 大部分很弱,但也有少量很强的,数字电路高速运转+PCB走线谐振效应,最终干扰多如牛毛. 只是大部分不够强而已.
根据以往经验,一般板上干扰点造成的假台一般有如下:
1.晶体倍频干扰点;
2.偶数倍整数频点: 88,90,92,94,96,98,100,102,104,106,108Mhz;
3.奇数倍整数频点,出现的机率相对少;
4.板上干扰产生的杂散频点,一般比较弱;
5.周边环境干扰,一般最多一两个,如果改变位置后干扰点能移除则可不用考虑.
要去掉这些假台,首先要做的是记录, 建议按以下步骤:
1.找个信号非常差的地方如地下室测试, 越是信号差假台越容易出来.
2.执行自动搜台,把搜到的假台记下来.
3.重复多次执行步骤2,把新出现的假台也记下来
4.换个新位置环境,重复步骤2,3. 如果2,3步骤中搜到的假台不再重现则说明是环境干扰,可以不考虑.
5.新位置出现的假台如果在旧位置从来没搜到也可不考虑,当环境干扰.
为了以上假台在自动搜台时不再出现,在自动搜台扫到这些频点后,如发现符合真台条件还需要判断一下立体声标志ST,为1认为当前台是真台,为0则认为是假台.
依据: 如果是干扰造成的停台肯定不可能是立体声的. 只有电台才会是立体声.
用立体声去假台,有利有弊,但总体来讲利远远大于弊.
利表现为: 用立体声判断后干扰点造成的假台都不会出现.
弊表现为: 如果当前电台刚好与板上干扰点同频点而且刚好不是立体声电台,软件就会把这一点做为假台而去掉了. 当然现在单声道的电台已经很少了.
出现同频点又刚好是单声道台的几率很微小.
以下是程序范例,请加到自动搜台判断中去,假台频点根据板上不同请自行加上.
if((freq == 900)||(freq == 960)||(freq == 1020)||(freq == 1080)) //判断自动搜台是否扫到这些有干扰的频点
{
if(!st_flag) //判断ST标志是否为1
{
seekover = 0; //为0, 不是立体声台,返回当前台为假台
}
}
除此以外, 初始化还有一个非常重要的更改一定不要漏掉, 如下:
http://forum.eet-cn.com/BLOG_ARTICLE_9550.HTM
23. 致所有BK1080客户: BK1080初始化重要更改项 --非常重要,务必更改
用户1644953 2012-2-21 11:47
用户1636526 2011-11-28 11:54