function X_sig_t=generateWB_T(array_number,doa,snapshot,fc,Bw,fs,distance,snr)
% Input
% array_number-阵元数
% doa-宽带信号来波方向
% snapshot-快拍数
% fc-中心频率
% Bw-信号带宽,码速率
% fs-信号采样率
% distance-阵元间距
% snr-信噪比
% Output
% X_sig_t-阵列时域接收数据
%% 参数选择
K=length(doa); % 信号个数
t=(0:snapshot-1)/fs; % 时间轴
c=1500;
%% 第一个阵元接收时域数据
Sig_modulate=zeros(K,snapshot);
for k=1:K
% 理想低通滤波
temp=zeros(1,length(t)*Bw/fs);
temp(1)=1;
lpf_i=interpft(temp,length(t))*Bw/fs; % 冲击响应
% 产生时域信号
Sig_gaussian_write_noise=1/sqrt(2)*(randn(1,snapshot)+1i*randn(1,snapshot));
% 频域滤波
f_lpf=fft(lpf_i);
f_sig=fft(Sig_gaussian_write_noise);
Sig_filter_out=ifft(f_lpf.*f_sig);
% 时域调制到载波
Sig_modulate(k,:)=Sig_filter_out.*exp(1i*2*pi*fc*t);
end
%% 叠加产生噪声,产生阵列实际接收数据
X=zeros(array_number,snapshot);
m=0:array_number-1;
f=fftshift((-1/2:1/snapshot:1/2-1/snapshot)*fs);
for k = 1:K
Fx0 = fft(Sig_modulate(k,:).',snapshot).';
SV = exp(-1i*2*pi*distance*m.'*f*sin(pi/180*doa(k))/c);
Fx = SV.*(ones(array_number,1)*Fx0);
X0 = ifft(Fx.').';
adj = sqrt(10^(snr/10)/((1/snapshot*X0(1,:)*X0(1,:)')/2));
X = X+adj*X0;
end
AddNoise=randn(array_number,snapshot)+1i*randn(array_number,snapshot);
X_sig_t=X+AddNoise;
function X_sig_t=generateWB_T(array_number,doa,snapshot,fc,Bw,fs,distance,snr)
% Input
% array_number-阵元数
% doa-宽带信号来波方向
% snapshot-快拍数
% fc-中心频率
% Bw-信号带宽,码速率
% fs-信号采样率
% distance-阵元间距
% snr-信噪比
% Output
% X_sig_t-阵列时域接收数据
%% 参数选择
K=length(doa); % 信号个数
t=(0:snapshot-1)/fs; % 时间轴
c=1500;
%% 第一个阵元接收时域数据
Sig_modulate=zeros(K,snapshot);
for k=1:K
% 理想低通滤波
temp=zeros(1,length(t)*Bw/fs);
temp(1)=1;
lpf_i=interpft(temp,length(t))*Bw/fs; % 冲击响应
% 产生时域信号
Sig_gaussian_write_noise=1/sqrt(2)*(randn(1,snapshot)+1i*randn(1,snapshot));
% 频域滤波
f_lpf=fft(lpf_i);
f_sig=fft(Sig_gaussian_write_noise);
Sig_filter_out=ifft(f_lpf.*f_sig);
% 时域调制到载波
Sig_modulate(k,:)=Sig_filter_out.*exp(1i*2*pi*fc*t);
end
%% 叠加产生噪声,产生阵列实际接收数据
X=zeros(array_number,snapshot);
m=0:array_number-1;
f=fftshift((-1/2:1/snapshot:1/2-1/snapshot)*fs);
for k = 1:K
Fx0 = fft(Sig_modulate(k,:).',snapshot).';
SV = exp(-1i*2*pi*distance*m.'*f*sin(pi/180*doa(k))/c);
Fx = SV.*(ones(array_number,1)*Fx0);
X0 = ifft(Fx.').';
adj = sqrt(10^(snr/10)/((1/snapshot*X0(1,:)*X0(1,:)')/2));
X = X+adj*X0;
end
AddNoise=randn(array_number,snapshot)+1i*randn(array_number,snapshot);
X_sig_t=X+AddNoise;
function X_sig_t=generateWB_T(array_number,doa,snapshot,fc,Bw,fs,distance,snr)
% Input
% array_number-阵元数
% doa-宽带信号来波方向
% snapshot-快拍数
% fc-中心频率
% Bw-信号带宽,码速率
% fs-信号采样率
% distance-阵元间距
% snr-信噪比
% Output
% X_sig_t-阵列时域接收数据
%% 参数选择
K=length(doa); % 信号个数
t=(0:snapshot-1)/fs; % 时间轴
c=1500;
%% 第一个阵元接收时域数据
Sig_modulate=zeros(K,snapshot);
for k=1:K
% 理想低通滤波
temp=zeros(1,length(t)*Bw/fs);
temp(1)=1;
lpf_i=interpft(temp,length(t))*Bw/fs; % 冲击响应
% 产生时域信号
Sig_gaussian_write_noise=1/sqrt(2)*(randn(1,snapshot)+1i*randn(1,snapshot));
% 频域滤波
f_lpf=fft(lpf_i);
f_sig=fft(Sig_gaussian_write_noise);
Sig_filter_out=ifft(f_lpf.*f_sig);
% 时域调制到载波
Sig_modulate(k,:)=Sig_filter_out.*exp(1i*2*pi*fc*t);
end
%% 叠加产生噪声,产生阵列实际接收数据
X=zeros(array_number,snapshot);
m=0:array_number-1;
f=fftshift((-1/2:1/snapshot:1/2-1/snapshot)*fs);
for k = 1:K
Fx0 = fft(Sig_modulate(k,:).',snapshot).';
SV = exp(-1i*2*pi*distance*m.'*f*sin(pi/180*doa(k))/c);
Fx = SV.*(ones(array_number,1)*Fx0);
X0 = ifft(Fx.').';
adj = sqrt(10^(snr/10)/((1/snapshot*X0(1,:)*X0(1,:)')/2));
X = X+adj*X0;
end
AddNoise=randn(array_number,snapshot)+1i*randn(array_number,snapshot);
X_sig_t=X+AddNoise;
function X_sig_t=generateWB_T(array_number,doa,snapshot,fc,Bw,fs,distance,snr)
% Input
% array_number-阵元数
% doa-宽带信号来波方向
% snapshot-快拍数
% fc-中心频率
% Bw-信号带宽,码速率
% fs-信号采样率
% distance-阵元间距
% snr-信噪比
% Output
% X_sig_t-阵列时域接收数据
%% 参数选择
K=length(doa); % 信号个数
t=(0:snapshot-1)/fs; % 时间轴
c=1500;
%% 第一个阵元接收时域数据
Sig_modulate=zeros(K,snapshot);
for k=1:K
% 理想低通滤波
temp=zeros(1,length(t)*Bw/fs);
temp(1)=1;
lpf_i=interpft(temp,length(t))*Bw/fs; % 冲击响应
% 产生时域信号
Sig_gaussian_write_noise=1/sqrt(2)*(randn(1,snapshot)+1i*randn(1,snapshot));
% 频域滤波
f_lpf=fft(lpf_i);
f_sig=fft(Sig_gaussian_write_noise);
Sig_filter_out=ifft(f_lpf.*f_sig);
% 时域调制到载波
Sig_modulate(k,:)=Sig_filter_out.*exp(1i*2*pi*fc*t);
end
%% 叠加产生噪声,产生阵列实际接收数据
X=zeros(array_number,snapshot);
m=0:array_number-1;
f=fftshift((-1/2:1/snapshot:1/2-1/snapshot)*fs);
for k = 1:K
Fx0 = fft(Sig_modulate(k,:).',snapshot).';
SV = exp(-1i*2*pi*distance*m.'*f*sin(pi/180*doa(k))/c);
Fx = SV.*(ones(array_number,1)*Fx0);
X0 = ifft(Fx.').';
adj = sqrt(10^(snr/10)/((1/snapshot*X0(1,:)*X0(1,:)')/2));
X = X+adj*X0;
end
AddNoise=randn(array_number,snapshot)+1i*randn(array_number,snapshot);
X_sig_t=X+AddNoise;
function X_sig_t=generateWB_T(array_number,doa,snapshot,fc,Bw,fs,distance,snr)
% Input
% array_number-阵元数
% doa-宽带信号来波方向
% snapshot-快拍数
% fc-中心频率
% Bw-信号带宽,码速率
% fs-信号采样率
% distance-阵元间距
% snr-信噪比
% Output
% X_sig_t-阵列时域接收数据
%% 参数选择
K=length(doa); % 信号个数
t=(0:snapshot-1)/fs; % 时间轴
c=1500;
%% 第一个阵元接收时域数据
Sig_modulate=zeros(K,snapshot);
for k=1:K
% 理想低通滤波
temp=zeros(1,length(t)*Bw/fs);
temp(1)=1;
lpf_i=interpft(temp,length(t))*Bw/fs; % 冲击响应
% 产生时域信号
Sig_gaussian_write_noise=1/sqrt(2)*(randn(1,snapshot)+1i*randn(1,snapshot));
% 频域滤波
f_lpf=fft(lpf_i);
f_sig=fft(Sig_gaussian_write_noise);
Sig_filter_out=ifft(f_lpf.*f_sig);
% 时域调制到载波
Sig_modulate(k,:)=Sig_filter_out.*exp(1i*2*pi*fc*t);
end
%% 叠加产生噪声,产生阵列实际接收数据
X=zeros(array_number,snapshot);
m=0:array_number-1;
f=fftshift((-1/2:1/snapshot:1/2-1/snapshot)*fs);
for k = 1:K
Fx0 = fft(Sig_modulate(k,:).',snapshot).';
SV = exp(-1i*2*pi*distance*m.'*f*sin(pi/180*doa(k))/c);
Fx = SV.*(ones(array_number,1)*Fx0);
X0 = ifft(Fx.').';
adj = sqrt(10^(snr/10)/((1/snapshot*X0(1,:)*X0(1,:)')/2));
X = X+adj*X0;
end
AddNoise=randn(array_number,snapshot)+1i*randn(array_number,snapshot);
X_sig_t=X+AddNoise;
function X_sig_t=generateWB_T(array_number,doa,snapshot,fc,Bw,fs,distance,snr)
% Input
% array_number-阵元数
% doa-宽带信号来波方向
% snapshot-快拍数
% fc-中心频率
% Bw-信号带宽,码速率
% fs-信号采样率
% distance-阵元间距
% snr-信噪比
% Output
% X_sig_t-阵列时域接收数据
%% 参数选择
K=length(doa); % 信号个数
t=(0:snapshot-1)/fs; % 时间轴
c=1500;
%% 第一个阵元接收时域数据
Sig_modulate=zeros(K,snapshot);
for k=1:K
% 理想低通滤波
temp=zeros(1,length(t)*Bw/fs);
temp(1)=1;
lpf_i=interpft(temp,length(t))*Bw/fs; % 冲击响应
% 产生时域信号
Sig_gaussian_write_noise=1/sqrt(2)*(randn(1,snapshot)+1i*randn(1,snapshot));
% 频域滤波
f_lpf=fft(lpf_i);
f_sig=fft(Sig_gaussian_write_noise);
Sig_filter_out=ifft(f_lpf.*f_sig);
% 时域调制到载波
Sig_modulate(k,:)=Sig_filter_out.*exp(1i*2*pi*fc*t);
end
%
generateWB_T_widebandsignal_宽带白噪声_信号生成仿真_宽带信号源_阵列信号仿真_
版权申诉
5星 · 超过95%的资源 9 浏览量
2021-10-03
14:04:25
上传
评论 3
收藏 1KB ZIP 举报
周玉坤举重
- 粉丝: 62
- 资源: 4780
最新资源
- 基于yolov8的人体动作识别检测项目源码.zip
- 自然语言处理大作业-python的汉语词义自动消歧系统源码+报告.zip
- MT管理器_2.15.3-会员功能解锁.apk
- 基于机器学习的共享单车使用量分析与预测
- 基于Python开发的汉语词义自动消歧系统源码+超详细注释+实验报告(95分以上).zip
- 51单片机汇编语言音乐盒+电子琴,proteus仿真运行正常,开发板实物运行正常 代码都带有注释,方便理解和学习
- Python项目之django疫情数据可视化分析系统(源码 + 说明文档)
- Python项目之django-新生入学管理系统(源码 + 说明文档)
- Flutter积分或金币领取动画
- Python项目之django新生报到服务管理系统(源码 + 说明文档)
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈