add sampled data; add new online acq proj

the function of dmf is correct
This commit is contained in:
2023-05-04 20:27:06 +08:00
parent 78e60b6e2d
commit e07389e326
1132 changed files with 356684 additions and 738 deletions
@@ -0,0 +1,131 @@
################################################################################
########################### Single Project Specific ############################
################################################################################
# ------------------------------------------------------------------------------
# ------------------------------ Vivado Specific -------------------------------
# ------------------------------------------------------------------------------
# exclude everything in project directory
project/**
# include hardware manager projects and sources
# 1. include `.hw` directory
# 2. include everything in `.hw` directory
!project/*.hw/
!project/*.hw/**
# include design run results
# 1. include `*.runs` directory
# 2. exclude everything in `.runs` directory
# 3. include `.impl_*` directory
# 4. include `*.bit` file in `.impl_*` directory
# 5. include `*.ltx` file in `.impl_*` directory
!/project/*.runs/
/project/*.runs/**
!/project/*.runs/impl_*/
!/project/*.runs/impl_*/*.bit
!/project/*.runs/impl_*/*.ltx
# ------------------------------------------------------------------------------
# -------------------------------- SDK Specific --------------------------------
# ------------------------------------------------------------------------------
# include sdk directory and everything in it
!/project/*.sdk/
!/project/*.sdk/**
/project/*.sdk/**.log
# exclude some obscure hidden SDK folders
/project/*.sdk/.metadata/
/project/*.sdk/.sdk/
/project/*.sdk/RemoteSystemsTempFiles/
/project/*.sdk/webtalk/
# hw_platform: exclude the entire hw_platform folder, as everything can be
# generated from the .hdf file. Make sure to include the bitstream in the .hdf
# file when exporting from Vivado!
/project/*.sdk/*_hw_platform_*/
# BSP: only keep `.cproject`, `.project`, `.sdkproject`, `.system.mss` and
# Makefile, ps lib files are regenerated automatically
/project/*.sdk/*_bsp/*
!/project/*.sdk/*_bsp/*.cproject
!/project/*.sdk/*_bsp/*.project
!/project/*.sdk/*_bsp/*.sdkproject
!/project/*.sdk/*_bsp/system.mss
!/project/*.sdk/*_bsp/Makefile
# Application: ignored file patterns, exclude Debug & Release folders
/project/*.sdk/**/*.o
/project/*.sdk/**/*.d
/project/*.sdk/**/*.a
/project/*.sdk/*/Debug/
/project/*.sdk/*/Release/
################################################################################
# ############################ Multi Project Specific ############################
# ################################################################################
# # ------------------------------------------------------------------------------
# # ------------------------------ Vivado Specific -------------------------------
# # ------------------------------------------------------------------------------
# # exclude everything in project directory expect for top level directory
# project/**
# !/project/*/
# # include hardware manager projects and sources
# # 1. include `.hw` directory
# # 2. include everything in `.hw` directory
# !project/*/*.hw/
# !project/*/*.hw/**
# # include design run results
# # 1. include `*.runs` directory
# # 2. exclude everything in `.runs` directory
# # 3. include `.impl_*` directory
# # 4. include `*.bit` file in `.impl_*` directory
# # 5. include `*.ltx` file in `.impl_*` directory
# !/project/*/*.runs/
# /project/*/*.runs/**
# !/project/*/*.runs/impl_*/
# !/project/*/*.runs/impl_*/*.bit
# !/project/*/*.runs/impl_*/*.ltx
# # ------------------------------------------------------------------------------
# # -------------------------------- SDK Specific --------------------------------
# # ------------------------------------------------------------------------------
# # include sdk directory and everything in it
# !/project/*/*.sdk/
# !/project/*/*.sdk/**
# /project/*/*.sdk/**.log
# # exclude some obscure hidden SDK folders
# /project/*/*.sdk/.metadata/
# /project/*/*.sdk/.sdk/
# /project/*/*.sdk/RemoteSystemsTempFiles/
# /project/*/*.sdk/webtalk/
# # hw_platform: exclude the entire hw_platform folder, as everything can be
# # generated from the .hdf file. Make sure to include the bitstream in the .hdf
# # file when exporting from Vivado!
# /project/*/*.sdk/*_hw_platform_*/
# # BSP: only keep `.cproject`, `.project`, `.sdkproject`, `.system.mss` and
# # Makefile, ps lib files are regenerated automatically
# /project/*/*.sdk/*_bsp/*
# !/project/*/*.sdk/*_bsp/*.cproject
# !/project/*/*.sdk/*_bsp/*.project
# !/project/*/*.sdk/*_bsp/*.sdkproject
# !/project/*/*.sdk/*_bsp/system.mss
# !/project/*/*.sdk/*_bsp/Makefile
# # Application: ignored file patterns, exclude Debug & Release folders
# /project/*/*.sdk/**/*.o
# /project/*/*.sdk/**/*.d
# /project/*/*.sdk/**/*.a
# /project/*/*.sdk/*/Debug/
# /project/*/*.sdk/*/Release/
@@ -0,0 +1,220 @@
# smq7k410t_b9361
## Timing Assertions Section
## Physical Constraints Section
# Clocks
set_property -dict {PACKAGE_PIN L25 IOSTANDARD LVCMOS33} [get_ports clk_25m ] ;# CLK_25M
set_property -dict {PACKAGE_PIN F20 IOSTANDARD LVDS_25 } [get_ports clk_250m_p ] ;# CLK_250M_P
set_property -dict {PACKAGE_PIN D26 IOSTANDARD LVCMOS18} [get_ports ad9361_1_buffer_clk ] ;# B9361_1_CLK_OUT
set_property -dict {PACKAGE_PIN H14 IOSTANDARD LVCMOS18} [get_ports ad9361_2_buffer_clk ] ;# B9361_2_CLK_OUT
# HMC7044-1 Interface
set_property -dict {PACKAGE_PIN J23 IOSTANDARD LVCMOS33} [get_ports ad9516_spi_clk ] ;# GM4526C_SPI_SCLK
set_property -dict {PACKAGE_PIN M19 IOSTANDARD LVCMOS33} [get_ports ad9516_spi_csn ] ;# GM4526C_SPI_CSB
set_property -dict {PACKAGE_PIN L21 IOSTANDARD LVCMOS33} [get_ports ad9516_spi_mosi ] ;# GM4526C_SPI_SDIO
set_property -dict {PACKAGE_PIN K23 IOSTANDARD LVCMOS33} [get_ports ad9516_spi_miso ] ;# GM4526C_SPI_SDO
set_property -dict {PACKAGE_PIN L23 IOSTANDARD LVCMOS33} [get_ports ad9516_refmon ] ;# GM4526C_REFMON
set_property -dict {PACKAGE_PIN K24 IOSTANDARD LVCMOS33} [get_ports ad9516_ld ] ;# GM4526C_LD
set_property -dict {PACKAGE_PIN J24 IOSTANDARD LVCMOS33} [get_ports ad9516_status ] ;# GM4526C_STATUS
set_property -dict {PACKAGE_PIN K21 IOSTANDARD LVCMOS33} [get_ports ad9516_pd_b ] ;# GM4526C_PDB
set_property -dict {PACKAGE_PIN L22 IOSTANDARD LVCMOS33} [get_ports ad9516_reset_b ] ;# GM4526C_RESETB
set_property -dict {PACKAGE_PIN J21 IOSTANDARD LVCMOS33} [get_ports ad9516_sync_b ] ;# GM4526C_SYNCB
# AD9361-1 Interface
set_property -dict {PACKAGE_PIN D27 IOSTANDARD LVCMOS18} [get_ports ad9361_1_rx_data_clk ] ;# B9361_1_DATA_CLK
set_property -dict {PACKAGE_PIN B27 IOSTANDARD LVCMOS18} [get_ports ad9361_1_rx_frame ] ;# B9361_1_RX_FRAME
set_property -dict {PACKAGE_PIN A23 IOSTANDARD LVCMOS18} [get_ports ad9361_1_rx_data[0] ] ;# B9361_1_P0_00_TX0_N
set_property -dict {PACKAGE_PIN B23 IOSTANDARD LVCMOS18} [get_ports ad9361_1_rx_data[1] ] ;# B9361_1_P0_01_TX0_P
set_property -dict {PACKAGE_PIN D23 IOSTANDARD LVCMOS18} [get_ports ad9361_1_rx_data[2] ] ;# B9361_1_P0_02_TX1_N
set_property -dict {PACKAGE_PIN E23 IOSTANDARD LVCMOS18} [get_ports ad9361_1_rx_data[3] ] ;# B9361_1_P0_03_TX1_P
set_property -dict {PACKAGE_PIN D24 IOSTANDARD LVCMOS18} [get_ports ad9361_1_rx_data[4] ] ;# B9361_1_P0_04_TX2_N
set_property -dict {PACKAGE_PIN E24 IOSTANDARD LVCMOS18} [get_ports ad9361_1_rx_data[5] ] ;# B9361_1_P0_05_TX2_P
set_property -dict {PACKAGE_PIN E25 IOSTANDARD LVCMOS18} [get_ports ad9361_1_rx_data[6] ] ;# B9361_1_P0_06_TX3_N
set_property -dict {PACKAGE_PIN F25 IOSTANDARD LVCMOS18} [get_ports ad9361_1_rx_data[7] ] ;# B9361_1_P0_07_TX3_P
set_property -dict {PACKAGE_PIN E26 IOSTANDARD LVCMOS18} [get_ports ad9361_1_rx_data[8] ] ;# B9361_1_P0_08_TX4_N
set_property -dict {PACKAGE_PIN F26 IOSTANDARD LVCMOS18} [get_ports ad9361_1_rx_data[9] ] ;# B9361_1_P0_09_TX4_P
set_property -dict {PACKAGE_PIN G24 IOSTANDARD LVCMOS18} [get_ports ad9361_1_rx_data[10] ] ;# B9361_1_P0_10_TX5_N
set_property -dict {PACKAGE_PIN G23 IOSTANDARD LVCMOS18} [get_ports ad9361_1_rx_data[11] ] ;# B9361_1_P0_11_TX5_P
set_property -dict {PACKAGE_PIN E28 IOSTANDARD LVCMOS18} [get_ports ad9361_1_tx_fb_clk ] ;# B9361_1_FB_CLK
set_property -dict {PACKAGE_PIN G27 IOSTANDARD LVCMOS18} [get_ports ad9361_1_tx_frame ] ;# B9361_1_TX_FRAME
set_property -dict {PACKAGE_PIN E30 IOSTANDARD LVCMOS18} [get_ports ad9361_1_tx_data[0] ] ;# B9361_1_P1_00_RX0_N
set_property -dict {PACKAGE_PIN E29 IOSTANDARD LVCMOS18} [get_ports ad9361_1_tx_data[1] ] ;# B9361_1_P1_01_RX0_P
set_property -dict {PACKAGE_PIN C30 IOSTANDARD LVCMOS18} [get_ports ad9361_1_tx_data[2] ] ;# B9361_1_P1_02_RX1_N
set_property -dict {PACKAGE_PIN D29 IOSTANDARD LVCMOS18} [get_ports ad9361_1_tx_data[3] ] ;# B9361_1_P1_03_RX1_P
set_property -dict {PACKAGE_PIN A30 IOSTANDARD LVCMOS18} [get_ports ad9361_1_tx_data[4] ] ;# B9361_1_P1_04_RX2_N
set_property -dict {PACKAGE_PIN B30 IOSTANDARD LVCMOS18} [get_ports ad9361_1_tx_data[5] ] ;# B9361_1_P1_05_RX2_P
set_property -dict {PACKAGE_PIN B29 IOSTANDARD LVCMOS18} [get_ports ad9361_1_tx_data[6] ] ;# B9361_1_P1_06_RX3_N
set_property -dict {PACKAGE_PIN C29 IOSTANDARD LVCMOS18} [get_ports ad9361_1_tx_data[7] ] ;# B9361_1_P1_07_RX3_P
set_property -dict {PACKAGE_PIN F28 IOSTANDARD LVCMOS18} [get_ports ad9361_1_tx_data[8] ] ;# B9361_1_P1_08_RX4_N
set_property -dict {PACKAGE_PIN G28 IOSTANDARD LVCMOS18} [get_ports ad9361_1_tx_data[9] ] ;# B9361_1_P1_09_RX4_P
set_property -dict {PACKAGE_PIN H25 IOSTANDARD LVCMOS18} [get_ports ad9361_1_tx_data[10] ] ;# B9361_1_P1_10_RX5_N
set_property -dict {PACKAGE_PIN H24 IOSTANDARD LVCMOS18} [get_ports ad9361_1_tx_data[11] ] ;# B9361_1_P1_11_RX5_P
set_property -dict {PACKAGE_PIN H20 IOSTANDARD LVCMOS18} [get_ports ad9361_1_spi_clk ] ;# B9361_1_SPI_CLK
set_property -dict {PACKAGE_PIN J18 IOSTANDARD LVCMOS18} [get_ports ad9361_1_spi_csn ] ;# B9361_1_SPI_ENB
set_property -dict {PACKAGE_PIN G20 IOSTANDARD LVCMOS18} [get_ports ad9361_1_spi_mosi ] ;# B9361_1_SPI_DI
set_property -dict {PACKAGE_PIN G19 IOSTANDARD LVCMOS18} [get_ports ad9361_1_spi_miso ] ;# B9361_1_SPI_DO
set_property -dict {PACKAGE_PIN K18 IOSTANDARD LVCMOS18} [get_ports ad9361_1_reset_b ] ;# B9361_1_RESETB
set_property -dict {PACKAGE_PIN J17 IOSTANDARD LVCMOS18} [get_ports ad9361_1_en_agc ] ;# B9361_1_EN_AGC
set_property -dict {PACKAGE_PIN H17 IOSTANDARD LVCMOS18} [get_ports ad9361_1_enable ] ;# B9361_1_ENABLE
set_property -dict {PACKAGE_PIN A27 IOSTANDARD LVCMOS18} [get_ports ad9361_1_txnrx ] ;# B9361_1_TXNRX
set_property -dict {PACKAGE_PIN L18 IOSTANDARD LVCMOS18} [get_ports ad9361_1_ctrl_in[0] ] ;# B9361_1_CTRL_IN0
set_property -dict {PACKAGE_PIN H19 IOSTANDARD LVCMOS18} [get_ports ad9361_1_ctrl_in[1] ] ;# B9361_1_CTRL_IN1
set_property -dict {PACKAGE_PIN J19 IOSTANDARD LVCMOS18} [get_ports ad9361_1_ctrl_in[2] ] ;# B9361_1_CTRL_IN2
set_property -dict {PACKAGE_PIN L17 IOSTANDARD LVCMOS18} [get_ports ad9361_1_ctrl_in[3] ] ;# B9361_1_CTRL_IN3
set_property -dict {PACKAGE_PIN H21 IOSTANDARD LVCMOS18} [get_ports ad9361_1_ctrl_out[0] ] ;# B9361_1_CTRL_OUT0
set_property -dict {PACKAGE_PIN K20 IOSTANDARD LVCMOS18} [get_ports ad9361_1_ctrl_out[1] ] ;# B9361_1_CTRL_OUT1
set_property -dict {PACKAGE_PIN H22 IOSTANDARD LVCMOS18} [get_ports ad9361_1_ctrl_out[2] ] ;# B9361_1_CTRL_OUT2
set_property -dict {PACKAGE_PIN G22 IOSTANDARD LVCMOS18} [get_ports ad9361_1_ctrl_out[3] ] ;# B9361_1_CTRL_OUT3
set_property -dict {PACKAGE_PIN C21 IOSTANDARD LVCMOS18} [get_ports ad9361_1_ctrl_out[4] ] ;# B9361_1_CTRL_OUT4
set_property -dict {PACKAGE_PIN F22 IOSTANDARD LVCMOS18} [get_ports ad9361_1_ctrl_out[5] ] ;# B9361_1_CTRL_OUT5
set_property -dict {PACKAGE_PIN K19 IOSTANDARD LVCMOS18} [get_ports ad9361_1_ctrl_out[6] ] ;# B9361_1_CTRL_OUT6
set_property -dict {PACKAGE_PIN D21 IOSTANDARD LVCMOS18} [get_ports ad9361_1_ctrl_out[7] ] ;# B9361_1_CTRL_OUT7
set_property -dict {PACKAGE_PIN D22 IOSTANDARD LVCMOS18} [get_ports ad9361_sync ] ;# B9361_SYNC
# AD9361-2 Interface
set_property -dict {PACKAGE_PIN D12 IOSTANDARD LVCMOS18} [get_ports ad9361_2_rx_data_clk ] ;# B9361_2_DATA_CLK
set_property -dict {PACKAGE_PIN H15 IOSTANDARD LVCMOS18} [get_ports ad9361_2_rx_frame ] ;# B9361_2_RX_FRAME
set_property -dict {PACKAGE_PIN L13 IOSTANDARD LVCMOS18} [get_ports ad9361_2_rx_data[0] ] ;# B9361_2_P0_00_TX0_N
set_property -dict {PACKAGE_PIN L12 IOSTANDARD LVCMOS18} [get_ports ad9361_2_rx_data[1] ] ;# B9361_2_P0_01_TX0_P
set_property -dict {PACKAGE_PIN K11 IOSTANDARD LVCMOS18} [get_ports ad9361_2_rx_data[2] ] ;# B9361_2_P0_02_TX1_N
set_property -dict {PACKAGE_PIN L11 IOSTANDARD LVCMOS18} [get_ports ad9361_2_rx_data[3] ] ;# B9361_2_P0_03_TX1_P
set_property -dict {PACKAGE_PIN J13 IOSTANDARD LVCMOS18} [get_ports ad9361_2_rx_data[4] ] ;# B9361_2_P0_04_TX2_N
set_property -dict {PACKAGE_PIN K13 IOSTANDARD LVCMOS18} [get_ports ad9361_2_rx_data[5] ] ;# B9361_2_P0_05_TX2_P
set_property -dict {PACKAGE_PIN J14 IOSTANDARD LVCMOS18} [get_ports ad9361_2_rx_data[6] ] ;# B9361_2_P0_06_TX3_N
set_property -dict {PACKAGE_PIN K14 IOSTANDARD LVCMOS18} [get_ports ad9361_2_rx_data[7] ] ;# B9361_2_P0_07_TX3_P
set_property -dict {PACKAGE_PIN K15 IOSTANDARD LVCMOS18} [get_ports ad9361_2_rx_data[8] ] ;# B9361_2_P0_08_TX4_N
set_property -dict {PACKAGE_PIN L15 IOSTANDARD LVCMOS18} [get_ports ad9361_2_rx_data[9] ] ;# B9361_2_P0_09_TX4_P
set_property -dict {PACKAGE_PIN K16 IOSTANDARD LVCMOS18} [get_ports ad9361_2_rx_data[10] ] ;# B9361_2_P0_10_TX5_N
set_property -dict {PACKAGE_PIN L16 IOSTANDARD LVCMOS18} [get_ports ad9361_2_rx_data[11] ] ;# B9361_2_P0_11_TX5_P
set_property -dict {PACKAGE_PIN F12 IOSTANDARD LVCMOS18} [get_ports ad9361_2_tx_fb_clk ] ;# B9361_2_FB_CLK
set_property -dict {PACKAGE_PIN D14 IOSTANDARD LVCMOS18} [get_ports ad9361_2_tx_frame ] ;# B9361_2_TX_FRAME
set_property -dict {PACKAGE_PIN E16 IOSTANDARD LVCMOS18} [get_ports ad9361_2_tx_data[0] ] ;# B9361_2_P1_00_RX0_N
set_property -dict {PACKAGE_PIN F15 IOSTANDARD LVCMOS18} [get_ports ad9361_2_tx_data[1] ] ;# B9361_2_P1_01_RX0_P
set_property -dict {PACKAGE_PIN E15 IOSTANDARD LVCMOS18} [get_ports ad9361_2_tx_data[2] ] ;# B9361_2_P1_02_RX1_N
set_property -dict {PACKAGE_PIN E14 IOSTANDARD LVCMOS18} [get_ports ad9361_2_tx_data[3] ] ;# B9361_2_P1_03_RX1_P
set_property -dict {PACKAGE_PIN B12 IOSTANDARD LVCMOS18} [get_ports ad9361_2_tx_data[4] ] ;# B9361_2_P1_04_RX2_N
set_property -dict {PACKAGE_PIN C12 IOSTANDARD LVCMOS18} [get_ports ad9361_2_tx_data[5] ] ;# B9361_2_P1_05_RX2_P
set_property -dict {PACKAGE_PIN A12 IOSTANDARD LVCMOS18} [get_ports ad9361_2_tx_data[6] ] ;# B9361_2_P1_06_RX3_N
set_property -dict {PACKAGE_PIN A11 IOSTANDARD LVCMOS18} [get_ports ad9361_2_tx_data[7] ] ;# B9361_2_P1_07_RX3_P
set_property -dict {PACKAGE_PIN C11 IOSTANDARD LVCMOS18} [get_ports ad9361_2_tx_data[8] ] ;# B9361_2_P1_08_RX4_N
set_property -dict {PACKAGE_PIN D11 IOSTANDARD LVCMOS18} [get_ports ad9361_2_tx_data[9] ] ;# B9361_2_P1_09_RX4_P
set_property -dict {PACKAGE_PIN E11 IOSTANDARD LVCMOS18} [get_ports ad9361_2_tx_data[10] ] ;# B9361_2_P1_10_RX5_N
set_property -dict {PACKAGE_PIN F11 IOSTANDARD LVCMOS18} [get_ports ad9361_2_tx_data[11] ] ;# B9361_2_P1_11_RX5_P
set_property -dict {PACKAGE_PIN C16 IOSTANDARD LVCMOS18} [get_ports ad9361_2_spi_clk ] ;# B9361_2_SPI_CLK
set_property -dict {PACKAGE_PIN D16 IOSTANDARD LVCMOS18} [get_ports ad9361_2_spi_csn ] ;# B9361_2_SPI_ENB
set_property -dict {PACKAGE_PIN C17 IOSTANDARD LVCMOS18} [get_ports ad9361_2_spi_mosi ] ;# B9361_2_SPI_DI
set_property -dict {PACKAGE_PIN F18 IOSTANDARD LVCMOS18} [get_ports ad9361_2_spi_miso ] ;# B9361_2_SPI_DO
set_property -dict {PACKAGE_PIN G18 IOSTANDARD LVCMOS18} [get_ports ad9361_2_reset_b ] ;# B9361_2_RESETB
set_property -dict {PACKAGE_PIN D19 IOSTANDARD LVCMOS18} [get_ports ad9361_2_en_agc ] ;# B9361_2_EN_AGC
set_property -dict {PACKAGE_PIN E19 IOSTANDARD LVCMOS18} [get_ports ad9361_2_enable ] ;# B9361_2_ENABLE
set_property -dict {PACKAGE_PIN G15 IOSTANDARD LVCMOS18} [get_ports ad9361_2_txnrx ] ;# B9361_2_TXNRX
set_property -dict {PACKAGE_PIN C20 IOSTANDARD LVCMOS18} [get_ports ad9361_2_ctrl_in[0] ] ;# B9361_2_CTRL_IN0
set_property -dict {PACKAGE_PIN B17 IOSTANDARD LVCMOS18} [get_ports ad9361_2_ctrl_in[1] ] ;# B9361_2_CTRL_IN1
set_property -dict {PACKAGE_PIN G17 IOSTANDARD LVCMOS18} [get_ports ad9361_2_ctrl_in[2] ] ;# B9361_2_CTRL_IN2
set_property -dict {PACKAGE_PIN F17 IOSTANDARD LVCMOS18} [get_ports ad9361_2_ctrl_in[3] ] ;# B9361_2_CTRL_IN3
set_property -dict {PACKAGE_PIN B20 IOSTANDARD LVCMOS18} [get_ports ad9361_2_ctrl_out[0] ] ;# B9361_2_CTRL_OUT0
set_property -dict {PACKAGE_PIN A20 IOSTANDARD LVCMOS18} [get_ports ad9361_2_ctrl_out[1] ] ;# B9361_2_CTRL_OUT1
set_property -dict {PACKAGE_PIN B18 IOSTANDARD LVCMOS18} [get_ports ad9361_2_ctrl_out[2] ] ;# B9361_2_CTRL_OUT2
set_property -dict {PACKAGE_PIN A17 IOSTANDARD LVCMOS18} [get_ports ad9361_2_ctrl_out[3] ] ;# B9361_2_CTRL_OUT3
set_property -dict {PACKAGE_PIN A16 IOSTANDARD LVCMOS18} [get_ports ad9361_2_ctrl_out[4] ] ;# B9361_2_CTRL_OUT4
set_property -dict {PACKAGE_PIN A18 IOSTANDARD LVCMOS18} [get_ports ad9361_2_ctrl_out[5] ] ;# B9361_2_CTRL_OUT5
set_property -dict {PACKAGE_PIN A21 IOSTANDARD LVCMOS18} [get_ports ad9361_2_ctrl_out[6] ] ;# B9361_2_CTRL_OUT6
set_property -dict {PACKAGE_PIN B22 IOSTANDARD LVCMOS18} [get_ports ad9361_2_ctrl_out[7] ] ;# B9361_2_CTRL_OUT7
# Phased-Array Control
set_property -dict {PACKAGE_PIN T26 IOSTANDARD LVTTL } [get_ports ant_cin ] ;# ANT_CIN0
set_property -dict {PACKAGE_PIN T25 IOSTANDARD LVTTL } [get_ports ant_din0 ] ;# ANT_DIN0
set_property -dict {PACKAGE_PIN U25 IOSTANDARD LVTTL } [get_ports ant_din1 ] ;# ANT_DIN1
set_property -dict {PACKAGE_PIN U27 IOSTANDARD LVTTL } [get_ports ant_cout ] ;# ANT_COUT0
set_property -dict {PACKAGE_PIN U29 IOSTANDARD LVTTL } [get_ports ant_dout0 ] ;# ANT_DOUT0
set_property -dict {PACKAGE_PIN U30 IOSTANDARD LVTTL } [get_ports ant_dout1 ] ;# ANT_DOUT1
set_property -dict {PACKAGE_PIN V26 IOSTANDARD LVTTL } [get_ports ant_tr ] ;# ANT_TR_IN
set_property -dict {PACKAGE_PIN V27 IOSTANDARD LVTTL } [get_ports ant_dary ] ;# ANT_DARY_IN
# RF Synthesizer Control
set_property -dict {PACKAGE_PIN AK29 IOSTANDARD LVTTL } [get_ports rf_standby ] ;# RF_STANDBY
set_property -dict {PACKAGE_PIN AJ28 IOSTANDARD LVTTL } [get_ports rf_sw_pll ] ;# RF_SW_PLL
set_property -dict {PACKAGE_PIN AK30 IOSTANDARD LVTTL } [get_ports rf_t ] ;# RF_T
set_property -dict {PACKAGE_PIN AG29 IOSTANDARD LVTTL } [get_ports rf_r ] ;# RF_R
set_property -dict {PACKAGE_PIN AB25 IOSTANDARD LVTTL } [get_ports rf_sw_bpf ] ;# RF_SW_BPF
set_property -dict {PACKAGE_PIN AE28 IOSTANDARD LVTTL } [get_ports rf_sclk1 ] ;# RF_SCLK1
set_property -dict {PACKAGE_PIN AA26 IOSTANDARD LVTTL } [get_ports rf_sdio1 ] ;# RF_SDIO1
set_property -dict {PACKAGE_PIN AE30 IOSTANDARD LVTTL } [get_ports rf_cs1 ] ;# RF_CS1
set_property -dict {PACKAGE_PIN AH29 IOSTANDARD LVTTL } [get_ports rf_ld1 ] ;# RF_LD1
set_property -dict {PACKAGE_PIN AD28 IOSTANDARD LVTTL } [get_ports rf_sclk2 ] ;# RF_SCLK2
set_property -dict {PACKAGE_PIN AD27 IOSTANDARD LVTTL } [get_ports rf_sdio2 ] ;# RF_SDIO2
set_property -dict {PACKAGE_PIN AB27 IOSTANDARD LVTTL } [get_ports rf_cs2 ] ;# RF_CS2
set_property -dict {PACKAGE_PIN AC27 IOSTANDARD LVTTL } [get_ports rf_ld2 ] ;# RF_LD2
set_property -dict {PACKAGE_PIN AC30 IOSTANDARD LVTTL } [get_ports rf_sclk3 ] ;# RF_SCLK3
set_property -dict {PACKAGE_PIN AE29 IOSTANDARD LVTTL } [get_ports rf_sdio3 ] ;# RF_SDIO3
set_property -dict {PACKAGE_PIN AB28 IOSTANDARD LVTTL } [get_ports rf_cs3 ] ;# RF_CS3
set_property -dict {PACKAGE_PIN AD29 IOSTANDARD LVTTL } [get_ports rf_ld3 ] ;# RF_LD3
set_property -dict {PACKAGE_PIN AB30 IOSTANDARD LVTTL } [get_ports rf_tmgc_16 ] ;# RF_TMGC_16
set_property -dict {PACKAGE_PIN AC29 IOSTANDARD LVTTL } [get_ports rf_tmgc_8 ] ;# RF_TMGC_8
set_property -dict {PACKAGE_PIN AA27 IOSTANDARD LVTTL } [get_ports rf_tmgc_4 ] ;# RF_TMGC_4
set_property -dict {PACKAGE_PIN AB29 IOSTANDARD LVTTL } [get_ports rf_tmgc_2 ] ;# RF_TMGC_2
set_property -dict {PACKAGE_PIN AA30 IOSTANDARD LVTTL } [get_ports rf_tmgc_1 ] ;# RF_TMGC_1
set_property -dict {PACKAGE_PIN AA28 IOSTANDARD LVTTL } [get_ports rf_rmgc_16 ] ;# RF_RMGC_16
set_property -dict {PACKAGE_PIN Y28 IOSTANDARD LVTTL } [get_ports rf_rmgc_8 ] ;# RF_RMGC_8
set_property -dict {PACKAGE_PIN Y29 IOSTANDARD LVTTL } [get_ports rf_rmgc_4 ] ;# RF_RMGC_4
set_property -dict {PACKAGE_PIN Y30 IOSTANDARD LVTTL } [get_ports rf_rmgc_2 ] ;# RF_RMGC_2
set_property -dict {PACKAGE_PIN Y26 IOSTANDARD LVTTL } [get_ports rf_rmgc_1 ] ;# RF_RMGC_1
set_property -dict {PACKAGE_PIN W28 IOSTANDARD LVTTL } [get_ports rf_enable ] ;# RF_ENABLE
set_property -dict {PACKAGE_PIN AA25 IOSTANDARD LVTTL } [get_ports rf_sc ] ;# RF_SC
set_property -dict {PACKAGE_PIN W29 IOSTANDARD LVTTL } [get_ports rf_sd ] ;# RF_SD
set_property -dict {PACKAGE_PIN Y25 IOSTANDARD LVTTL } [get_ports rf_endsyn ] ;# RF_END_SYN
set_property -dict {PACKAGE_PIN W27 IOSTANDARD LVTTL } [get_ports rf_sdout ] ;# RF_SDOUT
set_property -dict {PACKAGE_PIN AF28 IOSTANDARD LVTTL } [get_ports rf_dq_wd ] ;# RF_DQ_WD
set_property -dict {PACKAGE_PIN AF30 IOSTANDARD LVTTL } [get_ports rf_sw_rx ] ;# RF_SW_RX
# LVDS for Time Synchronization
set_property -dict {PACKAGE_PIN J22 IOSTANDARD LVCMOS33} [get_ports lvds_in_1 ] ;# LVDS_IN1
set_property -dict {PACKAGE_PIN L20 IOSTANDARD LVCMOS33} [get_ports lvds_out_1 ] ;# LVDS_OUT1
set_property -dict {PACKAGE_PIN M20 IOSTANDARD LVCMOS33} [get_ports lvds_in_2 ] ;# LVDS_IN2
set_property -dict {PACKAGE_PIN J29 IOSTANDARD LVCMOS33} [get_ports lvds_out_2 ] ;# LVDS_OUT2
# Debug IO
set_property -dict {PACKAGE_PIN U22 IOSTANDARD LVCMOS33} [get_ports uart1_txd ] ;# UART_1_TXD
set_property -dict {PACKAGE_PIN V19 IOSTANDARD LVCMOS33} [get_ports uart1_rxd ] ;# UART_1_RXD
set_property -dict {PACKAGE_PIN U23 IOSTANDARD LVCMOS33} [get_ports uart2_txd ] ;# UART_2_TXD
set_property -dict {PACKAGE_PIN V20 IOSTANDARD LVCMOS33} [get_ports uart2_rxd ] ;# UART_2_RXD
set_property -dict {PACKAGE_PIN U24 IOSTANDARD LVCMOS33} [get_ports uart3_txd ] ;# UART_3_TXD
set_property -dict {PACKAGE_PIN V21 IOSTANDARD LVCMOS33} [get_ports uart3_rxd ] ;# UART_3_RXD
set_property -dict {PACKAGE_PIN V25 IOSTANDARD LVCMOS33} [get_ports debug_io_1 ] ;# DEBUG_IO_1
set_property -dict {PACKAGE_PIN W21 IOSTANDARD LVCMOS33} [get_ports debug_io_2 ] ;# DEBUG_IO_2
set_property -dict {PACKAGE_PIN W26 IOSTANDARD LVCMOS33} [get_ports debug_io_3 ] ;# DEBUG_IO_3
set_property -dict {PACKAGE_PIN V22 IOSTANDARD LVCMOS33} [get_ports debug_io_4 ] ;# DEBUG_IO_4
set_property -dict {PACKAGE_PIN V24 IOSTANDARD LVCMOS33} [get_ports debug_io_5 ] ;# DEBUG_IO_5
set_property -dict {PACKAGE_PIN W22 IOSTANDARD LVCMOS33} [get_ports debug_io_6 ] ;# DEBUG_IO_6
set_property -dict {PACKAGE_PIN W24 IOSTANDARD LVCMOS33} [get_ports debug_io_7 ] ;# DEBUG_IO_7
set_property -dict {PACKAGE_PIN W23 IOSTANDARD LVCMOS33} [get_ports debug_io_8 ] ;# DEBUG_IO_8
set_property -dict {PACKAGE_PIN Y23 IOSTANDARD LVDS_25 } [get_ports debug_io_00_p ] ;# DEBUG_IO_00_P
set_property -dict {PACKAGE_PIN Y21 IOSTANDARD LVDS_25 } [get_ports debug_io_01_p ] ;# DEBUG_IO_01_P
set_property -dict {PACKAGE_PIN AA20 IOSTANDARD LVDS_25 } [get_ports debug_io_02_p ] ;# DEBUG_IO_02_P
set_property -dict {PACKAGE_PIN AA22 IOSTANDARD LVDS_25 } [get_ports debug_io_03_p ] ;# DEBUG_IO_03_P
set_property -dict {PACKAGE_PIN AC20 IOSTANDARD LVDS_25 } [get_ports debug_io_04_p ] ;# DEBUG_IO_04_P
set_property -dict {PACKAGE_PIN AD21 IOSTANDARD LVDS_25 } [get_ports debug_io_05_p ] ;# DEBUG_IO_05_P
set_property -dict {PACKAGE_PIN AC22 IOSTANDARD LVDS_25 } [get_ports debug_io_06_p ] ;# DEBUG_IO_06_P
set_property -dict {PACKAGE_PIN AB22 IOSTANDARD LVDS_25 } [get_ports debug_io_07_p ] ;# DEBUG_IO_07_P
set_property -dict {PACKAGE_PIN AC24 IOSTANDARD LVDS_25 } [get_ports debug_io_08_p ] ;# DEBUG_IO_08_P
# FLASH
set_property BITSTREAM.GENERAL.COMPRESS TRUE [current_design]
set_property BITSTREAM.CONFIG.CONFIGRATE 33 [current_design]
set_property CONFIG_MODE SPIx4 [current_design]
@@ -0,0 +1,4 @@
set_false_path -from [get_pins {u_system_bd_wrapper/system_bd_i/axi_gpio/U0/gpio_core_1/Dual.gpio_Data_Out_reg[9]/C}] -to [get_pins u_rx_pre_process/u_ad9361_phase_cal/ad9361_2_cal_start_d1_reg/D]
set_false_path -from [get_pins {u_system_bd_wrapper/system_bd_i/axi_gpio/U0/gpio_core_1/Dual.gpio_Data_Out_reg[7]/C}] -to [get_pins u_tx_pre_process/ad9361_tx_switch_d1_reg/D]
set_false_path -from [get_pins {u_system_bd_wrapper/system_bd_i/axi_gpio/U0/gpio_core_1/Dual.gpio_Data_Out_reg[10]/C}] -to [get_pins u_rx_pre_process/u_ad9361_phase_cal/ad9361_1_cal_start_d1_reg/D]
set_false_path -from [get_pins {u_system_bd_wrapper/system_bd_i/axi_gpio/U0/gpio_core_1/Dual.gpio_Data_Out_reg[8]/C}] -to [get_pins u_rx_pre_process/u_ad9361_phase_cal/ad9361_recal_d1_reg/D]
Binary file not shown.
1 version https://git-lfs.github.com/spec/v1
2 oid sha256:25df2a6d9d76fd289926d4b605c53758c49060cd31ef920f269b7f6decdb894c
3 size 6659180
Binary file not shown.
1 version https://git-lfs.github.com/spec/v1
2 oid sha256:25df2a6d9d76fd289926d4b605c53758c49060cd31ef920f269b7f6decdb894c
3 size 6659180
Binary file not shown.
1 version https://git-lfs.github.com/spec/v1
2 oid sha256:60f763cafd9d69dfd3fd296ef47828c4f045af85df3e889c0df2923b75e96ed7
3 size 6662572
Binary file not shown.
1 version https://git-lfs.github.com/spec/v1
2 oid sha256:fadbda00e7bcce773889b59619a60354a70ec05c695c01dcd0275ea928a748df
3 size 6660988
Binary file not shown.
1 version https://git-lfs.github.com/spec/v1
2 oid sha256:761758629b0c278d48ca0608e4d662ff2632004f688fb26220b53cf35d40c398
3 size 6690266
Binary file not shown.
1 version https://git-lfs.github.com/spec/v1
2 oid sha256:2528e49340838fbcbe015bf52e86761dc244d9595f1d315bf3e05f69bc36c74e
3 size 6688886
Binary file not shown.
1 version https://git-lfs.github.com/spec/v1
2 oid sha256:77819cad09644e1eed4f08acce9b3e175362569de2d13e3d2932a46b7d349a3f
3 size 6069527
Binary file not shown.
1 version https://git-lfs.github.com/spec/v1
2 oid sha256:2f2b53ea8af1d0e01b0fa7215b482bb3cbdd5843747c8a06c8c2c409db28e809
3 size 6063311
Binary file not shown.
1 version https://git-lfs.github.com/spec/v1
2 oid sha256:cb8be8458e10f9c35e03d108502e5710d626ecaaf7c44040ab3110563b043ec4
3 size 6061888
Binary file not shown.
1 version https://git-lfs.github.com/spec/v1
2 oid sha256:5b046a1653f1540f8ab72723cada6a6d6ca89a69845530f89f24a5975059dc44
3 size 6071406
Binary file not shown.
1 version https://git-lfs.github.com/spec/v1
2 oid sha256:f80162d7eedf5acfe1493c0e774ed6061b7d5a478c42eca9e073e20eb3ff9332
3 size 6048743
Binary file not shown.
1 version https://git-lfs.github.com/spec/v1
2 oid sha256:f80162d7eedf5acfe1493c0e774ed6061b7d5a478c42eca9e073e20eb3ff9332
3 size 6048743
@@ -0,0 +1,109 @@
%% File Header/文件说明
%
% Beamforming with phased array derives signal characteristics from phase
% differences between sensors. Therefore the amplitude-phase consistence is
% vital to phased systems.
%
% The script analyzes the amp-phase relations of ILA captured data, the format
% of which is square-shaped pseudorandorm bit sequence. Each channel is
% processed seperately with different frequency shifts and different optimum
% sampling points. The estimation of amplitude and phase are based on
% acculumated correlation peaks.
%
clc; clear;
%% initial parameters/初始参数
interp = 8; % interpolation factor
channelNum = 4;
dataLen = 131072;
fs = 48e6;
dataFile = "iladata_ant_3-1.csv";
% standard pn sequence
pnSequence = comm.PNSequence('Polynomial','x^7+x^6+1', ...
'InitialConditions',[zeros(1,6),1],'SamplesPerFrame',2^7-1);
PRBS7 = pnSequence();
PRBS7_polar = 1-2*[PRBS7;0];
chipLen = length(PRBS7_polar); % pn chip length
symNum = dataLen/chipLen/interp; % total symbol number
symNumPerAccum = 1; % symbol nbumber of each accumulation
accNum = symNum/symNumPerAccum; % total accumulation numbers, i.e. peak numbers
%% data analysis
% read data, and swap ch1 and ch2, because loop data locate at ch2 and ch4
rxdata = readmatrix(dataFile);
seqRx(:,1) = (rxdata(:, 6) + 1i*rxdata(:, 7)).';
seqRx(:,2) = (rxdata(:, 4) + 1i*rxdata(:, 5)).';
seqRx(:,3) = (rxdata(:, 8) + 1i*rxdata(:, 9)).';
seqRx(:,4) = (rxdata(:,10) + 1i*rxdata(:,11)).';
% compensate frequecny deviation and downsample at optimum sample position based
% on the varience of constellation
if dataFile.contains("loop")
[seqRxDown,fd,samplePos] = suqareShapeFreqEst(seqRx,interp,fs,-50,50,5);
else
[seqRxDown,fd,samplePos] = suqareShapeFreqEst(seqRx,interp,fs,24900,25100,1);
end
% split [seqRxDown] into multiple groups, each group contains several symbols to
% be correlated with PRBS7 and accumulated
seqRxDownSplit = reshape(seqRxDown(1:dataLen/interp,:),chipLen*symNumPerAccum, ...
accNum,channelNum);
seqRxAcc = zeros(chipLen,accNum,channelNum);
desiredPnt = zeros(accNum,channelNum);
ampEstSym = zeros(accNum,channelNum);
angleEstSym = zeros(accNum,channelNum);
for i = 1:accNum
for j = 1:channelNum
% correlation & multi-symbol accumulation
groupCorrAcc = sum(reshape(conv(flip(seqRxDownSplit(:,i,j)), ...
PRBS7_polar,'same'),chipLen,symNumPerAccum),2)';
seqRxAcc(:,i,j) = groupCorrAcc;
% peak position
desiredPnt(i,j) = groupCorrAcc(abs(groupCorrAcc)==max(abs(groupCorrAcc)));
end
end
for i = 1:channelNum
ampEstSym(:,i) = abs(desiredPnt(:,i))./abs(desiredPnt(:,1));
angleEstSym(:,i) = mod((angle(desiredPnt(:,i))-angle(desiredPnt(:,1)))/pi*180,360);
end
%% figures
figure(1);
if dataFile.contains("loop")
subplot(121);
plot(ampEstSym(:,[1,4]));
legend({"ch1","ch4"});
title("Amplitude Estimation");
ylim([min(ampEstSym(:,[1,4]),[],'all')-0.1,max(ampEstSym(:,[1,4]),[],'all')+0.1]);
grid on; grid minor;
subplot(122);
plot(angleEstSym(:,[1,4]));
legend({"ch1","ch4"});
title("Angle Estimation");
ylim([min(angleEstSym(:,[1,4]),[],'all')-1,max(angleEstSym(:,[1,4]),[],'all')+1]);
grid on; grid minor;
else
subplot(121);
plot(ampEstSym);
legend({"ch1","ch2","ch3","ch4"});
title("Amplitude Estimation");
ylim([min(ampEstSym,[],'all')-0.2,max(ampEstSym,[],'all')+0.2]);
grid on; grid minor;
subplot(122);
plot(angleEstSym);
legend({"ch1","ch2","ch3","ch4"});
title("Angle Estimation");
ylim([min(angleEstSym,[],'all')-10,max(angleEstSym,[],'all')+10]);
grid on; grid minor;
end
@@ -0,0 +1,50 @@
function [dataOut, fdTarget, samplePosTarget] = suqareShapeFreqEst(dataIn, interp, fs, fmin, fmax, fd)
%suqareShapeFreqEst - 利用星座图的集中程度在一定频率范围内使用频率步进估计方波成形信号的频偏
%
% data - input complex data, row vector
% dataLen - data length
% interp - interpolation rate
% fs - sampling rate, in Herts
% fmin - minimum estimation frequency, in Herts
% fmax - maximum estimation frequency, in Herts
% fd - estimation frequency step, in Herts
% dimension
[dataLen,channelNum] = size(dataIn);
freqList = fmin:fd:fmax;
freqNum = length(freqList);
varRecord = zeros(freqNum,interp);
dataOut = zeros(dataLen/interp,channelNum);
fdTarget = zeros(channelNum,1);
samplePosTarget = zeros(channelNum,1);
for channel = 1:channelNum
for freq = 1:freqNum
% carrier
cxr = exp(-1i*2*pi*freqList(freq)/fs*(0:dataLen-1)');
% apply frequency shift onto input data
seqRx = dataIn(:,channel).*cxr;
for samplePos = 0:interp-1
seqRxDown = downsample(seqRx,interp,samplePos); % 下采样
seqRxDownQuaterOne = abs(real(seqRxDown)) + 1i*abs(imag(seqRxDown)); % 集中到第一象限
varRecord(freq,samplePos+1) = var(seqRxDownQuaterOne);
end
end
[fdIndex, samplePosIndex] = find(varRecord==min(min(varRecord)));
fdTarget(channel) = freqList(fdIndex);
samplePosTarget(channel) = samplePosIndex-1;
cxrTarget = exp(-1i*2*pi*fdTarget(channel)/fs*(0:dataLen-1)');
seqRxTarget = dataIn(:,channel).*cxrTarget;
dataOut(:,channel) = downsample(seqRxTarget,interp,samplePosTarget(channel));
end
end
Binary file not shown.
1 version https://git-lfs.github.com/spec/v1
2 oid sha256:790f5cf5b157d70919303a4e935b556de371acee9dfb33269c01645e985699e3
3 size 3482472
Binary file not shown.
1 version https://git-lfs.github.com/spec/v1
2 oid sha256:f766bcf25cafe22ffdb8ee0f8fa08fb9fa02667db2d4a0a43f8cab5dd08c8f30
3 size 3486267
Binary file not shown.
1 version https://git-lfs.github.com/spec/v1
2 oid sha256:927f56c25eecf5d01e1c4cd836132a1fb37ccb7c9ed59555b800e95cd74a8be1
3 size 3475654
Binary file not shown.
1 version https://git-lfs.github.com/spec/v1
2 oid sha256:51cf16b7d78821e5d2ce9820664e5b6304289cc67189d497c3b3307bea24af9b
3 size 3477899
Binary file not shown.
1 version https://git-lfs.github.com/spec/v1
2 oid sha256:1f298bad3f2b0fcfb4ade13154e554398328fe6bfc1bf438fb4d7e3e6142cefa
3 size 3474457
Binary file not shown.
1 version https://git-lfs.github.com/spec/v1
2 oid sha256:e4c335f781215b3a5c56c9e5750bcc33b24a219cdc0f94299ef91f52e3e741ac
3 size 3476800
Binary file not shown.
1 version https://git-lfs.github.com/spec/v1
2 oid sha256:eaa8c087ae2646e12880c9f00c559c71a68fddf82ac1516fc8b83b44ae276e1f
3 size 3468319
Binary file not shown.
1 version https://git-lfs.github.com/spec/v1
2 oid sha256:ab963c00089684ac6209f5b3d7257d2f972c2c5a5621d3253a25b13e268c5edf
3 size 3474799
Binary file not shown.
1 version https://git-lfs.github.com/spec/v1
2 oid sha256:23b20c1c51059a4c2597a1a6fab8a87d6154a7fca3be0271debecfbb14f547f4
3 size 3476026
Binary file not shown.
1 version https://git-lfs.github.com/spec/v1
2 oid sha256:286410285675a6ac02e45d0f9b109f3a660b40a4eea12956d905ab706094e8b9
3 size 3486066
Binary file not shown.
1 version https://git-lfs.github.com/spec/v1
2 oid sha256:d916c65eb133a94f45ca0740f776f62ebab205bf782c6ac5c06911fe005098d2
3 size 3477343
Binary file not shown.
1 version https://git-lfs.github.com/spec/v1
2 oid sha256:53c4e244f90b31ad77f1282731830725ac47692adeec33ac36783cf02863d83f
3 size 3476390
Binary file not shown.
1 version https://git-lfs.github.com/spec/v1
2 oid sha256:9a6024f1d8054f42ff1c69fb7de3ca6b754df2236230992b5252d7963e0f8e0b
3 size 3472944
Binary file not shown.
1 version https://git-lfs.github.com/spec/v1
2 oid sha256:758e4d65581918f39c0261674ce459b8f40c33fa7a1f4e0969e15868a1a50cdd
3 size 3480993
Binary file not shown.
1 version https://git-lfs.github.com/spec/v1
2 oid sha256:74b7584c9fb282629f2140a51b81e27077ae2b7065142fc9b34b7d518a94e815
3 size 3479496
Binary file not shown.
1 version https://git-lfs.github.com/spec/v1
2 oid sha256:b17a0ec250938a59121a38d3ffd924c3f963ccc4a3741ec981c457027da09f69
3 size 3479587
Binary file not shown.
1 version https://git-lfs.github.com/spec/v1
2 oid sha256:b22458456bcc01358145fc24e025f2ea329badb896fcfe6d0c30c9d333ef1992
3 size 3482568
Binary file not shown.
1 version https://git-lfs.github.com/spec/v1
2 oid sha256:126a2830e5ccd8211ee37ccc11d2e16df721c0731678738f45f5766930e1605d
3 size 3484480
Binary file not shown.
1 version https://git-lfs.github.com/spec/v1
2 oid sha256:8bea19723b482bf9cec3a3da67f7d8def374eec24e016e9e08cea496f1a66559
3 size 4929186
Binary file not shown.
1 version https://git-lfs.github.com/spec/v1
2 oid sha256:cdf5b93215d5e7908c36656949a265523321ba6b1c65fc90614609cf6a76b8d5
3 size 4930485
Binary file not shown.
1 version https://git-lfs.github.com/spec/v1
2 oid sha256:9852d001375c99ffa7ed590311d0f17ba682c355a4b42cc4698c84a44f5183a8
3 size 4940823
Binary file not shown.
1 version https://git-lfs.github.com/spec/v1
2 oid sha256:21f77064e1e283db70319d21ea05fa587fac96c36bc36fbff7fb287c8b85c213
3 size 4921076
Binary file not shown.
1 version https://git-lfs.github.com/spec/v1
2 oid sha256:6857bec4ce503e0f93cdb9e3840dc4ed54e9c93283c0dd2edec6991c0388486b
3 size 4934355
Binary file not shown.
1 version https://git-lfs.github.com/spec/v1
2 oid sha256:a4771c547a65aa3eab0354c2c540e9718ba92bdcda2c924de23eea67a795f0ab
3 size 4920266
Binary file not shown.
1 version https://git-lfs.github.com/spec/v1
2 oid sha256:975c5b1fb434775a90e0dcaf36f037f2bc48c78e93eb4f87f79c074a49f93881
3 size 4936405
Binary file not shown.
1 version https://git-lfs.github.com/spec/v1
2 oid sha256:124e7ab5ac5ead53ce5a957ab7d05fc5a612afed586167a0246af72806b4754f
3 size 4928907
Binary file not shown.
1 version https://git-lfs.github.com/spec/v1
2 oid sha256:3ebdb353af1eab5b19ac8636118038c63077d5476f94d7a62584ffaafd619206
3 size 4940500
Binary file not shown.
1 version https://git-lfs.github.com/spec/v1
2 oid sha256:40c6c5b6cf555cb48a08d02e81fedd17878ad8146612c87c583fdc2a5cd0e048
3 size 5303446
Binary file not shown.
1 version https://git-lfs.github.com/spec/v1
2 oid sha256:571ccd76cd8090bf4a79a58e979304a7d24a88c62b11d3f0ea22e02a07056c34
3 size 5315422
Binary file not shown.
1 version https://git-lfs.github.com/spec/v1
2 oid sha256:48dcf83163b435d56687742cfa62d5920f256c28ad730ab88c0ee22e46c36f42
3 size 5299010
Binary file not shown.
1 version https://git-lfs.github.com/spec/v1
2 oid sha256:f6ecb8b545cb849c63f89ebb2bdee12a24aa7c515d1c54eb8dfc3892c11f43bb
3 size 5297553
Binary file not shown.
1 version https://git-lfs.github.com/spec/v1
2 oid sha256:1c420d92903234bdf84723dbeab5df724a49ecb0279129a57689170a913d1a33
3 size 5295567
Binary file not shown.
1 version https://git-lfs.github.com/spec/v1
2 oid sha256:0c11b2e71e265040e3f0ce2dd1936fcf314b3e05fdb4214e616c341760a1aa17
3 size 5296901
Binary file not shown.
1 version https://git-lfs.github.com/spec/v1
2 oid sha256:b0e9bb5f27d3e95b616b2de511447806638d3277a6c2bfe415e928f59d1dbf8b
3 size 5309635
Binary file not shown.
1 version https://git-lfs.github.com/spec/v1
2 oid sha256:238c4f2073c6139b3df795a272cd0739d315209a6710e6ba64db40d411d62b49
3 size 5327271
Binary file not shown.
1 version https://git-lfs.github.com/spec/v1
2 oid sha256:26e70e159bbbe831fe6955503856a366da5265c5422a27fa4f1000fe685e6050
3 size 5301573
Binary file not shown.
1 version https://git-lfs.github.com/spec/v1
2 oid sha256:5584b35f43b014f28a35184ba44cf6557ce490879d1dbc3fd60da388a9972366
3 size 5370315
Binary file not shown.
1 version https://git-lfs.github.com/spec/v1
2 oid sha256:ba3eb269c7ba5cb7f644fab740bf015306dcbf4efbfa54bdacd678fd4532c3d6
3 size 5333917
Binary file not shown.
1 version https://git-lfs.github.com/spec/v1
2 oid sha256:6b513f51ca96b0a1a79859e02459a062b1ed32c7714c26861e7fe5cd8a98dcd0
3 size 5320463
Binary file not shown.
1 version https://git-lfs.github.com/spec/v1
2 oid sha256:a71e62982070863bb838345d4779e9904c8912d3ab828ffa5b6fbd0a24f330ef
3 size 5314074
Binary file not shown.
1 version https://git-lfs.github.com/spec/v1
2 oid sha256:a289f2dfb6801cdafb906bde9652aaab17a4e92f9a423360d6ae0a6b83730439
3 size 5322122
Binary file not shown.
1 version https://git-lfs.github.com/spec/v1
2 oid sha256:286bad4aa5aac0b8a42b341b83cdadea1d3fa128e1d8ccc814e5b1f3b6f141ea
3 size 5322773
Binary file not shown.
1 version https://git-lfs.github.com/spec/v1
2 oid sha256:658b5f0ea85a08fb40ac6ac900296e51d439e27bdcc3c4b5a5ff3b9da90c61b5
3 size 5321425
Binary file not shown.
1 version https://git-lfs.github.com/spec/v1
2 oid sha256:7df519cd3e311b75df7c22c019022ae1411c86cf9572a427df181ab804cfa2de
3 size 5321573
Binary file not shown.
1 version https://git-lfs.github.com/spec/v1
2 oid sha256:c803893756bb68dfbd399819f3615db369c311d6105e97d4827abaa727b4dec6
3 size 5315360
Binary file not shown.
1 version https://git-lfs.github.com/spec/v1
2 oid sha256:601745f9a0ea47901d1569ad81e8c1c0fec85b9fe8079c0fcceaa70b964a2f35
3 size 5323219
Binary file not shown.
1 version https://git-lfs.github.com/spec/v1
2 oid sha256:8e2604100be7b603fec704db96e776aff6207d03ae9ffbad1f866e30a1c48757
3 size 5312738
Binary file not shown.
1 version https://git-lfs.github.com/spec/v1
2 oid sha256:7c42dbec5084524ac0a8eb00dbba0c5c20c49712fbf1a0912a6920420edc917d
3 size 5321634
Binary file not shown.
1 version https://git-lfs.github.com/spec/v1
2 oid sha256:90b925608eb1c34f126baaea8fd590ccfec8682195e8d0f7259d25ebd1b9b6de
3 size 5308692
Binary file not shown.
1 version https://git-lfs.github.com/spec/v1
2 oid sha256:5ae86587bbdc8fe852ce4c1b04c3b0f4f49af0570eb90733718674ece2c76707
3 size 5319336
Binary file not shown.
1 version https://git-lfs.github.com/spec/v1
2 oid sha256:670e3c157f1ca2708086ecf10de5e0e8f9eb51860a7bf8707ae4f63fd9403e80
3 size 5324940
Binary file not shown.
1 version https://git-lfs.github.com/spec/v1
2 oid sha256:749957f3533502d7d44fa1d22062e9ed95ff4367591efee814a787e60ca3cc59
3 size 5320653
Binary file not shown.
1 version https://git-lfs.github.com/spec/v1
2 oid sha256:4d089544790c762e73f954237caca6896b8f2c076bc9550853debb19da3f84ec
3 size 5313395
Binary file not shown.
1 version https://git-lfs.github.com/spec/v1
2 oid sha256:3c2f4f13fa8508cccc035291db137f357ae9d565ac9df4f361b45bd1c9ad3312
3 size 3297813
Binary file not shown.
1 version https://git-lfs.github.com/spec/v1
2 oid sha256:e586218ac85197328d8b58e857203fdfbef4e4df80dfb312fcd60c67dd956edd
3 size 3453762
Binary file not shown.
1 version https://git-lfs.github.com/spec/v1
2 oid sha256:3aa31f938be1237967a85dc673e3a42c015e445dff9903f4cb345e5165f1633c
3 size 3585983
Binary file not shown.
1 version https://git-lfs.github.com/spec/v1
2 oid sha256:3c383f26864f8af0d48fe52bcc7df8b9d6358109635feb5953df10b0f90fdd86
3 size 4957784
Binary file not shown.
1 version https://git-lfs.github.com/spec/v1
2 oid sha256:9da67f50fd03ae06f7f171308bd02c8ce815b3406ba5a880fcdff267994d3394
3 size 5240612
@@ -0,0 +1,71 @@
close all;
% 4 ch
fileNameList = [...
"iladata_814_1t1r_48msps_bw15m_ext_lo_1-1.csv",...
"iladata_814_1t1r_48msps_bw15m_ext_lo_1-2.csv",...
"iladata_814_1t1r_48msps_bw15m_ext_lo_1-3.csv",...
"iladata_814_1t1r_48msps_bw15m_ext_lo_2-1.csv",...
"iladata_814_1t1r_48msps_bw15m_ext_lo_2-2.csv",...
"iladata_814_1t1r_48msps_bw15m_ext_lo_2-3.csv",...
"iladata_814_1t1r_48msps_bw15m_ext_lo_3-1.csv",...
"iladata_814_1t1r_48msps_bw15m_ext_lo_3-2.csv",...
"iladata_814_1t1r_48msps_bw15m_ext_lo_3-3.csv",...
"iladata_814_1t1r_48msps_bw15m_int_lo_1-1.csv",...
"iladata_814_1t1r_48msps_bw15m_int_lo_1-2.csv",...
"iladata_814_1t1r_48msps_bw15m_int_lo_1-3.csv",...
"iladata_814_1t1r_48msps_bw15m_int_lo_2-1.csv",...
"iladata_814_1t1r_48msps_bw15m_int_lo_2-2.csv",...
"iladata_814_1t1r_48msps_bw15m_int_lo_2-3.csv",...
"iladata_814_1t1r_48msps_bw15m_int_lo_3-1.csv",...
"iladata_814_1t1r_48msps_bw15m_int_lo_3-2.csv",...
"iladata_814_1t1r_48msps_bw15m_int_lo_3-3.csv",...
"iladata_814_1t2r_48msps_bw15m_ext_lo_1-1.csv",...
"iladata_814_1t2r_48msps_bw15m_ext_lo_1-2.csv",...
"iladata_814_1t2r_48msps_bw15m_ext_lo_1-3.csv",...
"iladata_814_1t2r_48msps_bw15m_ext_lo_2-1.csv",...
"iladata_814_1t2r_48msps_bw15m_ext_lo_2-2.csv",...
"iladata_814_1t2r_48msps_bw15m_ext_lo_2-3.csv",...
"iladata_814_1t2r_48msps_bw15m_ext_lo_3-1.csv",...
"iladata_814_1t2r_48msps_bw15m_ext_lo_3-2.csv",...
"iladata_814_1t2r_48msps_bw15m_ext_lo_3-3.csv",...
"iladata_814_1t2r_48msps_bw40m_ext_lo_1-1.csv",...
"iladata_814_1t2r_48msps_bw40m_ext_lo_1-2.csv",...
"iladata_814_1t2r_48msps_bw40m_ext_lo_1-3.csv",...
"iladata_814_1t2r_48msps_bw40m_ext_lo_2-1.csv",...
"iladata_814_1t2r_48msps_bw40m_ext_lo_2-2.csv",...
"iladata_814_1t2r_48msps_bw40m_ext_lo_2-3.csv",...
"iladata_814_1t2r_48msps_bw40m_ext_lo_3-1.csv",...
"iladata_814_1t2r_48msps_bw40m_ext_lo_3-2.csv",...
"iladata_814_1t2r_48msps_bw40m_ext_lo_3-3.csv"
];
[~,fileNum] = size(fileNameList);
maxList = strings(fileNum+1,5);
stdList = strings(fileNum+1,5);
maxList(1,:) = ["Max Value", "ch1", "ch2", "ch3", "ch4"];
maxList(2:end,1) = fileNameList;
stdList(1,:) = ["Std Value", "ch1", "ch2", "ch3", "ch4"];
stdList(2:end,1) = fileNameList;
for i = 1:fileNum
rxRaw = readmatrix(fileNameList(:,i));
[rowNum,colNum] = size(rxRaw);
if (colNum == 11)
rx = [rxRaw(:, 4)+1i*rxRaw(:, 5),rxRaw(:, 6)+1i*rxRaw(:, 7),...
rxRaw(:, 8)+1i*rxRaw(:, 9),rxRaw(:,10)+1i*rxRaw(:,11)];
elseif (colNum == 7)
rx = [rxRaw(:, 4)+1i*rxRaw(:, 5),rxRaw(:, 6)+1i*rxRaw(:, 7),...
zeros(rowNum,1),zeros(rowNum,1)];
else
disp('Invalid Data Format.')
return
end
maxList(i+1,2:end) = string(max(rx));
stdList(i+1,2:end) = string(std(rx));
end
@@ -0,0 +1,11 @@
# 数据说明
1. iladata_ad9361_pure_noise.csv: 调零板 AD9361 单板噪声。
2. iladata_ad9361_ant_noise.csv: 调零板射频接收噪声。
3. iladata_ad9361_pure_noise_A-B.csv: 调零板 AD9361 单板噪声,第 A 次上电过程中第 B 次采集结果。
> 1~3 AD9361 配置均为 48Msps,BW 40MHz,外部本振,使用 AD9516-3 的 VCO 分频时钟。
4. iladata_814_1t2r_48msps_bwxxm_xxx_lo_A-B.csv:调零板 AD9361 单板噪声,48Msps,BW xxMHz,ext_lo 表示外部本振,int_lo 表示内部本振,第 A 次上电过程中第 B 次采集结果。
Binary file not shown.
1 version https://git-lfs.github.com/spec/v1
2 oid sha256:9481a51f9d7848e96a32ae7d9964de5f0b41ddcc442a375871ef11a63855a670
3 size 4975610
Binary file not shown.
1 version https://git-lfs.github.com/spec/v1
2 oid sha256:b42809aa978a924550b4f32e16867c98bdfde406dc7b93cbe4ec237a019b5a85
3 size 4973613
Binary file not shown.
1 version https://git-lfs.github.com/spec/v1
2 oid sha256:0bef9b4df8a796c56c1010ef7dda7da6c6308cf3d44248b9136981385fa1e487
3 size 4987695
Binary file not shown.
1 version https://git-lfs.github.com/spec/v1
2 oid sha256:b274afd8e83b4cc56e30f1471d3271343d9a254a3ad558bf80bb233570f30489
3 size 4987720
Binary file not shown.
1 version https://git-lfs.github.com/spec/v1
2 oid sha256:11ed5b51c3d959fff54efadfe095d290f4b9c28fc0e53292018f6db6244a9868
3 size 4986006
Binary file not shown.
1 version https://git-lfs.github.com/spec/v1
2 oid sha256:e865bc0a1e86023e1c260d3dfa749426f33ca87ed99a07b717a2bc04b7bfb245
3 size 4972988
Binary file not shown.
1 version https://git-lfs.github.com/spec/v1
2 oid sha256:022455671b948b67d5bb6e1b4c550bfd3a66c56d9cdc8843384ea8ecdc31b06f
3 size 4995284
Binary file not shown.
1 version https://git-lfs.github.com/spec/v1
2 oid sha256:9ddbc3affb1d95b1d523796a9492ba096a8dc3be95c27710a68622d35eca3383
3 size 4977121
Binary file not shown.
1 version https://git-lfs.github.com/spec/v1
2 oid sha256:167aae75e38c08a1cbb1dc177a6ed6827ab1c1226af2a6ad602c44cbf8f4242e
3 size 4988918
@@ -0,0 +1,44 @@
clear; close all;
% 4 ch
fileNameList = [...
"iladata_814_1t2r_48msps_bw15m_buff_clk_noise_1-1.csv",...
"iladata_814_1t2r_48msps_bw15m_buff_clk_noise_1-2.csv",...
"iladata_814_1t2r_48msps_bw15m_buff_clk_noise_1-3.csv",...
"iladata_814_1t2r_48msps_bw15m_buff_clk_noise_2-1.csv",...
"iladata_814_1t2r_48msps_bw15m_buff_clk_noise_2-2.csv",...
"iladata_814_1t2r_48msps_bw15m_buff_clk_noise_2-3.csv",...
"iladata_814_1t2r_48msps_bw15m_buff_clk_noise_3-1.csv",...
"iladata_814_1t2r_48msps_bw15m_buff_clk_noise_3-2.csv",...
"iladata_814_1t2r_48msps_bw15m_buff_clk_noise_3-3.csv",...
];
[~,fileNum] = size(fileNameList);
maxList = strings(fileNum+1,5);
stdList = strings(fileNum+1,5);
maxList(1,:) = ["Max Value", "ch1", "ch2", "ch3", "ch4"];
maxList(2:end,1) = fileNameList;
stdList(1,:) = ["Std Value", "ch1", "ch2", "ch3", "ch4"];
stdList(2:end,1) = fileNameList;
for i = 1:fileNum
rxRaw = readmatrix(fileNameList(:,i));
[rowNum,colNum] = size(rxRaw);
if (colNum == 11)
rx = [rxRaw(:, 4)+1i*rxRaw(:, 5),rxRaw(:, 6)+1i*rxRaw(:, 7),...
rxRaw(:, 8)+1i*rxRaw(:, 9),rxRaw(:,10)+1i*rxRaw(:,11)];
elseif (colNum == 7)
rx = [rxRaw(:, 4)+1i*rxRaw(:, 5),rxRaw(:, 6)+1i*rxRaw(:, 7),...
zeros(rowNum,1),zeros(rowNum,1)];
else
disp('Invalid Data Format.')
return
end
maxList(i+1,2:end) = string(max(rx));
stdList(i+1,2:end) = string(std(rx));
end
Binary file not shown.
1 version https://git-lfs.github.com/spec/v1
2 oid sha256:af92871a9e2e99ecde034f758916e4c89a02bf11b52ceb41206caec9a415a2f9
3 size 5599871
Binary file not shown.
1 version https://git-lfs.github.com/spec/v1
2 oid sha256:d3e25320bf75b7827bb8164cbda86cdb62623e37c2933f40740477bab18351ac
3 size 5590817
Binary file not shown.
1 version https://git-lfs.github.com/spec/v1
2 oid sha256:9e563df31c9cfe0597bb3ecb8f37e1fb1e9d7dd4fad0ccb3a07b399369c0f80a
3 size 5598411
Binary file not shown.
1 version https://git-lfs.github.com/spec/v1
2 oid sha256:55ae4408ea9c0138b4b4dcf181aa3a2da6742e3a53df0374f69b2e54a0d9f7b1
3 size 5449788
Binary file not shown.
1 version https://git-lfs.github.com/spec/v1
2 oid sha256:d42664578c25f2532c9f75b413be7cfc49e56fcc721b2ce2685df6f71014bace
3 size 5456188
Binary file not shown.
1 version https://git-lfs.github.com/spec/v1
2 oid sha256:3d7c39792950a6e61ddd63395aeadc6be8c29e05c7d462defd60168a9d7ec98a
3 size 5459474
Binary file not shown.
1 version https://git-lfs.github.com/spec/v1
2 oid sha256:3788c210d82b3cb872b99f9cb6edc329072bb48a601d42d133d7402bc2930563
3 size 5565319
Binary file not shown.
1 version https://git-lfs.github.com/spec/v1
2 oid sha256:56c4351c127ed2f0cab5bbd93ce59affa0d9c54aa240f02b83a5910009b24102
3 size 5567941
Binary file not shown.
1 version https://git-lfs.github.com/spec/v1
2 oid sha256:4a9cb4c19cc2bcb31640f94997fcf4ad515d14f5706bbb6ba862fe625e7a73e0
3 size 5564539
@@ -0,0 +1,86 @@
%% File Header/文件说明
%
% Beamforming with phased array derives signal characteristics from phase
% differences between sensors. Therefore the amplitude-phase consistence is
% vital to phased systems.
%
% The script analyzes the amp-phase relations of ILA captured data, the format
% of which is square-shaped pseudorandorm bit sequence. Each channel is
% processed seperately with different frequency shifts and different optimum
% sampling points. The estimation of amplitude and phase are based on
% acculumated correlation peaks.
%
clc; clear;
%% initial parameters/初始参数
interp = 8; % interpolation factor
channelNum = 4;
dataLen = 131072;
fs = 48e6;
dataFile = "iladata_814_1t2r_48msps_bw15m_ext_lo_rxfir_bpsk_1-1.csv";
% standard pn sequence
pnSequence = comm.PNSequence('Polynomial','x^7+x^6+1', ...
'InitialConditions',[zeros(1,6),1],'SamplesPerFrame',2^7-1);
PRBS7 = pnSequence();
PRBS7_polar = 1-2*[PRBS7;0];
chipLen = length(PRBS7_polar); % pn chip length
symNum = dataLen/chipLen/interp; % total symbol number
symNumPerAccum = 1; % symbol nbumber of each accumulation
accNum = symNum/symNumPerAccum; % total accumulation numbers, i.e. peak numbers
%% data analysis
% read data, and swap ch1 and ch2, because loop data locate at ch2 and ch4
rxdata = readmatrix(dataFile);
seqRx(:,1) = (rxdata(:, 6) + 1i*rxdata(:, 7)).';
seqRx(:,2) = (rxdata(:, 4) + 1i*rxdata(:, 5)).';
seqRx(:,3) = (rxdata(:, 8) + 1i*rxdata(:, 9)).';
seqRx(:,4) = (rxdata(:,10) + 1i*rxdata(:,11)).';
% compensate frequecny deviation and downsample at optimum sample position based
% on the varience of constellation
[seqRxDown,fd,samplePos] = suqareShapeFreqEst(seqRx,interp,fs,-50,50,5);
% split [seqRxDown] into multiple groups, each group contains several symbols to
% be correlated with PRBS7 and accumulated
seqRxDownSplit = reshape(seqRxDown(1:dataLen/interp,:),chipLen*symNumPerAccum, ...
accNum,channelNum);
seqRxAcc = zeros(chipLen,accNum,channelNum);
desiredPnt = zeros(accNum,channelNum);
ampEstSym = zeros(accNum,channelNum);
angleEstSym = zeros(accNum,channelNum);
for i = 1:accNum
for j = 1:channelNum
% correlation & multi-symbol accumulation
groupCorrAcc = sum(reshape(conv(flip(seqRxDownSplit(:,i,j)), ...
PRBS7_polar,'same'),chipLen,symNumPerAccum),2)';
seqRxAcc(:,i,j) = groupCorrAcc;
% peak position
desiredPnt(i,j) = groupCorrAcc(abs(groupCorrAcc)==max(abs(groupCorrAcc)));
end
end
for i = 1:channelNum
ampEstSym(:,i) = abs(desiredPnt(:,i))./abs(desiredPnt(:,1));
angleEstSym(:,i) = mod((angle(desiredPnt(:,i))-angle(desiredPnt(:,1)))/pi*180,360);
end
%% figures
figure(1);
subplot(121);
plot(ampEstSym(:,[1,4]));
legend({"ch1","ch4"});
title("Amplitude Estimation");
ylim([min(ampEstSym(:,[1,4]),[],'all')-0.1,max(ampEstSym(:,[1,4]),[],'all')+0.1]);
grid on; grid minor;
subplot(122);
plot(angleEstSym(:,[1,4]));
legend({"ch1","ch4"});
title("Angle Estimation");
ylim([min(angleEstSym(:,[1,4]),[],'all')-1,max(angleEstSym(:,[1,4]),[],'all')+1]);
grid on; grid minor;
@@ -0,0 +1,50 @@
function [dataOut, fdTarget, samplePosTarget] = suqareShapeFreqEst(dataIn, interp, fs, fmin, fmax, fd)
%suqareShapeFreqEst - 利用星座图的集中程度在一定频率范围内使用频率步进估计方波成形信号的频偏
%
% data - input complex data, row vector
% dataLen - data length
% interp - interpolation rate
% fs - sampling rate, in Herts
% fmin - minimum estimation frequency, in Herts
% fmax - maximum estimation frequency, in Herts
% fd - estimation frequency step, in Herts
% dimension
[dataLen,channelNum] = size(dataIn);
freqList = fmin:fd:fmax;
freqNum = length(freqList);
varRecord = zeros(freqNum,interp);
dataOut = zeros(dataLen/interp,channelNum);
fdTarget = zeros(channelNum,1);
samplePosTarget = zeros(channelNum,1);
for channel = 1:channelNum
for freq = 1:freqNum
% carrier
cxr = exp(-1i*2*pi*freqList(freq)/fs*(0:dataLen-1)');
% apply frequency shift onto input data
seqRx = dataIn(:,channel).*cxr;
for samplePos = 0:interp-1
seqRxDown = downsample(seqRx,interp,samplePos); % 下采样
seqRxDownQuaterOne = abs(real(seqRxDown)) + 1i*abs(imag(seqRxDown)); % 集中到第一象限
varRecord(freq,samplePos+1) = var(seqRxDownQuaterOne);
end
end
[fdIndex, samplePosIndex] = find(varRecord==min(min(varRecord)));
fdTarget(channel) = freqList(fdIndex);
samplePosTarget(channel) = samplePosIndex-1;
cxrTarget = exp(-1i*2*pi*fdTarget(channel)/fs*(0:dataLen-1)');
seqRxTarget = dataIn(:,channel).*cxrTarget;
dataOut(:,channel) = downsample(seqRxTarget,interp,samplePosTarget(channel));
end
end
Binary file not shown.
1 version https://git-lfs.github.com/spec/v1
2 oid sha256:279f0e70f161b24b43020d900a5654663fae389850ddc2a4656af833af613bbf
3 size 4429049
Binary file not shown.
1 version https://git-lfs.github.com/spec/v1
2 oid sha256:0b19a75bcc24e2c7338ae70699c5788cf57a4580ca46e413f075643751eae581
3 size 4423775

Some files were not shown because too many files have changed in this diff Show More