文档库 最新最全的文档下载
当前位置:文档库 › matlab fft分析实例

matlab fft分析实例

clear all;close all;fclose all;clc;

width = 12;
fs=30.72e6;
normalization = 1;%归一化使能
Gain_en = 0 ;

%hex convert into decimal
for loop=1:2
if(loop == 1)
fid=fopen('cos.txt','rb');
else
fid=fopen('sin.txt','rb');
end
data=fscanf(fid,'%x');
fclose(fid);
for index = 1:length(data)
if(data(index)>(2^(width-1)-1))
data(index) = data(index) - 2^width;
end
end

if(loop == 1)
idata = data ;
else
qdata = data ;
end
end

%fft
complex_data = idata + 1j*qdata;
data_length = length(complex_data);
fprintf('fft data length is %d ,fs is %d\n', data_length,fs);
addwin=complex_data.*hanning(data_length);
result = abs(fftshift(fft(addwin)));
if(normalization)
result = result/max(result);
end

if(Gain_en)
result = 10*log(result);
end
scale = -fs/2:fs/data_length:(fs/2-fs/data_length);
plot(scale,result);xlabel('Freq');ylabel('Amp');title('频谱图');
disp('done');

相关文档
相关文档 最新文档