完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
Porject_Kiwi
离线式数字信号处理(一) 使用Matlab读取TXT数据文件并做FFT分析 在我群项目Project_Kiwi中,LTC2208的评估已经圆满完成,现在开始下一步的工作。 今天要来测试的,是使用matlab对数据进行简单处理。 因为考虑到目前FPGA到PC的数据链路仍然还没有搭建,所以暂时先搭建一个离线式测试平台。等待我们的算法逐渐完整,可以正常运行时,再来调试其到PC的链路,可能是USB,甚至可能是PCIE(先画个饼) 萌新起步,大佬勿喷。 第一步的想法是使用SD卡来存取采集的数据,使用FATFS可以迅速在各种平台移植(STM32等ARM平台),SD卡也可以存储大量的数据,随后可以接入电脑使用matlab等工具对数据进行读取并作进一步的处理。 为了测试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:OneDriveProjectMathWorks 1_helloworld_fftsin_data_dec.txt’,‘w’); %把数据写入sin_data.txt文件中,如果没有就创建该文件 for k=1:length(y_n) tb=y_n(k); fprintf(fid,‘%d’,tb); fprintf(fid,‘rn’); end fprintf(fid,‘;’); fclose(fid); 修改了一下采样频率,到40Msps,修改数据宽度到2048获取更多的采样点。图形绘制修改成plot函数,这样画出来的图会好看些。因为原本是在vivado仿真运行的,所有的数据被储存成了14位BIN格式,修改成了DEC,方便观察数据和matlab读取。而且考虑到后期我们的程序直接运行在PS内部,也不需要存储成二进制数,方便了数据处理。 程序中还使用用均值为零、方差为 1 的白噪声扰乱该信号。以此来观察FFT。 运行结果如图所示 运行得到的TXT文件如图。 好了,现在我们有了测试用的TXT文件,就可以开始运行处理程序了。 目前处理程序还非常的简陋,之后会继续往里面添加更多的东西。 %读取txt格式的波点数据到数组并绘图 %信号的参数 Fs = 40e6; % 采样频率 T = 1/Fs; % 采样周期(周期=1/频率) L = 2048; % 信号长度,2048 t = (0:L-1)*T; % 时间向量 wave_data=importdata(‘K:OneDriveProjectMathWorks 1_helloworld_fftsin_data_dec.txt’); subplot(2,1,1);plot(wave_data) ; Y = fft(wave_data); P2 = abs(Y/L); P1 = P2(1:L/2+1); P1(2:end-1) = 2*P1(2:end-1); f = Fs*(0:(L/2))/L; subplot(2,1,2);plot(f,P1) ; title(‘X(t)单边幅度频谱’); xlabel(‘f (Hz)’); ylabel(‘|P1(f)|’); 运行结果如图: 可以在单边幅度谱中看到我们刚才生成的500Hz、800Hz、5MHz的三个峰值。 以上desu。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1627 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1550 浏览 1 评论
984 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
688 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1601 浏览 2 评论
1867浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
650浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
518浏览 3评论
536浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
506浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-24 20:20 , Processed in 0.828502 second(s), Total 77, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号