在matlab中通过wgn函数,产生高斯白噪声
wgn(m,n,p) 产生一个m行n列的高斯白噪声的矩阵,p以dBW为单位指定输出噪声的强度
noise = wgn(1000,1,0); %生成1000*1个高斯白噪声,功率为0dBW(分贝瓦)
y1 = fft(noise,1000); %采样点个数1000个
p1 = y1.*conj(y1); %conj()得到相应的复共轭数,y1.*conj(y1)就是模的平方
ff = 0:499;
figure,stem(ff,p1(1:500)); %只显示一半
xlabel('频率');
ylabel('功率');
title('功率谱');
mean_value = mean(noise) %均值为0
variance = var(noise) %方差为1,功率为0dBW(10*log1=0)
figure,hist(noise);
xlabel('幅值');
ylabel('频次');
title('噪声幅值的直方图');
clc;close all;clear all;
%参数-------------------------
f0=50;
% f0=1000;
T=0.1;%时宽
B=1/T;
fs=1000;%采样频率
Ts=1/fs;%采样时间
N=T/Ts;%采样点个数
t=linspace(0,T,N);
% t=-0.05:0.0001:0.05;
y=exp(1i*2*pi*f0*t);
%画图--------------------------------------------------------
figure(1);
subplot(2,1,1);plot(t,real(y));title('CW脉冲信号时域波形');xlabel('时间/s');ylabel('幅度');
f=linspace(0,100,N);
Y=T*(sin(pi*(f-f0)*T))./(pi*(f-f0)*T);
subplot(2,1,2);plot(f,Y);title('CW脉冲信号频谱');xlabel('频率/Hz');ylabel('幅度');
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-O3U3JTBD-1637926181399)(D:\yjs\matlab_code\cw_dection&LFM\cw_1.jpg)]
线性调频(LFM)是一种不需要伪随机编码序列的扩展频谱调制技术。由于线性调频信号占用的频带宽度远大于信息带宽,所以也可以获得很大的系统处理增益。线性调频信号又称鸟声(Chirp)信号,因为其频谱带宽落于可听范围,则听若鸟声,所以又称Chirp扩展频谱(CSS)技术
线性调频(LFM)信号是指瞬时频率随时间成线性变化的信号。LFM信号的时域表达式可以写为(设振幅归一化,初始相位为零):
接收者操作特征曲线(receiver operating characteristic curve,或者叫ROC曲线),其定义为:将检测概率PD和虚警察概率PFA,以检测指数d(一定的置信级下,要求的系统最小输出信噪比)为参变量,画在一张图中。
matlab内置有plotroc函数,但本题是对信号进行ROC曲线的绘制,因此我们选择采用rocsnc函数,(SNR的接收机操作特性曲线)
[Pd,Pfa] = rocsnr(SNRdB)
返回向量 中 SNR的单脉冲检测概率Pd
和虚警概率Pfa。默认情况下,对于每个 SNR,检测概率是针对 1e–10 和 1 之间的 101 个误报概率计算的。误报概率按对数等距分布。ROC 曲线是在假设一个相干接收器与一个非波动目标的情况下构建的。
[Pd,Pfa] = rocsnr(SNRdB,Name,Value)
返回检测概率和误报概率以及由一个或多个Name,Value
参数对指定的附加选项。
在Name的设置中,设置SignalType,此属性指定接收信号的类型,或者等效地指定用于计算 ROC 的概率密度函数 (PDF)。有效值是:'Real'
,'NonfluctuatingCoherent'
,'NonfluctuatingNoncoherent'
,'Swerling1'
,'Swerling2'
,'Swerling3'
,和'Swerling4'
。值不区分大小写。'NonfluctuatingCoherent'
信号类型假设在所接收的信号中的噪声是复值,高斯随机变量。在原假设下,该变量具有独立的零均值实部和虚部,每个均具有方差 σ 2 /2。
SNRdB = [3 6 9 12];
[Pd,Pfa] = rocsnr(SNRdB,'SignalType','NonfluctuatingCoherent');
semilogx(Pfa,Pd)
grid on
xlabel('P_{fa}')
ylabel('P_d')
legend('SNR 3 dB','SNR 6 dB','SNR 9 dB','SNR 12 dB', 'location','northwest')
title('Receiver Operating Characteristic (ROC) Curves')
t=-0.05:0.0001:0.05;
f0=1000;
k=25000;
% s=cos(2.*pi.*f0.*t);
s=exp(1i*2*pi*f0*t);%CW脉冲
n=wgn(1,1001,2);
s1=s+n;
sigPower_cw = sum(abs(s).^2)/length(s) %求出信号功率
noisePower_cw=sum(abs(s1-s).^2)/length(s1-s) %求出噪声功率
SNR_cw=10*log10(sigPower_cw/noisePower_cw) %由信噪比定义求出信噪比,单位为db
s_lfm=cos(2.*pi.*f0.*t+pi.*k.*t.*t);
s1_lfm=s_lfm+n
sigPower_lfm = sum(abs(s_lfm).^2)/length(s_lfm) %求出信号功率
noisePower_lfm=sum(abs(s1_lfm-s_lfm).^2)/length(s1_lfm-s_lfm) %求出噪声功率
SNR_lfm=10*log10(sigPower_lfm/noisePower_lfm) %由信噪比定义求出信噪比,单位为db
SNRdB = [SNR_cw,SNR_lfm];
[Pd,Pfa] = rocsnr(SNRdB,'SignalType','NonfluctuatingCoherent');
semilogx(Pfa,Pd)
grid on
xlabel('P_{fa}')`在这里插入代码片`
ylabel('P_d')
legend('CW','LFM', 'location','northwest')
title('Receiver Operating Characteristic (ROC) Curves')