ADI 技术
直播中

侯屏早

7年用户 176经验值
私信 关注
[问答]

AD9361接收信号频谱分析频谱图上有一个明显的频点

用NO-OS的程序设置完本振、带宽、采样率后,对接收到的信号做频谱分析。问题是这样的,当用信号源给9361相应的输入信号时,通过[size=13.3333px]对接收到的信号做FFT可以发现结果正常,从画出的频谱图上可以看到有一个明显的频点,但是当信号源不给输入信号的时候,通过画出的频谱图发现整个设置的带宽内都有频率值,感觉像是白噪声。下图是分析的结果,上图是有信号源的情况,下图是没有信号源的情况。请大家看看问题出在哪了?谢谢

回帖(2)

马丹丹

2018-9-13 11:04:03
这可能与你的测试环境有关,不加输入是指悬空?还有就是这是基于EVL BOARD的结果还是自行开发的平台
举报

张瑞娟

2018-9-13 11:09:54
你好
 
我也使用的是ad9361的no-os程序,我在程序里修改default_init_param,设为TDD模式,并且将rx2tx2设置为0(只使用rx1),然后频率那些都按照默认的,然后根据程序里设置的rx本振频率,在rx1端口接相应频率的信号源,提供正弦信号。在main.c函数中,基本的setup都完成后,我加入了下面这些代码:
 
uint32_t ensm_state ;
int32_t i;
int32_t rdata;
int16_t sampI, sampQ;
uint8_t en_dis = 5;

 
en_dis_rx(ad9361_phy,1,RX_ENABLE);
en_dis_rx(ad9361_phy,2,RX_DISABLE);

 
//ensm
ad9361_set_en_state_machine_mode(ad9361_phy,ENSM_STATE_ALERT);
ensm_state = get_cur_ensm_status(ad9361_phy);
ad9361_set_en_state_machine_mode(ad9361_phy,ENSM_STATE_RX);
ensm_state = get_cur_ensm_status(ad9361_phy);

 
//Rx
adc_capture(16384,ADC_DDR_BASEADDR);
Xil_DCacheInvalidateRange(ADC_DDR_BASEADDR,16384*4);

 
mdelay(1000);
for( i= 0; i< 16384; i++ )
{
     rdata = Xil_In32(ADC_DDR_BASEADDR+(i*4));
     sampQ = rdata & 0xFFFF;
     sampI = (rdata>>16) & 0xFFFF;

  xil_printf("%d ",sampI);
}

 
 
我在matlab中将i路的数据画出来,但是结果不是正弦波,基本全是噪声。请问我这种采集数据的方法对吗?你接收数据时,有哪些地方和我的处理有不同吗?
举报

更多回帖

发帖
×
20
完善资料,
赚取积分