小编tit*_*cus的帖子

Verilog与无签名样本签署并首先签署

假设我有一个reg [15:0] my_reg包含16位带符号样本的寄存器:

如何将样本从签名转换为未签名?我已经阅读了这篇维基百科的文章,并且知道签名数字的2位补码,但是如何有效地在Verilog中执行这种转换呢?(我不知道它my_reg是正还是负,并且它在每个时钟周期都会发生变化=我在每个正时钟边沿都会收到一个新的样本).

最终目标(增加一点上下文)是实现数字FPGA内置自动增益控制(AGC).

编辑:正如所建议的那样,我将两个问题分成了两个不同的帖子.在这里看到另一个

verilog bit-manipulation hdl

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

Matlab中的扩展块对角矩阵

我知道要在Matlab中生成块对角矩阵,命令会blkdiag生成这样一个矩阵:

在此输入图像描述

现在我面临着产生相同的块对角矩阵,但也矩阵元素B_1,B_2,...,B_{n-1}在上斜,别处零:

在此输入图像描述

  • 我想这可以用循环硬编码,但我想找到一个更优雅的解决方案.关于如何实现这样的事情的任何想法?

PS我diag命令,使用diag(A,k)返回k对角线.我需要在矩阵中写入的内容,k> 0,而块矩阵,不仅是元素.

matlab matrix diagonal

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

unpack()没有for循环

在Perl中,我使用unpack()函数将二进制数据解压缩为字节.到目前为止我得到了这个:

my $lenOverHead = 3;
my $lenWithoutOverheads = length($thing->{_raw}) - $lenOverHead;

my @AA;
for (my $i = 0; $i < $lenWithoutOverheads; $i++)
{
    push (@AA,  unpack('C', substr($thing->{_raw}, $lenOverHead+$i)));
}
Run Code Online (Sandbox Code Playgroud)

注意,这$thing->{_raw}只是一个包含二进制数据的字符串.

现在的问题是,是否有更好的(=更有效)/更好的方式来做map()或不相似,不需要for循环?

我尝试了以下方法:

my @BB = map { unpack('C', $_) } substr($thing->{_raw}, $lenOverHead);
Run Code Online (Sandbox Code Playgroud)

但当然它只解包第一个字节,而不是所有字节....

perl byte unpack

2
推荐指数
1
解决办法
92
查看次数

在Matlab中绘制一条线的阴影偏差

我想在 MATLAB 中绘制一条线,并以信号的灰色阴影 X% 偏差绘制。然后,我会绘制另一个信号并查看(视觉上)第二个信号有多少在灰色阴影区域之外。

我想获得帮助的任务是阴影区域:类似于下面附加的图像。

在此处输入图片说明

我知道类似的解决方案errorbar,但我认为这是一个更清楚的情节想象。

例如,如果我有:

x = 0:0.1:10;
y = 1 + sin(x);
Run Code Online (Sandbox Code Playgroud)

的 5% 灰色阴影图y会是什么样子?(那个区域?)

matlab plot visualization

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

从Perl正则表达式中提取特定值

我想使用Perl正则表达式从文件名中提取某些值.他们有以下(有效)名称:

testImrrFoo_Bar001_off
testImrrFooBar_bar000_m030
testImrrFooBar_bar231_p030
Run Code Online (Sandbox Code Playgroud)

从上面我想提取前三个数字(总是保证为3),以及字符串的最后一部分,在最后一个之后_(也就是off,或(mp)后跟3个数字).所以我要提取的第一件事是3位数,第二位是字符串.

我推出了以下方法(我意识到这可能不是最优/最好的方法):

my $marker = '^testImrr[a-zA-z_]+\d{3}_(off|(m|p)\d{3})$';
if ($str =~ m/$marker/)
{
    print "1=$1 2=$2";
}
Run Code Online (Sandbox Code Playgroud)

哪里只有$1一个有效的结果(即我想要的最后一点信息),但$2结果是空的.关于如何在中间获得这3位数的任何想法?

regex perl extract

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