Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
杨家三木
qtcpp_demo
提交
19707bf4
qtcpp_demo
项目概览
杨家三木
/
qtcpp_demo
与 Fork 源项目一致
Fork自
colorEagleStdio / qtcpp_demo
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
qtcpp_demo
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
19707bf4
编写于
6月 20, 2021
作者:
M
manjaro
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
syn is not good
上级
402d1229
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
35 addition
and
26 deletion
+35
-26
sdr_deepdetect/sdd_reciever/main.cpp
sdr_deepdetect/sdd_reciever/main.cpp
+35
-26
未找到文件。
sdr_deepdetect/sdd_reciever/main.cpp
浏览文件 @
19707bf4
...
...
@@ -30,7 +30,8 @@ std::atomic<int> curr_deal = 0;
//Sample rate in Hz
double
sprate
=
240000
;
std
::
atomic
<
bool
>
syn
=
false
;
const
int
searchRange
=
1001
;
std
::
atomic
<
int
>
syn
=
searchRange
/
10
;
//消费者线程,for rx
void
dealer
();
int
runRecieve
()
...
...
@@ -173,7 +174,7 @@ int runRecieve()
memcpy
(
dest
,
src
,
copyto
*
sizeof
(
SPTYPE
)
*
2
);
total_red
=
copyto
;
curr_active
=
1
-
curr_active
;
if
(
!
syn
)
if
(
syn
>
3
)
{
rx_stream_cmd
.
stream_mode
=
UHD_STREAM_MODE_STOP_CONTINUOUS
;
UHD_DO
(
uhd_rx_streamer_issue_stream_cmd
(
rx_streamer
,
&
rx_stream_cmd
));
...
...
@@ -184,7 +185,6 @@ int runRecieve()
}
rx_stream_cmd
.
stream_mode
=
UHD_STREAM_MODE_START_CONTINUOUS
;
UHD_DO
(
uhd_rx_streamer_issue_stream_cmd
(
rx_streamer
,
&
rx_stream_cmd
));
}
}
}
...
...
@@ -200,31 +200,33 @@ int runRecieve()
}
void
runDeal
()
{
const
int
DealEnd
=
READ_BUF_SIZE
-
WAVSIZE
;
const
int
steps
=
201
;
float
(
*
cross
[
steps
])[
2
][
2
]
;
for
(
int
i
=
0
;
i
<
steps
;
++
i
)
float
(
*
cross
[
searchRange
])[
2
][
2
]
;
for
(
int
i
=
0
;
i
<
searchRange
;
++
i
)
cross
[
i
]
=
new
float
[
DealEnd
][
2
][
2
];
float
(
*
judge
[
s
teps
])[
2
]
;
for
(
int
i
=
0
;
i
<
s
teps
;
++
i
)
float
(
*
judge
[
s
earchRange
])[
2
]
;
for
(
int
i
=
0
;
i
<
s
earchRange
;
++
i
)
judge
[
i
]
=
new
float
[
DealEnd
][
2
];
float
(
*
freq_mv
[
s
teps
])[
2
];
for
(
int
i
=
0
;
i
<
s
teps
;
++
i
)
float
(
*
freq_mv
[
s
earchRange
])[
2
];
for
(
int
i
=
0
;
i
<
s
earchRange
;
++
i
)
freq_mv
[
i
]
=
new
float
[
DealEnd
][
2
];
float
(
*
sig
[
s
teps
])[
2
]
;
for
(
int
i
=
0
;
i
<
s
teps
;
++
i
)
float
(
*
sig
[
s
earchRange
])[
2
]
;
for
(
int
i
=
0
;
i
<
s
earchRange
;
++
i
)
sig
[
i
]
=
new
float
[
DealEnd
][
2
];
const
float
pi
=
3.1415927
;
for
(
int
df
=
0
;
df
<
steps
;
++
df
)
#pragma omp parallel for
for
(
int
df
=
0
;
df
<
searchRange
;
++
df
)
{
float
f
=
(
df
-
s
teps
/
2
)
*
5
0
;
float
f
=
(
df
-
s
earchRange
/
2.0
)
*
1
0
;
for
(
int
pv
=
0
;
pv
<
DealEnd
;
++
pv
)
{
float
t
=
pv
/
sprate
;
...
...
@@ -232,7 +234,7 @@ void runDeal()
freq_mv
[
df
][
pv
][
1
]
=
sin
(
2
*
pi
*
f
*
t
);
}
}
int
startDF
=
0
,
endDF
=
steps
;
int
startDF
=
0
,
endDF
=
searchRange
;
while
(
!
stop_signal_called
)
{
if
((
int
)
curr_active
==
(
int
)
curr_deal
)
{
...
...
@@ -244,8 +246,9 @@ void runDeal()
fprintf
(
stderr
,
"Dealing %d
\n
"
,
deal
);
float
maxAbs
=
0
;
int
maxDF
=
2
;
int
stp
=
syn
;
#pragma omp parallel for
for
(
int
df
=
startDF
;
df
<
endDF
;
++
df
)
for
(
int
df
=
startDF
;
df
<
endDF
;
df
+=
stp
)
{
//xorr
#pragma omp simd
...
...
@@ -294,25 +297,31 @@ void runDeal()
printf
(
"MaxDF=%d
\n
"
,
maxDF
);
for
(
size_t
i
=
0
;
i
<
DealEnd
;
++
i
)
{
if
(
judge
[
maxDF
][
i
][
0
]
>=
1000
||
judge
[
maxDF
][
i
][
1
]
>=
1
000
)
if
(
judge
[
maxDF
][
i
][
0
]
>=
5000
||
judge
[
maxDF
][
i
][
1
]
>=
5
000
)
{
if
(
judge
[
maxDF
][
i
][
0
]
*
8
<
judge
[
maxDF
][
i
][
1
])
if
(
judge
[
maxDF
][
i
][
0
]
*
32
<
judge
[
maxDF
][
i
][
1
])
{
printf
(
"%lu:0=%f, 1=%f, 1
\n
"
,
i
,
judge
[
maxDF
][
i
][
0
],
judge
[
maxDF
][
i
][
1
]);
fflush
(
stdout
);
i
+=
WAVSIZE
;
startDF
=
(
maxDF
-
2
)
<
0
?
0
:
(
maxDF
-
2
);
endDF
=
(
maxDF
+
2
)
>
steps
?
steps
:
((
maxDF
+
2
));
syn
=
true
;
startDF
=
(
maxDF
-
stp
*
2
)
<
0
?
0
:
(
maxDF
-
stp
*
2
);
endDF
=
(
maxDF
+
stp
*
2
)
>
searchRange
?
searchRange
:
((
maxDF
+
stp
*
2
));
if
(
syn
>
3
)
syn
=
(
endDF
-
startDF
)
/
10
;
if
(
syn
<
1
)
syn
=
1
;
}
else
if
(
judge
[
maxDF
][
i
][
1
]
*
8
<
judge
[
maxDF
][
i
][
0
])
else
if
(
judge
[
maxDF
][
i
][
1
]
*
32
<
judge
[
maxDF
][
i
][
0
])
{
printf
(
"%lu:0=%f, 1=%f, 0
\n
"
,
i
,
judge
[
maxDF
][
i
][
0
],
judge
[
maxDF
][
i
][
1
]);
fflush
(
stdout
);
i
+=
WAVSIZE
;
startDF
=
(
maxDF
-
2
)
<
0
?
0
:
(
maxDF
-
2
);
endDF
=
(
maxDF
+
2
)
>
steps
?
steps
:
((
maxDF
+
2
));
syn
=
true
;
startDF
=
(
maxDF
-
stp
*
2
)
<
0
?
0
:
(
maxDF
-
stp
*
2
);
endDF
=
(
maxDF
+
stp
*
2
)
>
searchRange
?
searchRange
:
((
maxDF
+
stp
*
2
));
if
(
syn
>
3
)
syn
=
(
endDF
-
startDF
)
/
10
;
if
(
syn
<
1
)
syn
=
1
;
}
}
...
...
@@ -320,7 +329,7 @@ void runDeal()
//判决
curr_deal
=
1
-
deal
;
}
for
(
int
i
=
0
;
i
<
s
teps
;
++
i
)
for
(
int
i
=
0
;
i
<
s
earchRange
;
++
i
)
{
delete
[]
cross
[
i
];
delete
[]
judge
[
i
];
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录