2020/9/13 AD9361 切换频点和切换状态

  1. ENSM

 

   选模式TDD 和 使能TX PLL与RX PLL 频率合成

    SPIWrite        013,00      // Set ENSM FDD/TDD bit

    SPIWrite        015,00      // Set Dual Synth Mode, FDD External Control bits properly

切换状态  

       SLEEP     AD9361 clocks/BBPLL disabled

       WAIT      Synthesizers disabled (power saving mode)

   ALERT     Synthesizers enabled.

  Tx       Tx signal chain enabled

Tx FLUSH  Time to allow digital filters and signal path to flush

Rx  signal chain enabled

Rx FLUSH  Time to allow digital filters and signal path to flush


 2.ENSM 相关寄存器

操作寄存器(0x014)ENSM Config 1的配置某一状态即可。

        RX状态     SPIWrite   0x014, 0x40(Force  Tx on)

ALERT状态      SPIWrite   0x014, 0x04(Force  ALERT on)

TX状态      SPIWrite   0x014, 0x20(Force  ALERT on)

WAIT 状态      SPIWrite   0x014,0x01。

读寄存器(0x017)可以看是否处于某一个状态。

TXNRX SPI  Control:仅用于单个频率合成器使能(0x015,D2为0)的时候,TXNRX从0跳变到1时,RX PLL关闭,TX PLL开启并进行重新校准锁定,反之TX PLL关闭,RX PLL开启并重新校准锁定。(我们用的双频率合成器使能,这样 TX PLL 与 RX PLL  都提前校准锁定)

 

 

TX与RX的切换

一般操作,只需要三个状态:

TX到RX :  TX ->ALERT -> RX。

RX到TX :  RX ->ALERT -> TX。

如果考虑功耗的话, 会多出一个WAIT 状态, 会关掉频率合成器。等到ALERT时候,再使能频率合成器。

RX -> WAIT ->ALERT -> TX。

 


3.切换频点

设定频率与判断是否锁定   

  1. 设定频率

AD9361切频点时,做了一张表2400~2480M的频点40个信道表,用查表来设定,省去计算的时间。

        注:当设置完寄存器0x271时,启动VCO cal校准。

AD9361 设置完频点之后,必须RFPLL Dividers设置一遍。

 

 

 如果要很精确,设定频率要对一系列参数要进行设置,不仅仅只是频点表,如下表。发现这些参数变化范围不大。

是否锁定

   只需要查看0x247与0x287的D1是否为1。目前程序没有检查是否锁定。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 在Matlab中实现L1频点C/A码信号的FFT捕获需要进行以下步骤: 1. 首先,我们需要定义C/A码的序列。C/A码是GPS卫星系统中用于精确测量的编码信号。它包含1023位的序列,每个位都是1或-1。在Matlab中,我们可以使用向量表示这个序列。 2. 接下来,我们需要定义采样率和采样时间。在GPS中,L1频点的信号采样率为1.023MHz,采样时间为1ms。在Matlab中,我们可以使用以下命令定义采样率和采样时间: fs = 1.023e6; % 采样率 T = 1e-3; % 采样时间 3. 然后,我们可以生成采样率为1.023MHz的时域信号。在Matlab中,我们可以使用以下命令生成: t = 0:1/fs:T-1/fs; % 时间序列 signal = repelem(C_A码, ceil(fs)); % 重复C/A码序列,使其长度与时间序列匹配 signal = signal(1:length(t)); % 调整信号长度与时间序列相同 4. 接下来,我们可以对生成的信号进行FFT变换以获取频谱。在Matlab中,我们可以使用以下命令进行FFT变换: Y = fft(signal); 5. 最后,我们可以通过绘制频谱图来可视化FFT结果。在Matlab中,我们可以使用以下命令绘制频谱图: f = (-fs/2):(fs/length(Y)):(fs/2-fs/length(Y)); plot(f, abs(fftshift(Y))); xlabel('频率 (Hz)'); ylabel('幅值'); title('C/A码信号的频谱'); 通过以上步骤,我们可以在Matlab中实现L1频点C/A码信号的FFT捕获,并对其频谱进行可视化。 ### 回答2: MATLAB可以通过调用fft函数来实现L1频点C/A码信号的FFT捕获。首先,我们需要使用理想的正弦波信号构造C/A码序列,并将其在时域上重复至足够长的时间。接下来,可以利用MATLAB的fft函数对这个重复的C/A码序列进行FFT捕获。 假设C/A码序列的长度为N。首先,定义一个长度为N的向量,用于存储C/A码序列的离散时间采样。然后,将这个向量重复复制若干次,以保证C/A码序列在时域上的重复。具体来说,如果我们希望信号连续重复M次,那么可以将这个向量复制M次生成一个长度为N*M的向量。 接下来,调用MATLAB的fft函数对这个重复的C/A码序列进行FFT计算。FFT计算会将信号从时域转换到频域,得到一个长度为N*M的频域向量。在频域上,可以通过查找最大幅值对应的索引,找到对应的L1频点的C/A码信号。 需要注意的是,由于GPS信号是带有噪声的,捕获过程中可能会受到噪声的影响。为了提高捕获的准确度,可以使用相关函数等方法来提高信号与C/A码的匹配度。 总之,通过构造C/A码序列并进行重复,然后利用MATLAB的fft函数进行FFT计算,可以实现L1频点C/A码信号的FFT捕获。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值