离线式数字信号处理(一) |
您所在的位置:网站首页 › 用matlab画频谱波形 › 离线式数字信号处理(一) |
Porject_Kiwi
离线式数字信号处理(一)
使用Matlab读取TXT数据文件并做FFT分析
在我群项目Project_Kiwi中,LTC2208的评估已经圆满完成,现在开始下一步的工作。 今天要来测试的,是使用matlab对数据进行简单处理。 萌新起步,大佬勿喷。 第一步的想法是使用SD卡来存取采集的数据,使用FATFS可以迅速在各种平台移植(STM32等ARM平台),SD卡也可以存储大量的数据,随后可以接入电脑使用matlab等工具对数据进行读取并作进一步的处理。 SD卡 STM32, FPGA PC为了测试matlab程序,我们需要先生成一个.txt文件,STM32的程序已经叫学弟在写了,我们先用Matlab生成一个先跑着。(学弟好像还在调车) 我的程序基于这位大佬的程序进行轻微修改 %=============设置系统参数==============% f1=5e6; %设置波形频率 f2=500e3; f3=800e3; Fs=40e6; %设置采样频率 L=2048; %数据长度 N=8; %数据位宽 %=============产生输入信号==============% t=0:1/Fs:(1/Fs)*(L-1); y1=sin(2*pi*f1*t); y2=sin(2*pi*f2*t); y3=sin(2*pi*f3*t); y4=y1+y2+y3; y5 = y4 + 1*randn(size(t)); y_n=round(y5*(2^(N-3)-1)); %N比特量化;如果有n个信号相加,则设置(N-n) %=================画图==================% a=10; %改变系数可以调整显示周期 %stem(t,y_n); plot(t,y_n); axis([0 L/Fs/a -2^N 2^N]); %显示 %=============写入外部文件==============% fid=fopen('D:\OneDrive\Project\MathWorks\01_helloworld_fft\sin_data_dec.txt','w'); %把数据写入sin_data.txt文件中,如果没有就创建该文件 for k=1:length(y_n) tb=y_n(k); fprintf(fid,'%d',tb); fprintf(fid,'\r\n'); end fprintf(fid,';'); fclose(fid);修改了一下采样频率,到40Msps,修改数据宽度到2048获取更多的采样点。图形绘制修改成plot函数,这样画出来的图会好看些。因为原本是在vivado仿真运行的,所有的数据被储存成了14位BIN格式,修改成了DEC,方便观察数据和matlab读取。而且考虑到后期我们的程序直接运行在PS内部,也不需要存储成二进制数,方便了数据处理。 程序中还使用用均值为零、方差为 1 的白噪声扰乱该信号。以此来观察FFT。 运行结果如图所示 运行结果如图: |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |