📄 generate_signal_data.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)
%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
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,:))));
interference_data(i-1,:) = resample(interference_data_downsampled(i-1,:), Fs, Fd);
interference_data(i-1,:) = interference_data(i-1,:) .* mywindow;
size(interference_data(i-1,:))
size(mywindow)
% 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)));
desired_data = resample(desired_data_downsampled, Fs, Fd);
desired_data = desired_data .* mywindow;
%desired_bits = (randint(Nsamples,1,[0,3]))'; %Data from the desired signal
%desired_data = Signal_Power_ABS(1, 1) *
%dmodce(desired_bits,Fd,Fs,'qask',4);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -