小编Mor*_*gan的帖子

Matlab,从数组中删除低于平均值的元素?

嗨,我有一个问题用Matlab写这个.所以

情况:例如,数组包含(100,90,80,4,2,200).我想计算这些数字的平均值,之后只保留等于或大于平均值的数字.

谁能告诉我怎么做?

matlab average

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

如何零填充matlab数组?

(零)填充matlab数组的最简单方法是什么?
即给定[1,2,3,4]和长度6返回[1,2,3,4,0,0]

背景

我有一个数据数组,我想在运行fft数据之前应用窗口函数.

我用来将数据直接传递给fft,这将零填充到2的下一个幂,但是现在我需要在fft之前填充零填充因此我可以乘以窗口函数.

fs = 100;                          % Sample frequency (Hz)
t = 0:1/fs:10-1/fs;                % 10 sec sample
x = (1.3)*sin(2*pi*15*t) ...       % 15 Hz component
  + (1.7)*sin(2*pi*40*(t-2)) ...   % 40 Hz component
  + (2.5)*randn(size(t));          % Gaussian noise;

m = length(x);          % Window length
n = pow2(nextpow2(m));  % Transform length
w = barthannwin( n );   % FFT Window

y = fft(data, n);       % DFT

windowed_data = x*w ; % Dimensions do not match as x not …
Run Code Online (Sandbox Code Playgroud)

matlab

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

SystemVerilog程序块与传统的测试平台

是否存在程序块提供的SV的任何功能,这些功能无法与其他方法重复使用?

这个问题不太具体的版本是:我是否应该打扰程序块进行验证?我正在从一个受限于Verilog-95的环境转移到支持SV的环境中,我想知道我是否通过不使用程序块为自己创造额外的工作.

testing unit-testing verilog system-verilog

7
推荐指数
1
解决办法
6031
查看次数

如何实现(伪)硬件随机数生成器

如何在HDL(verilog)中实现硬件随机数生成器?

需要考虑哪些选择?


这个问题遵循自我答案的格式.鼓励添加答案和更新.

random verilog hdl

6
推荐指数
3
解决办法
3万
查看次数

在shell中更改PYTHONPATH

我是Python和shell脚本的全新用户,即使经过谷歌搜索问题并且对着桌面敲打很多东西,我也已经陷入了死胡同.任何帮助表示赞赏!

我正在SSH上运行Python 2.7.3; 我下载了一些代码来运行一些程序/分析.当我执行初始程序时,我收到以下错误:

    Traceback (most recent call last):
    File "./[script1].py", line 7, in <module>
    import [script1]
    File "[directory]/[script].py", line 22, in <module>
    import gdata.spreadsheet.service
    ImportError: No module named gdata.spreadsheet.service
Run Code Online (Sandbox Code Playgroud)

[脚本1]指的是同一文件夹中的一个python脚本,作为代码包的一部分,它还调用了Google Data python包,我已将其下载到同一个文件夹并进行了gunzipped,tar解压缩,然后安装(使用./configure等)基于查找错误,我最好的猜测是这里的PYTHONPATH有问题,而且它找不到[script1] .py和Gdata文件夹,即使两者都在与我正在运行的脚本相同的目录."Echo $ PYTHONPATH"告诉我它是一个未定义的变量,并且目录中还有一个空的init .py文件.在该目录中的任何地方都没有包含"bash"或"bashrc"字样的文件.同样,我似乎无法找到任何"sys.path"文件,虽然当我启动Python并打印(sys.path)时,我得到了结果输出:

['', 
'/usr/lib/python2.7',
'/usr/lib/python2.7/plat-linux2',
'/usr/lib/python2.7/lib-tk',
'/usr/lib/python2.7/lib-old',
'/usr/lib/python2.7/lib-dynload',
'/usr/local/lib/python2.7/dist-packages',
'/usr/lib/python2.7/dist-packages',
'/usr/lib/python2.7/dist-packages/PIL',
'/usr/lib/python2.7/dist-packages/gst-0.10',
'/usr/lib/python2.7/dist-packages/gtk-2.0',
'/usr/lib/pymodules/python2.7',
'/usr/lib/python2.7/dist-packages/ubuntu-sso-client',
'/usr/lib/python2.7/dist-packages/ubuntuone-client',
'/usr/lib/python2.7/dist-packages/ubuntuone-installer',
'/usr/lib/python2.7/dist-packages/ubuntuone-storage-protocol',
'/usr/lib/python2.7/dist-packages/wx-2.8-gtk2-unicode']
Run Code Online (Sandbox Code Playgroud)

我也试过了

export PYTHONPATH=[directory]
Run Code Online (Sandbox Code Playgroud)

在我的shell中,但它吐出"export:command not found".

请原谅所有这一切的新人 - 对此的任何帮助(无论我的怀疑是否正确,以及如何解决它们)将不胜感激!

python pythonpath

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

Verilog 访问特定位

我在访问 Verilog 中的 32 个最高有效位和 32 个最低有效位时遇到问题。我编写了以下代码,但收到错误“非法部分选择表达式”这里的要点是我无权访问 64 位寄存器。能否请你帮忙。

`MLT: begin
  if (multState==0) begin
    {C,Res}<={A*B}[31:0];
    multState=1;
  end
  else
  begin
    {C,Res}<={A*B}[63:32];
    multState=2;  
  end
Run Code Online (Sandbox Code Playgroud)

verilog bit-manipulation

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

Verilog双向握手的例子

我正在完成一个项目,并且要求是我们处理器内部功能单元之间的双向握手.我知道它是什么,但它有什么"标准"或简单的例子吗?

我只能想到两个单元之间,当它们之间有数据线时,当X发送到Y时,会给出一个单独的"发送"信号.当Y接收到"接收"信号时,会在另一条线路上发送给X. 一旦X读取接收到的信号,它就会停止在数据线上发送数据并将发送的线路设置为0或Z.Y然后将接收信号设置为0或Z.

这都是同步的(在同一个时钟上).

这是一个有效的方法吗?我认为它可以在大规模上变得非常混乱,但我只是在一个简单的基于累加器的处理器上工作.

verilog processor computer-architecture

6
推荐指数
1
解决办法
5460
查看次数

verilog 中的二进制补码

我一直在尝试构建一个模块,该模块返回(3 位)输入的二进制补码表示(第一位是符号)。我认为以下代码在概念上是正确的,但我可能遗漏了它的结构:当我尝试编译时,出现以下错误:

(vlog-2110) Illegal reference to net "f_o".
(vlog-2110) Illegal reference to net "f_o".
(vlog-2110) Illegal reference to net "f_o".
Run Code Online (Sandbox Code Playgroud)

搜索该错误表明,在同时使用变量作为输入和输出时通常会出现该错误,但这不是我的情况。你能指出错误在哪里吗?

module ca2 (a_i,f_o);
  input  [2:0] a_i;
  output [2:0] f_o;

  always @(a_i[2:0] or f_o[2:0])
  begin
    if (a_i[2] == 1)
    begin
      f_o[2]   = a_i[2];
      f_o[1:0] = (~a_i[1:0] + 'b1);
    end
    else
    begin
      f_o = a_i;
    end
  end
endmodule
Run Code Online (Sandbox Code Playgroud)

verilog

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

自动和静态任务之间有什么区别,为什么我们不能通过引用传递静态任务

静态和自动任务之间有什么区别.

program class_ref;
  int index,value;

 class holding_values;
   int ass_array[*];
   task assign_value (int value,int index);
       ass_array[index] = value;
   endtask 

   function void disp(int index);
       $display("%t  %M:ASSOSIATIVA VALUE%d ",$time,ass_array[index]);
   endfunction

endclass

initial begin
    holding_values  obc;
    index =5;
    value =88;
    obc = new();
    map(obc,value);
    obc.disp(index);
end


task map(ref holding_values obc,ref int value );
    value +=5;
    obc.assign_value(value,index);
    obc =null;
endtask

endprogram
Run Code Online (Sandbox Code Playgroud)

如果执行此代码,它将给出错误

参数参数在静态任务函数声明中是非法的

如果任务"map"自动运行程序.

为什么我们需要自动完成任务?静态和自动任务有什么区别?

system-verilog

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

verilog中模拟时间的计算

我想计算一个素数的计算模拟时间.这意味着没有时钟周期来计算一个素数.我们也知道,一个大质数比一个小素数得到更多的时钟周期来计算.每当计算一个素数并在time_s寄存器中捕获它时,我在verilog中使用$ time.我计算了另一个素数后的计算差异.在这里我可以看到time_s1捕获了计算素数时的时间.Time_s2是计算差异的时间.

module prime_number_count(
  input clk
);

//for count 1
parameter N =100;          // size of array
parameter N_bits = 32;
reg     [N_bits-1:0] prime_number[0:N-1]; // memory array for prime_number 
reg     [N_bits-1:0] prime_aftr50 [0:49]; // memory array to get       
integer     k;               // counter variable   
integer     k1;               // counter variable   
integer     count;  
integer     test;
integer     time_s1;
integer     time_s2;
integer      check; //Counts 1 to k
localparam S_INC   = 2'b01;
localparam S_CHECK = 2'b10;
reg [1:0] state;

initial begin
 prime_number[0] = 'd1;
 prime_number[1] = …
Run Code Online (Sandbox Code Playgroud)

simulation verilog

4
推荐指数
1
解决办法
8357
查看次数