下面以雷达回波数据进行距离向FFT来进行详细讲解:
MATLAB程序:range_fft.m (可通过搜索evething搜索)
6678工程:range_fft
6678 to MATLAB的matlab程序:sig_dat_matlabread.m ,rangefft_amp_matlabread.m
下面以rangefft_amp_matlabread.m中传fft_amp(131072*1个数据)为例,若要传像sig这样的复数数据,需要分别传复数的实部和虚部,当然若只需要复数的模,CCS中可以用cabsf(单精度复数求模函数)函数来求好复数的模,再传。
1、MATLAB写dat文件
sig1 = sig.';
sig_real = real(sig1);
sig_real1 = reshape(sig_real,1,[]);
sig_imag = imag(sig1);
sig_imag1 = reshape(sig_imag,1,[]);
sig_chuan = combine(sig_real1,sig_imag1);
sig_chuan1 = reshape(sig_chuan,1,[]);
sig_chuan1 = typecast(single(sig_chuan1),'uint32'); %首先将x强制转换成single型,然后再转换成具有相同二进制形式的uint32型 这样做是为了方便dat文件存储
fid=fopen('D:\Desktop\code\DATA_6678_to_MATLAB\matlab to CCS\sig.dat','wt'); %以写文本的方式打开一个叫input_file的dat文件(如果没有会自行创建一个)
fprintf(fid,'1651 1 90000000 0 %x\n',length(sig_chuan1)); %输出文件头,文件头必须是dsp所能识别的,
%属性分别是固定标识、数据类型(十六进制)、基地址(根据你要存储在DSP什么地址处决定)、数据长度
fprintf(fid,'0x%08x\n',sig_chuan1); %输出y数组,并写到与fid标示符相同的文件
fclose(fid); %关闭fid标示符的文件。
2、debug后将鼠标放在要传输变量上面得到变量的起始地址:
3、在memeory观察窗口找到变量所在地址区域:
4、在memory出右键选择save memory,并选择一个保存dat文件的文件夹地址以及给dat文件命名,点击next
5、Format 选择32-Bit Hex-C Style或者那个32-Bit Hex-TI Style也行,并填写要传出变量的起始地址,以及变量的长度,该工程中fft_amp的起始地址为0x80D000,长度为256*512=131072个数据,点击finish即将fft_amp的131072个数传到了你指定文件夹的dat文件中
6、MATLAB读取:
clear all;
close all
clc;
fid=fopen('D:\Desktop\code\C6678\DATA\fft_amp.dat','r'); %以读的方式打开
read_data = fscanf(fid,'%x\n'); %以16进制的方式读进来
fclose(fid); %关闭文件
data = read_data(7:end); %去掉文件头,留下有用数据 如果不知道文件头占用多少个数据,可查看后再修改去掉的个数
z = typecast(uint32(data),'single'); %首先将data强制转换成uint32型,然后再转换成具有相同二进制形式的single型,这样就实现了还原
fft_amp = reshape(z,512,256); %这里注意MATLAB中的rashape函数是按列来填充元素的
fft_amp = fft_amp.';
figure('Name','距离向FFT处理后');
imagesc(fft_amp);
title('距离向FFT处理后');
xlabel('距离向(采样点)');
ylabel('方位向(采样点)');
其中fid=fopen(‘D:\Desktop\code\C6678\DATA\fft_amp.dat’,‘r’); 代码为打开dat文件,注意文件路径
注意从dat文件中读出来的数据(程序中的z矩阵)为一个1310721的数据,且后面的reshape函数也是按列来摆放数据,所以只有先将数据reshape为512256的矩阵,再给矩阵信号fft_amp转置成(256512)才会与range_fft.m 中的sig_rd矩阵信号一致,因为CCS处理回波信号矩阵的第二个数据为256512回波信号的第一行第二列的数据,所以从CCS传到MATLAB的列向量数据要进行如此操作。
参考文献:
[1] https://blog.csdn.net/HJ199404182515/article/details/60958304