资源简介

利用Matlab内置的高阶谱分析(HOSA)工具箱,首先绘制得到了双谱估计三维图和双谱估计切片图;然后进行了基于双谱对角切片盲感知算法的Matlab仿真实现。

资源截图

代码片段和文件信息

clc
clear
close all
N = 128*64;
n = (0:N-1);
Nfft = 128;
Fs = 1; % 采样频率假定为1
t = n/Fs;
f1 = 0.6381/2/pi;
fai1 = pi/6;
s0 = 10*cos(2*pi*f1*t + fai1);
% % 得到SNR为-20时候对应的双谱切片
SNR = -20;
noi = awgn(s0SNR(1)0) - s0;
s0 = s0 + noi;

% 使用直接双谱估计方法(基于fft),bspec:双谱估计,一个Nfft*Nfft的数组;
[bspecwaxis] = bispecd(s0 Nfft 1 64 0);
close all

%双谱信号(包含相干信号的幅度和相位信息,幅度受信号的功率谱影响)
SS = Nfft/2+1;
waxis1 = waxis(SS:end)*Fs;
bspec1 = bspec(SS:endSS:end);
[X1Y1] = meshgrid(waxis1waxis1);
mesh(X1Y1abs(bspec1))
axis tight
xlabel(‘f1/Hz‘)
ylabel(‘f2/Hz‘)
zlabel(‘幅度‘)
title(‘双谱估计三维图‘);

figure()
diagBspec = diag(fliplr(bspec)); % 输出主对角线上的元素
plot(waxis1abs(diagBspec(SS:end)));
grid on;
xlabel(‘f/Hz‘)
ylabel(‘幅度‘)
title(‘双谱估计切片图‘)
SNR=(-20:10);
Pf=zeros(1length(SNR));
Pd=zeros(1length(SNR));
threshhold = 0.004; % 为了取得较大的检测概率,选取较小的阀

评论

共有 条评论