📄 generate_signal_data_cyclo.m
字号:
function [interference_data, desired_data, interference_bits, desired_bits, interference_data_downsampled, desired_data_downsampled] = ...
generate_signal_data(Nsamples, Fc, Fd, Fs, Signal_Power_ABS, Noise_Power_ABS, SignalType, SignalParam)
%plot(1-(cos(2*pi*(1:(Fs/Fd))/((Fs/Fd)*2))).^10)
mywindow2=1-(cos(2*pi*(1:(Fs/Fd))/((Fs/Fd)*2))).^10;
mywindow=[];
for i=1:Nsamples
mywindow = [mywindow mywindow2];
end
% Generate the data due to interferers
interference_data = zeros(length(Signal_Power_ABS)-1, Nsamples*Fs/Fd);
interference_bits = zeros(length(Signal_Power_ABS)-1, Nsamples);
interference_data_downsampled = zeros(length(Signal_Power_ABS)-1, Nsamples);
for i=2:length(Signal_Power_ABS) % Use this if we want frequency offsets for each interferer
interference_bits(i-1,:) = randint(Nsamples,1,[0,1]).'; % octave change
if strcmp(SignalType(i,:), 'pskmod')
disp('In pskmod')
interference_data_downsampled(i-1,:) = Signal_Power_ABS(i, i) .* pskmod(interference_bits(i-1,:),2); % octave change
% interference_data_downsampled(i-1,:) = interference_data_downsampled(i-1,:) + Noise_Power_ABS.*(randn(size(interference_data_downsampled(i-1,:))) + j*randn(size(interference_data_downsampled(i-1,:))));
for ii = 1:Nsamples interference_data(i-1, ((ii-1)*(Fs/Fd)+1):((ii)*(Fs/Fd)))=ones((Fs/Fd),1).*interference_data_downsampled(i-1,ii); end;
%interference_data(i-1,:) = resample(interference_data_downsampled(i-1,:), Fs, Fd);
%interference_data(i-1,:) = interference_data(i-1,:) .* mywindow;
elseif strcmp(SignalType(i,:), 'qammod')
disp('In qammod')
interference_bits(i-1,:) = randint(Nsamples,1,[0,3]).'; % octave change
interference_data_downsampled(i-1,:) = Signal_Power_ABS(i, i) .* qammod(interference_bits(i-1,:),4); % octave change
% interference_data_downsampled(i-1,:) = interference_data_downsampled(i-1,:) + Noise_Power_ABS.*(randn(size(interference_data_downsampled(i-1,:))) + j*randn(size(interference_data_downsampled(i-1,:))));
for ii = 1:Nsamples interference_data(i-1, ((ii-1)*(Fs/Fd)+1):((ii)*(Fs/Fd)))=ones((Fs/Fd),1).*interference_data_downsampled(i-1,ii); end;
%interference_data(i-1,:) = resample(interference_data_downsampled(i-1,:), Fs, Fd);
%interference_data(i-1,:) = interference_data(i-1,:) .* mywindow;
elseif strcmp(SignalType(i,:), 'sin ')
disp('In sin')
interference_data(i-1,:) = Signal_Power_ABS(i, i) .* exp(2*j*pi*str2double(SignalParam(i,:))*(1:(Nsamples*Fs/Fd))/Fs);
% interference_data(i-1,:) = interference_data(i-1,:) + Noise_Power_ABS.*(randn(size(interference_data(i-1,:))) + j*randn(size(interference_data(i-1,:))));
interference_data_downsampled(i-1,:) = resample(interference_data(i-1,:), Fd, Fs);
elseif strcmp(SignalType(i,:), 'cnoise')
noiser=randn(1,Nsamples*Fs/Fd);
noisei=randn(1,Nsamples*Fs/Fd);
nfilt=fir1(11,0.4); % Eleventh order lowpass filter
correlated_noise=filter(nfilt,1,noiser+j*noisei); % Correlated noise data
interference_data(i-1,:) = Signal_Power_ABS(i, i) .* correlated_noise;
interference_data_downsampled(i-1,:) = resample(interference_data(i-1,:), Fd, Fs);
end
% out_r = randint(Nsamples,1,[0,1]);
% interference_data(i-1,:) = Signal_Power_ABS(i, i) .* dmodce(out_r,Fd,Fs,'psk',2).';
% out_r = randint(Nsamples,1,[0,3]);
% interference_data(i-1,:) = Signal_Power_ABS(i, i) .* dmodce(out_r,Fd,Fs,'qask',4).';
end
% Add some noise
if(size(interference_data) ~= 0)
interference_data = interference_data;% + Noise_Power_ABS*randn(size(interference_data));
end
% Generate the data due to desired source
desired_bits = randint(1,Nsamples,[0,1]); %Data from the desired signal
desired_data_downsampled = Signal_Power_ABS(1, 1) .* pskmod(desired_bits.',2).';
desired_data_downsampled = desired_data_downsampled + Noise_Power_ABS.*(randn(size(desired_data_downsampled))+j*randn(size(desired_data_downsampled)));
%for ii = 1:Nsamples desired_data(((ii-1)*(Fs/Fd)+1):((ii)*(Fs/Fd)))=ones((Fs/Fd),1).*desired_data_downsampled(ii); end;
desired_data = resample(desired_data_downsampled, Fs, Fd, 0);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -