小编too*_*e21的帖子

在Matlab中比较两个信号的最佳方法

我有一个在matlab中制作的信号,我希望与另一个信号进行比较(称为y和z).我正在寻找的是一种分配两个信号相似程度的值或百分比的方法.

我试图使用corrcoef,但是我得到了非常差的值(corrcoef(y,z) = -0.1141),但当我看到两个图上的FFT叠加在一起时,我会直观地说它们非常相似.看看这两个信号幅度的FFT曲线看起来更有希望:corrcoef(abs(fft(y)),abs(fft(z))) = 0.9955但是我不确定这是否是最好的方法,因为它们纯粹形式的两个信号似乎不是相关.

有没有人建议如何在Matlab中比较两个信号?

谢谢!

matlab compare signal-processing similarity

7
推荐指数
2
解决办法
2万
查看次数

有没有办法在Verilog中进行嵌套的生成语句?

我试图通过使用generate语句来减少一些代码,但是我只能通过嵌套来弄清楚该怎么做,但是我不认为这是允许的。

我所拥有的基本上是一些for循环(需要生成),在其中,我想根据代码生成时设置的值运行代码的三个部分之一(然后需要第二个生成) 。有没有办法做到这一点并使工具满意?

这是我正在尝试的简单照片:

    //TAPS_PER_CHAN is a value defined when the code is built
genvar srcNode, dstNode, tapIdx;
 generate
  for (dstNode=0; dstNode<NODES; dstNode=dstNode+1)
    begin: dstForLoop
    generate
        if(TAPS_PER_CHAN <= 4)
        begin
            call module one
        end    
        else if (TAPS_PER_CHAN <= 8)
        begin
            call module two
        end      
       else if (TAPS_PER_CHAN <= 16)
       begin  
            call module three
        end
    endgenerate
    end
endgenerate
Run Code Online (Sandbox Code Playgroud)

verilog

5
推荐指数
1
解决办法
1万
查看次数

Verilog如何展开嵌套for循环?

我试图用一系列嵌套for循环做一个累积和,我没有运气.我想我需要更好地理解Verilog如何展开for循环才能真正想象出如何解决我的问题.

基本上我有一系列的tap输出(tap_output_i和tap_output_q)是3D阵列(src,dst,tap).我想总结每个时钟到达特定目的地的所有源和抽头.

这是我有的不起作用(每次out_sig为0):

//NODES = 2
wire signed [DAC_BUS_WIDTH-1:0]      out_sig_i [NODES-1:0];
wire signed [DAC_BUS_WIDTH-1:0]      out_sig_q [NODES-1:0];
reg signed [DAC_BUS_WIDTH-1:0] out_sig_i_reg[NODES-1:0];
reg signed [DAC_BUS_WIDTH-1:0] out_sig_q_reg[NODES-1:0];

integer dstVal,srcVal, tapVal;
//generate
always @(posedge clk) begin: AlwaysSummingForLoop
  for (dstVal=0; dstVal<2; dstVal=dstVal+1) begin:SummingForLoop
    out_sig_i_reg[dstVal] <= 0;
    out_sig_q_reg[dstVal] <= 0;
      for (srcVal=0; srcVal<2; srcVal=srcVal+1) begin:SrcForLoop
        if(srcVal != dstVal) begin:innerIf
             for (tapVal=0; tapVal<8; tapVal=tapVal+1) begin:tapSum
                out_sig_i_reg[dstVal] <= out_sig_i_reg[dstVal] + tap_output_i[srcVal][dstVal][tapVal];
                out_sig_q_reg[dstVal] <= out_sig_q_reg[dstVal] + tap_output_q[srcVal][dstVal][tapVal];
             end
        end
      end
    end
end
//endgenerate
assign out_sig_i[0] = out_sig_i_reg[0];
assign out_sig_q[0] …
Run Code Online (Sandbox Code Playgroud)

for-loop verilog fpga

0
推荐指数
1
解决办法
5142
查看次数