本帖最后由 噜_哈哈 于 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 条回复