[未答复] 基于小波分析的瞬态信号检测器及该检测器roc曲线的绘制

[复制链接]
噜_哈哈 发表于 2021-4-8 12:31:47
本帖最后由 噜_哈哈 于 2021-4-8 12:34 编辑

1.我的程序代码:
clear all; close all; clc;   
%% 瞬态信号建模
fs = 1000;                % 采样频率1000Hz
ts = 1 / fs;              % 采样时间间隔1ms
t = 0 : ts : 1;      % 采样时间。每隔1ms采一次,采样1s
L = length(t);                 % 信号长度1000
f0 = 10  ;                %信号频率10Hz
s = sin(2 * pi * f0 * t); % 原始正弦信号
sigma=0.1;
n=normrnd(0,sigma,1,L);  %生成0均值,标准差为0.1的高斯白噪声
s =s+n;                   % 添加噪声
t1=0.4;
t2=0.8;                   %瞬态信号位置
x1=zeros(size(t));        %生成一个与t同大小的0矩阵  
x1(t1*fs)=1;               
x1(t2*fs)=2;              %瞬态信号幅值  
s=s+x1;                 %添加瞬态信号
figure(1);
plot(t,s)
xlabel('时间/s');ylabel('幅值');
title('含噪的瞬态信号');       %时域波形

%% 连续小波变换(CWT)
figure(2)
cw1 = cwt(s,1:32,'sym2','plot'); % 对信号做连续小波变换,并作出系数图像
title('连续小波变换系数图');

%% 离散小波变换(DWT)
[d,a]=wavedec(s,3,'db4');           %对原始信号进行3层离散小波分解
a3=wrcoef('a',d,a,'db4',3);        %重构1-3层近似信号
a2=wrcoef('a',d,a,'db4',2);         
a1=wrcoef('a',d,a,'db4',1);         
d3=wrcoef('d',d,a,'db4',3);         %重构1-3层吗细节信号
d2=wrcoef('d',d,a,'db4',2);         
d1=wrcoef('d',d,a,'db4',1);         

figure(3);
subplot(411);plot(s);ylabel('原始信号s'); %画出各层小波近似信号
title('小波分解各层近似信号示意图');
subplot(412);plot(a3);ylabel('近似信号a3');
subplot(413);plot(a2);ylabel('近似信号a2');
subplot(414);plot(a1);ylabel('近似信号a1');
xlabel('时间/s');

figure(4)
subplot(411);plot(s);ylabel('原始信号s');  %画出各层小波细节信号
title('小波分解各层细节信号示意图');
subplot(412);plot(d3);ylabel('细节信号d3');
subplot(413);plot(d2);ylabel('细节信号d2');
subplot(414);plot(d1);ylabel('细节信号d1');
xlabel('时间/s');

%% 性能检测
sigPower = sum(abs(s).^2)/length(s);            %求出信号功率
noisePower=sum(abs(n).^2)/length(n);       %求出噪声功率
SNR_10=10*log10(sigPower/noisePower);            %由信噪比定义求出信噪比,单位为db
T=sigma*(2*log10(L))^0.5                   %确定阈值
int i=0;
for(i<=100,i++
    if abs(d1)[/code]

2.我的问题:
%% 性能检测
sigPower = sum(abs(s).^2)/length(s);            %求出信号功率
noisePower=sum(abs(n).^2)/length(n);       %求出噪声功率
SNR_10=10*log10(sigPower/noisePower);            %由信噪比定义求出信噪比,单位为db
T=sigma*(2*log10(L))^0.5                   %确定阈值
int i=0;
for(i<=100,i++
    if abs(d1)
[/code]
我想采集1000个样本,以不同的信噪比组合,每种信噪比组合进行仿真检测运行1000次,检测结果包括相应信噪比下的检测概率和虚警概率,门限按照虚警概率小于%3设定,绘制roc曲线,请问这个程序代码怎么写。
3.matlab2019b,win10


1 条回复


噜_哈哈 发表于 2021-4-8 12:35:36
怎么输代码才可以让自己的代码可以被复制
您需要登录后才可以回帖 登录 | 注册

本版积分规则

相关帖子
热门教程
站长推荐
快速回复 返回顶部 返回列表