clear all close all %%Find USRP---------------- connectedRadios = findsdru; if strncmp(connectedRadios(1).Status, 'Success', 7) radioFound = true; switch connectedRadios(1).Platform case {'B200','B210'} address = connectedRadios(1).SerialNum; platform = connectedRadios(1).Platform; case {'N200/N210/USRP2'} address = connectedRadios(1).IPAddress; platform = 'N200/N210/USRP2'; case {'X300','X310'} address = connectedRadios(1).IPAddress; platform = connectedRadios(1).Platform; end else radioFound = false; address = '192.168.10.2'; platform = 'N200/N210/USRP2'; end %----------- %%Initialization % Set up radio object to use the found radio switch platform case {'B200','B210'} radio_tx = comm.SDRuTransmitter(... 'Platform', platform, ... 'SerialNum', address) case {'X300','X310','N300','N310','N320/N321'} radio_tx = comm.SDRuTransmitter(... 'Platform', platform, ... 'IPAddress', address) case {'N200/N210/USRP2'} radio_tx = comm.SDRuTransmitter(... 'Platform', platform, ... 'IPAddress', address); end %Parameters--------------------- radio_tx.CenterFrequency = 2.4e9; radio_tx.Gain = 50; radio_tx.InterpolationFactor = 56; radio_tx.LocalOscillatorOffset = 1000; radio_tx.MasterClockRate= 56e6; radio_tx.EnableBurstMode= false; %radio_tx.TransportDataType= 'int8'; %radio.SamplesPerFrame = 4096 ; sample_Rate= radio_tx.MasterClockRate./ radio_tx.InterpolationFactor %radio.EnableBurstMode = true; Turn on the burst mode %radio.NumFramesInBurst = 20; to avoid overload info(radio_tx) %Spectrum analyser and scope setup spectrumAnalyzer = dsp.SpectrumAnalyzer(... 'Name', 'Actual Frequency Offset',... 'Title', 'Actual Frequency Offset', ... 'SpectrumType', 'Power density',... 'FrequencySpan', 'Full', ... 'SampleRate', sample_Rate, ... 'YLimits', [-130,10],... 'SpectralAverages', 50, ... 'FrequencySpan', 'Start and stop frequencies', ... 'StartFrequency', -sample_Rate/2, ... 'StopFrequency', sample_Rate/2,... 'Position', figposition([50 30 30 40])); %-------------------------------- Scope = dsp.TimeScope(... 'SampleRate', sample_Rate, ... 'TimeSpan', 0.01, ... 'AxesScaling', 'Auto', ... 'ReduceUpdates', true, ... 'ShowLegend', true); %------------------------------------------- %Stream %------------------------------ %Creat transmitting signal--------- T=1; N=4096; Nyquist_ratio=4; f_sampling=N*T*Nyquist_ratio; t=linspace(0,T,f_sampling); txSig = exp(i*pi*N*(t.^2+0)/(T*T)); %txSig =zeros(1,length(t)); T=1; N=4096; Nyquist_ratio=4; f_sampling=N*T*Nyquist_ratio; t=linspace(0,T,f_sampling); txSig2 = exp(i*pi*N*(t+1*N/T).^2/(T*T)); %txSig =zeros(1,length(t)); %txSig3 = exp(i*pi*N*(t+2*N/T).^2/(T*T)); %txSig4 = exp(i*pi*N*(t+3*N/T).^2/(T*T)); %-------------- Real_chirp_BW= sample_Rate./Nyquist_ratio Real_T=length(txSig)./sample_Rate % Check for the status of the USRP(R) radio if radioFound while radioFound==1 radio_tx(txSig'); % radio_tx(txSig2'); % radio_tx(txSig3'); % Display received frequency spectrum. spectrumAnalyzer(txSig'); Scope(txSig'); % Compute the frequency offset. %[~, offset] = CFO(rxSig); % Print the frequency offset compensation value in MATLAB command % window. %offsetCompensationValue = -offset end %else % warning(message('sdru:sysobjdemos:MainLoop')) end % Release all System objects release(radio_tx); clear radio_tx %-----------------------