中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當前位置: 首頁 > news >正文

國外做建材的網(wǎng)站有哪些手機端競價惡意點擊能防止嗎

國外做建材的網(wǎng)站有哪些,手機端競價惡意點擊能防止嗎,深圳的招聘網(wǎng)站哪家靠譜,WordPress文章總數(shù)工具:vivado2018.3,modelsim10.6d 場景:在進行數(shù)據(jù)進行頻譜分析的時候,使用FPGA來完成FFT的計算可以加快數(shù)據(jù)的計算速度。 下面使用仿真完成DDS產(chǎn)生的數(shù)據(jù)的FFT以及IFFT。原始數(shù)據(jù)使用DDSIP產(chǎn)生,通過IP產(chǎn)生的波形數(shù)據(jù)…

工具:vivado2018.3,modelsim10.6d

場景:在進行數(shù)據(jù)進行頻譜分析的時候,使用FPGA來完成FFT的計算可以加快數(shù)據(jù)的計算速度。

下面使用仿真完成DDS產(chǎn)生的數(shù)據(jù)的FFT以及IFFT。原始數(shù)據(jù)使用DDSIP產(chǎn)生,通過IP產(chǎn)生的波形數(shù)據(jù)直接輸入到FFT進行傅里葉正變換。然后再使用FFT對數(shù)據(jù)進行IFFT傅里葉逆變換還原波形數(shù)據(jù)。過程中完成了fftshift(將零頻分量搬移到頻譜中心),以及使用cordic計算平方根的過程。

FFT端口說明

端口名稱

方向

描述

aclk

I

時鐘

aresetn

I

復位

s_axis_config_tvalid

I

配置有效

s_axis_config_tready

O

配置準備好

s_axis_config_tdata

I

針對配置通道的TDATA。攜帶配置信息: CP_LEN、FWD/INV、NFFT和SCALE_SCH。關于FWD/INV為FFTIP的方式,1為FFT,0為IFFT。當選擇FFT點數(shù)可配置時NFFT為點數(shù)。SCALE_SCH為縮放計劃,以確保在計算過程中不溢出。對于不同的IO架構(gòu)有不同的規(guī)則。

s_axis_data_tdata

I

輸入數(shù)據(jù)

s_axis_data_tvalid????????????????

I

數(shù)據(jù)有效

s_axis_data_tready

O

數(shù)據(jù)準備好

s_axis_data_tlast

I

輸入的一幀最后一個數(shù)據(jù)

m_axis_data_tvalid

O

輸出數(shù)據(jù)有效

m_axis_data_tready

I

輸出數(shù)據(jù)準備好

m_axis_data_tdata

O

輸出數(shù)據(jù)

m_axis_data_tuser

O

輸出數(shù)據(jù)狀態(tài)參數(shù)。包含XK_INDEX, OVFLO, and BLK_EXP.

XK_INDEX輸出數(shù)據(jù)索引

OVFLO溢出標志
BLK_EXP塊指數(shù),字段中出現(xiàn)的值表示在轉(zhuǎn)換過程中數(shù)據(jù)被縮放的比特總數(shù)。例如,如果BLK_EXP的值為00101 = 5,這意味著相關的輸出數(shù)據(jù)(XK_RE,XK_IM)被縮放為5位(向右移5位),或者換句話說,被除以32,以充分利用輸出數(shù)據(jù)路徑的可用動態(tài)范圍而不會溢出。

m_axis_data_tlast

O

輸出的最后一個數(shù)據(jù)。

m_axis_status_tvalid

O

狀態(tài)有效

m_axis_status_tready

I

狀態(tài)準備好

m_axis_status_tdata

O

狀態(tài)數(shù)據(jù)。包含每一幀的狀態(tài)休息。

event_frame_started

O

事件幀開始

event_tlast_unexpected

O

當核心在不是幀中最后一個的數(shù)據(jù)樣本上看到s_axis_data_tlast高時有效

event_tlast_missing

O

當一幀的最后一個數(shù)據(jù)樣本上的s_axis_data_tlast為低時斷言。

event_fft_overflow

O

當正在從數(shù)據(jù)輸出通道卸載的數(shù)據(jù)樣本中出現(xiàn)溢出時斷言。僅在溢出是一個有效的選項時才會出現(xiàn)。

event_data_in_channel_halt

O

當核心從數(shù)據(jù)輸入通道請求數(shù)據(jù)而沒有數(shù)據(jù)可用時斷言。

event_data_out_channel_halt

O

當核心從數(shù)據(jù)輸入通道請求數(shù)據(jù)而沒有數(shù)據(jù)可用時斷言。

event_status_in_channel_halt

O

當核心試圖將數(shù)據(jù)寫入狀態(tài)通道而無法這樣做時,將被斷言。僅在非實時模式下出現(xiàn)。

FFT IP的配置界面

Channels:從1到12中選擇通道數(shù)。三種Burst I/O架構(gòu)均可使用多通道操作。對于浮點格式,通道必須為1。

Transform Length: 選擇一次處理所需點的大小。

The Pipelined Streaming I/O:運行連續(xù)處理。

Radix-4,Radix-2,Radix-2 Lite Burst I/O。幾種不同的實現(xiàn)方式,延遲依次增大,資源依次減少。

Run time configurable Transform Length:允許運行的過程中改變點數(shù)。勾選此后注意,s_axis_config_tdata的字段的意義。

DataFormat:選擇輸入和輸出數(shù)據(jù)樣本是否為定點格式,或在IEEE-754單精度(32位)浮點格式中。浮點格式不是當核心處于多通道配置時可用。

Scaling Options:

Scaling:用戶自定義縮放格式。注意s_axis_config_tdata的字段需要配置每個階段的縮放信息。

Block Floating-Point:由核心來判斷所需的縮放程度,以實現(xiàn)對可用動態(tài)范圍的最佳利用,并以塊指數(shù)的形式報告縮放因子。注意m_axis_data_tuser字段的塊指數(shù)報告。

Output ordering:自然順序和反轉(zhuǎn)順序。這里使用自然順序。

Optional Output Fields:XK_INDEX,輸出數(shù)據(jù)索引。

資源消耗設置界面。

關于matlab仿真,產(chǎn)生1MHZ的正弦波余弦波信號,采樣率為100MHZ。共計1024個點。對其進行FFT。

matlab仿真程序

% 生成正弦波
fc = 1e6;               % 頻率
fs = 100e6;             % 采樣率
t1 = 0:1/fs:1e-3;       % 時間序列,1微秒
t = t1(1:1024);         %RW需要取整數(shù)計算出的頻率是真實sin_wave = sin(2 * pi * fc * t);
cos_wave = cos(2 * pi * fc * t);% 復數(shù)
plural_wave = cos_wave+ 1i*sin_wave;% 加噪聲
data =awgn(cos_wave,100) ;
% data =awgn(plural_wave,100) ;% 繪制原始正弦波數(shù)據(jù)
figure;
subplot(1,1,1);
plot(t*1e9, imag(plural_wave));
title('原始正弦波');
xlabel('時間 (ns)');
ylabel('幅值');%%做FT變化,算平均功率譜,并畫譜輸出
FFT_data = data; N = length(FFT_data); w = blackman(N);Fs =100e6;
% Sf_I_Q_wave=fftshift(fft((FFT_data).*w',N)*2.381);
% w = gausswin(N);%高斯窗函數(shù),窗長度為N
gauss_data = fft((FFT_data).*w',N)*2.396;%%做FFT變換,加窗并還原窗系數(shù)
Sf_I_Q_wave=fftshift(gauss_data);
Sf_I_Q_wave_dBm =(abs(Sf_I_Q_wave));
% Sf_I_Q_wave_dBm =20*log10(1/N*abs(Sf_I_Q_wave));
X_freq=Fs.*(-N/2:N/2-1)/N;figure(2);plot(X_freq,Sf_I_Q_wave_dBm);title('plural_wave原始數(shù)據(jù)普');

對實信號余弦波進行傅里葉變換,頻譜圖如下。

對復信號進行進行傅里葉變換頻譜。

在邏輯中我們使用DDSIP來產(chǎn)生我們需要的波形數(shù)據(jù)。

DDS IP配置界面

可以看到我需要控制DDS的控制字來生成不同頻率的波形數(shù)據(jù),輸出數(shù)據(jù)的格式為高16位為正弦,低16位為余弦。

輸出頻率計算公式。

其中X為頻率控制字,Fs采樣率,即系統(tǒng)時鐘。N為多少位的控制字。要輸出1MHZ的波形信號的控制字為X=655。

輸出波形正好為一個周期1000ns。即1MHZ。

1024點FFT實信號輸入。

FFTSHIFT頻譜搬移模塊

對于FFTSHIFT模塊我們打開matlab幫助后可以發(fā)現(xiàn),搬移的效果就是以頻譜中心左右兩端譜線互換。

ABS求平方根模塊

求復數(shù)的模,定義為

復數(shù)\left | a+b*i \right |\sqrt{a^{2}+b^{2}}

在邏輯中我們使用cordic來計算平方根。

cordicIP配置如下所示

模塊仿真

`timescale 1ns / 1ps
//
// Company: 
// Engineer: 
// 
// Create Date: 2024/08/12 14:14:51
// Design Name: 
// Module Name: vtf_fft_test
// Project Name: 
// Target Devices: 
// Tool Versions: 
// Description: 
// 
// Dependencies: 
// 
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
// 
//module vtf_fft_test;
//fft
//input
wire               [31:0] s_axis_data_tdata    ; 
wire                      s_axis_data_tvalid   ; 
wire                      s_axis_data_tready   ; 
wire                      s_axis_data_tlast    ; 
//output
wire               [31:0] m_axis_data_tdata    ; 
wire                      m_axis_data_tvalid   ; 
wire                      m_axis_data_tready   ; 
wire                      m_axis_data_tlast    ; 
wire               [23:0] m_axis_data_tuser    ; //dds
wire                      m_dds_tvalid         ; 
wire               [31:0] m_dds_tdata          ; //system signal
reg                       clk                  ; 
reg                       rst_n                ; 
reg                       data_gen             ; 
reg                       data_flog            ; 
reg                       douta_vld            ; 
reg                [15:0] cnt                  ; //fftshift
wire               [31:0] fftshift_data        ; // 
wire                      fftshift_data_valid  ; // 
wire                [9:0] fftshift_cnt         ; // //abswire               [15:0] abs_data             ; // (output)
wire                      abs_data_valid       ; // (output)
//system signal//
assign  s_axis_data_tdata   = douta_vld ? m_dds_tdata : 32'h0;//給復信號
//assign  s_axis_data_tdata   = douta_vld ? {16'd0,m_dds_tdata[15:0]} : 32'h0;//實信號
assign  s_axis_data_tvalid  = douta_vld;
assign  s_axis_data_tlast   = (cnt == 16'd1023 );assign  m_axis_data_tready  = 1'b1;//FFT后數(shù)據(jù)
//取實部
wire               [15:0] f_imag               ; 
wire               [15:0] f_real               ; 
wire               [31:0] f_abs                ; assign  f_imag = m_axis_data_tdata[31:16];
assign  f_real = m_axis_data_tdata[15:0];
assign  f_abs  = f_imag + f_real;//=========================================================
dds_compiler_0 u_dds (.aclk                         (clk                         ), // input wire aclk.s_axis_config_tvalid         (1'b1                         ), // input wire s_axis_config_tvalid.s_axis_config_tdata          (16'd655                      ), // input wire [15 : 0] s_axis_config_tdata.m_axis_data_tvalid           (m_dds_tvalid                 ), // output wire m_axis_data_tvalid.m_axis_data_tdata            (m_dds_tdata                  ), // output wire [31 : 0] m_axis_data_tdata.m_axis_phase_tvalid          (                             ), // output wire m_axis_phase_tvalid.m_axis_phase_tdata           (                             )// output wire [15 : 0] m_axis_phase_tdata
);//=========================================================
xfft_0 u_fft (.aclk                         ( clk                         ), // input wire aclk.aresetn                      ( rst_n                       ), // input wire aresetn.s_axis_config_tdata          (8'd1                         ), // input wire [7 : 0] s_axis_config_tdata.s_axis_config_tvalid         (1'b1                         ), // input wire s_axis_config_tvalid.s_axis_config_tready         (                             ), // output wire s_axis_config_tready.s_axis_data_tdata            (s_axis_data_tdata            ), // input wire [31 : 0] s_axis_data_tdata.s_axis_data_tvalid           (s_axis_data_tvalid           ), // input wire s_axis_data_tvalid.s_axis_data_tready           (s_axis_data_tready           ), // output wire s_axis_data_tready.s_axis_data_tlast            (s_axis_data_tlast            ), // input wire s_axis_data_tlast.m_axis_data_tdata            (m_axis_data_tdata            ), // output wire [31 : 0] m_axis_data_tdata.m_axis_data_tuser            (m_axis_data_tuser            ), // output wire [23 : 0] m_axis_data_tuser.m_axis_data_tvalid           (m_axis_data_tvalid           ), // output wire m_axis_data_tvalid.m_axis_data_tready           (m_axis_data_tready           ), // input wire m_axis_data_tready.m_axis_data_tlast            (m_axis_data_tlast            ), // output wire m_axis_data_tlast.m_axis_status_tdata          (                             ), // output wire [7 : 0] m_axis_status_tdata.m_axis_status_tvalid         (                             ), // output wire m_axis_status_tvalid.m_axis_status_tready         (1'b1                         ), // input wire m_axis_status_tready.event_frame_started          (                             ), // output wire event_frame_started.event_tlast_unexpected       (                             ), // output wire event_tlast_unexpected.event_tlast_missing          (                             ), // output wire event_tlast_missing.event_status_channel_halt    (                             ), // output wire event_status_channel_halt.event_data_in_channel_halt   (                             ), // output wire event_data_in_channel_halt.event_data_out_channel_halt  (                             )// output wire event_data_out_channel_halt
);//==========================================================
fft_shift u_fft_shift(
//.fft_data                     (m_axis_data_tdata            ), // (input ) .fft_cnt                      (m_axis_data_tuser[9:0]       ), // (input ) .fft_last                     (m_axis_data_tlast            ), // (input ) .fft_data_valid               (m_axis_data_tvalid           ), // (input ) .fftshift_data                (fftshift_data                ), // (output) .fftshift_data_valid          (fftshift_data_valid          ), // (output) .fftshift_cnt                 (fftshift_cnt[9:0]            ), // (output) 
//system signal.sys_clk                      (clk                          ), // (input ) .rst_n                        (rst_n                        )// (input ) );//==========================================================
abs_top u_abs_top(
//.plural_data                  (fftshift_data[31:0]            ), // (input ) (input ).plural_data_valid            (fftshift_data_valid            ), // (input ) (input ).abs_data                     (abs_data[15:0]               ), // (output) (output).abs_data_valid               (abs_data_valid               ), // (output) (output)
//system signal.clk                          (clk                          ), // (input ) (input ).rst_n                        (rst_n                        )  // (input ) (input )
);//==========================================================
xfft_0 u_ifft (.aclk                         ( clk                         ), // input wire aclk.aresetn                      ( rst_n                       ), // input wire aresetn.s_axis_config_tdata          (8'd1                         ), // input wire [7 : 0] s_axis_config_tdata.s_axis_config_tvalid         (1'b1                         ), // input wire s_axis_config_tvalid.s_axis_config_tready         (                             ), // output wire s_axis_config_tready.s_axis_data_tdata            (m_axis_data_tdata            ), // input wire [31 : 0] s_axis_data_tdata.s_axis_data_tvalid           (m_axis_data_tvalid           ), // input wire s_axis_data_tvalid.s_axis_data_tready           (m_axis_data_tready           ), // output wire s_axis_data_tready.s_axis_data_tlast            (m_axis_data_tlast            ), // input wire s_axis_data_tlast.m_axis_data_tdata            (                             ), // output wire [31 : 0] m_axis_data_tdata.m_axis_data_tuser            (                             ), // output wire [23 : 0] m_axis_data_tuser.m_axis_data_tvalid           (                             ), // output wire m_axis_data_tvalid.m_axis_data_tready           (1'b1                         ), // input wire m_axis_data_tready.m_axis_data_tlast            (                             ), // output wire m_axis_data_tlast.m_axis_status_tdata          (                             ), // output wire [7 : 0] m_axis_status_tdata.m_axis_status_tvalid         (                             ), // output wire m_axis_status_tvalid.m_axis_status_tready         (1'b1                         ), // input wire m_axis_status_tready.event_frame_started          (                             ), // output wire event_frame_started.event_tlast_unexpected       (                             ), // output wire event_tlast_unexpected.event_tlast_missing          (                             ), // output wire event_tlast_missing.event_status_channel_halt    (                             ), // output wire event_status_channel_halt.event_data_in_channel_halt   (                             ), // output wire event_data_in_channel_halt.event_data_out_channel_halt  (                             )// output wire event_data_out_channel_halt
);//================================================================
//================================================================
initial
beginclk = 0;rst_n=0;data_gen   =0;#100;rst_n      =1;#1000;data_gen   =1;#100;data_gen   =0;endalways @ (posedge clk or negedge rst_n)
beginif(rst_n == 1'b0)begin         data_flog   <= 1'b0;endelse if(data_gen == 1'b1)begindata_flog   <= 1'b1;end else if(cnt   >= 10'd1022)begindata_flog   <= 1'b0;end
endalways @ (posedge clk or negedge rst_n)
beginif(rst_n == 1'b0)begin         douta_vld   <= 1'b0;endelse begindouta_vld   <= data_flog;end endalways @ (posedge clk or negedge rst_n)
beginif(rst_n == 1'b0)begin         cnt <= 16'd0;endelse if(s_axis_data_tvalid == 1'b1 && s_axis_data_tready == 1'b1)begincnt <= cnt + 1'b1;end else begincnt <= cnt;endend//================================================================
//================================================================always #5 clk = ~clk;endmodule

復信號輸入。

實信號輸入。

逆傅里葉變換結(jié)果

http://www.risenshineclean.com/news/968.html

相關文章:

  • 深圳做h5網(wǎng)站設計百度關鍵詞排名批量查詢工具
  • 做網(wǎng)站模塊百度一下首頁極簡版
  • 福州網(wǎng)站建設公司哪家好推廣優(yōu)化師
  • dz網(wǎng)站收款即時到賬怎么做的保定網(wǎng)站建設報價
  • 貝爾利網(wǎng)站網(wǎng)絡推廣內(nèi)容
  • 描述建設一個網(wǎng)站的具體步驟制作網(wǎng)站
  • 開發(fā)一個網(wǎng)站多少錢?上海seo關鍵詞優(yōu)化
  • 做網(wǎng)站找云無限seo查詢在線
  • 基于ASP與Access數(shù)據(jù)庫的網(wǎng)站開發(fā)東莞網(wǎng)絡推廣托管
  • 做高效能的父母網(wǎng)站金華seo扣費
  • 幫人做網(wǎng)站要怎么賺錢嗎臨沂seo全網(wǎng)營銷
  • 深圳做自適應網(wǎng)站海外建站
  • 怎樣做網(wǎng)站呢河南靠譜seo電話
  • 做平面設計的一般瀏覽什么網(wǎng)站百度關鍵詞怎么做排名
  • 湖北可以做網(wǎng)站方案的公司百度軟件應用中心
  • 石家莊seo網(wǎng)站優(yōu)化公司b2b外鏈代發(fā)
  • 微信公眾號怎么做網(wǎng)站的怎么學互聯(lián)網(wǎng)怎么賺錢
  • asp 做網(wǎng)站的缺點世界排名前十位
  • 小語種網(wǎng)站建設鎮(zhèn)江市網(wǎng)站
  • 做吃穿住行網(wǎng)站seo提升排名
  • 網(wǎng)站建設新零售上海百度
  • 上海網(wǎng)站備案流程app下載注冊量推廣平臺
  • wordpress頁面的排序長沙百家號seo
  • 江陰 網(wǎng)站開發(fā)新東方烹飪學校學費價目表
  • 旅游網(wǎng)站建設內(nèi)容網(wǎng)站搜索排名優(yōu)化怎么做
  • 網(wǎng)站開發(fā)中的網(wǎng)頁上傳和網(wǎng)站發(fā)布網(wǎng)站點擊量與排名
  • 公司做網(wǎng)站的費用如何記賬軟文文案范文
  • iapp怎么把網(wǎng)站做軟件網(wǎng)站推廣計劃書范文500字
  • 設計建設網(wǎng)站搜索排名怎么做
  • 化妝品網(wǎng)站開發(fā)流程和進度安排網(wǎng)絡營銷模式有哪些