Как построить выходные данные приемника файла из GNU Radio в MATLAB? - PullRequest
0 голосов
/ 27 марта 2020

В настоящее время я пытаюсь принять сигнал, сгенерированный из GNU Radio, который поступил в приемник файла, и отобразить содержимое файла в Matlab. Из вики GNU Radio я понимаю, что выбранный мной выходной файл является сложным, то есть двоичный файл будет заполнен float32s в порядке IQIQIQ. У меня есть проблемы со стороны Matlab, чтобы представить эти данные в виде графика тепловой карты водопада. У кого-нибудь есть какие-либо рекомендации о том, как я могу это сделать?

Мой код ниже:

f = fopen('MATLAB_file', 'rb');
v = fread(f,'complex');


ChunkStart = 1;
ChunkLength = 54600*1;
% Data is read and stored in the variable 'data'
% Display the data in frequency domain, slice out only a small portions of the data
% since the total number of data is too big.
DataChunk =ddata(ChunkStart:ChunkStart+ChunkLength-1);

% Separate I value and Q value and save them into separate variable.
DataChunkI = DataChunk(1:2:length(DataChunk));
DataChunkQ = DataChunk(2:2:length(DataChunk));

% Combine the I data and Q data into an array of Complex Numbers
DataChunkComplex = DataChunkI + j*DataChunkQ;


DataChunkFFT = fftshift(fft(DataChunkComplex));
DataChunkFftdB = 20*log(abs(DataChunkFFT));

plot(DataChunkFftdB);xlim([1, length(DataChunkFftdB)]);

plot(ddata)


% display the waterfall
imagesc(waterfallResult(1:ddata/2,:));

xlabel('Time');
ylabel('Freq');
...