这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » FPGA » Matlab 设计数据的导出

共1条 1/1 1 跳转至

Matlab 设计数据的导出

工程师
2014-12-08 19:50:22     打赏

                                                   Matlab 设计数据的导出


% $          Date:   6/11/2009        整理:  eyes417      $
%##################################################################


%


%   FILE :  input_moudle.m


%#此前在首页部分显示#


%   TITLE:  Matlab导出模拟波形用于CCS仿真


%


%##################################################################


 


close all;                     %先关闭所有图片
Adc = 1.25;                    %直流分量幅度
A1 = 1;                        %频率F1信号的幅度
A2 = 0.25;                     %频率F2信号的幅度
F1 = 100;                      %信号1频率(Hz)
F2 = 1000;                     %信号2频率(Hz)
Fs = 5120;                     %采样频率(Hz)
%P1 = -30;                     %信号1相位(度)
%P2 = 90;                      %信号相位(度)
N = 256;                       %采样点数
t = [0 : 1/Fs : N/Fs];         %采样时刻


 


%生成信号
%S=Adc+A1*cos(2*pi*F1*t+pi*P1/180)+A2*cos(2*pi*F2*t+pi*P2/180);      %考虑相位
signal1=A1*sin(2*pi*F1*t);
signal2=A2*sin(2*pi*F2*t);
S=A1*sin(2*pi*F1*t)+A2*sin(2*pi*F2*t);
%S=Adc+A1*sin(2*pi*F1*t)+A2*sin(2*pi*F2*t);



%显示原始信号
plot(S);
title('原始信号');


 


%显示原始的FFT模值结果


figure;
Y = fft(S,N);            %做FFT变换
Ayy = (abs(Y));          %abs--求绝对值----取模
plot(Ayy(1:N));          %显示原始的FFT模值结果
title('FFT 模值');


 


%幅度-频率曲线图-显示换算后的FFT模值结果--实际值


figure;
Ayy = Ayy / (N / 2);                    %换算成实际的幅度
%Ayy(1) = Ayy(1) / 2;                   %直流分量的幅值
F = ([1:N] - 1) * Fs / N;               %换算成实际的频率值
plot(F(1:N/2), Ayy(1:N/2));             %显示换算后的FFT模值结果
title('幅度-频率曲线图');


 


%相位-频率曲线图


figure;
Pyy = [1 : N/2];
for i = 1 : N/2
Pyy(i) = phase(Y(i));                %计算相位
Pyy(i) = Pyy(i) * 180 / pi;          %换算为角度
end;
plot(F(1 : N/2), Pyy(1 : N/2));      %显示相位图
title('相位-频率曲线图');


 


%数据导出部分
xout=S/max(S);                                 %归一化--(x-min)/(max-min)
xto_ccs=round(32767*xout)                      %Q15格式


fid=fopen('input_moudle.dat','w');             %创建input文件,写操作
fprintf(fid,'1651 1 0 0 0\n');                 %输出文件头
fprintf(fid,'%d\n',xto_ccs);                   %格式化输入数据到文件
fclose(fid);


 


                                             编译后用MATLAB看到的图形


                                                              生成的波形



                                                                  频谱图





                                 


                             fopen 格式参数说明




共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]