首页
开源
朋友
留言板
归档
关于
Search
1
局域网samba服务
157 阅读
2
常用软件记录
111 阅读
3
Planck-Pi通过USB虚拟网卡上网
96 阅读
4
【开源】esp32-DevKit-V1.1
95 阅读
5
树莓派安装系统以及必要配置
58 阅读
杂谈
技术
生活
开源
登录
Search
lycraft
累计撰写
18
篇文章
累计收到
0
条评论
首页
栏目
杂谈
技术
生活
开源
页面
开源
朋友
留言板
归档
关于
搜索到
3
篇与
的结果
2020-11-17
双11买的开发板,仪器,学电子的男生都感动哭了。
双11买的开发板,仪器,学电子的男生被优惠哭了。双十一买的东西终于到齐了!大概就是这些小熊派ART-PIFPGA核心板WeactSTM32H7核心板T100焊台miniDS100示波器来个小合影小熊派小熊派呢,用的微控制器是低功耗版本STM32L431RCT6。板载STLink串口二合一,开发起来还挺方便的。买来可以学下华为的lite os和NB-IOT。ART-PI这个ART-PI的MCU是STM32H750XBU6,是我手上性能最强的MCU了。打算用来学freeRTOS。这个板子我到手后还挺曲折,我本来呢 是打算点个灯。然后发现把程序烧录进去后灯都点不起来。当时我以为是硬件有问题,先去检查LED是不是好的,就直接拿GND去接下LED的阴极,红灯蓝灯都测过都是正常亮的。然后拿示波器去测限流电阻接着单片机引脚那里,看到单片机没有输出该有的波形。怀疑是单片机有问题,但程序都可以烧录进去,晶振也起振了。RTT Studio的debug我当时也不会用,不过当时已经隐约怀疑是程序烧录错地址什么的。然后去复习32的boot的3种启动方式去了。最后在官方文档里找到了,居然还有BootLoader这种东西。重新烧录了BootLoader然后把点灯程序烧录进外部flash才终于把灯点亮了。后边烧录web那个例程,发现红灯不亮了。拿万用表测了测LED的电路,发现红色LED阻值不对。引脚输出0时LED的压降不对。所以红灯不亮了。打算等方便的时候贴两个0603的LED上去。这边看下出厂固件的上手 首先是给板子配网然后Chrome输入ART-PI的IP地址接下来就看到网页了。这个板子上的资源是真的挺丰富的。等考完研了画几个拓展板,配上个屏幕做毕设的人机交互部分.还准备学下BootLoader,学会怎么样用TF卡给板子升级固件。WeAct出厂例程有四个页面。摄像头ADC测试SD读卡器测试然后这块H7的板子可以用来学下openMV吧。因为之前看到它可以烧录openMV的固件。FPGA核心板这块FPGA开发板买来还没想好怎么用,可能毕设会拿来做示波器。看看到时候毕设题目我想做啥子吧。买这个FPGA开发板主要是考研科目数电书里看到了有Verilog的内容,然后就突然想动手试试了。mini示波器DS100正点原子这个示波器。我以前买过一台汉泰的虚拟示波器,带宽可以到达250Mhz。不过实际体验下来还是感觉没有屏幕没有那么方便。最主要的是这个供电好像我的笔记本电脑USB功率有些供不起这个虚拟示波器。还要搞个额外供电才能正常工作。所以感觉还是这个DS100示波器用起来方便些。原子这个示波器说的带宽是50MHz,然后我想起来我画过一个K60板子的晶振就是50MHz的。测一下它的波形,明显看出来采样率有点不够了,暂停下的话看波形还是挺好的。玩了一会儿我就打算拆掉它看看里边的芯片型号,,于是就发生了很悲剧的事情。。我用jlink接上swd口准备看看它微控制器的型号,结果弹出来好多英文 我急得看型号就一直点OK。。然后,,它就不开机了。只看到芯片还可以检测到,但是固件好像被我搞没了。。到最后MCU是啥型号我还是不知道233好在帅气的管理员让我寄回去返厂修下。。
2020年11月17日
31 阅读
0 评论
0 点赞
2020-11-16
使用MATLAB直观地了解傅里叶变换
使用MATLAB直观地告诉你什么是傅里叶变换要了解傅里叶变换 我们先来看看它在生活中都有哪些实际应用。首先我们要知道 傅氏变换是将研究对象从时域变换到频域的时域就是这样的一个东西啦。横坐标是t时间,经过傅里叶变换以后呢,横坐标就变成f频率了。在有些场景下,时域是很难分析出我们需要的结果的,但是从频域上,就可以分析出来。就比如声音信号和图像信号。首先看声音的频谱吧声音频谱的例子我准备用软件Au来演示,它里边有个功能就是FFT(快速傅里叶变换)如图,声音的频谱中 x轴上离0点近的地方算作低频成分,随着f的增大,算是高频成分。我们知道 男生说话的声音频率比较低 所以如果给个高通滤波器,滤掉低频的男生声音部分,然后再傅里叶反变换回来,那么男生说话的声音就会被滤去。如果把低频成分向高频迁移的话,男生的声音就会变声成像女生的声音然后看图像的频谱。美颜就用到了傅里叶变换,拿磨皮来说。照片中 人脸上的痘痘其实就可以算是傅里叶变换后的高频部分了。我们滤去高频成分,剩下的就是人脸轮廓了。可以看到,通过低通滤波器滤去高频之后 图像中的细节就没有了上边三个图的MATLAB代码,摘自CSDN。% 此处代码改自https://blog.csdn.net/u012900447/article/details/53126880 clc;clear;close all; %高斯低通频域滤波 I=imread('http://www.lycraft.top/img/assassin.jpg'); subplot(1,2,1),imshow(I),title('原始图像'); I=double(I); S=fftshift(fft2(I)); [M,N]=size(S); n=2; d0=30; %GLPF滤波,d0=5,15,30(程序中以d0=30为例) n1=floor(M/2); n2=floor(N/2); for i=1:M for j=1:N d=sqrt((i-n1)^2+(j-n2)^2); h=1*exp(-1/2*(d^2/d0^2)); S(i,j)=h*S(i,j); end end S=ifftshift(S); S=uint8(real(ifft2(S))); subplot(1,2,2),imshow(S),title('高斯低通滤波图像'); %巴特沃斯低通频域滤波 I=imread('http://www.lycraft.top/img/assassin.jpg'); figure(2) subplot(1,2,1),imshow(I),title('原始图像'); F=double(I); % 数据类型转换,MATLAB不支持图像的无符号整型的计算 G=fft2(F); % 傅立叶变换 G=fftshift(G); % 转换数据矩阵 [M,N]=size(G); nn=2; % 二阶巴特沃斯(Butterworth)低通滤波器 d0=30; %截止频率为30 m=fix(M/2); n=fix(N/2); for i=1:M for j=1:N d=sqrt((i-m)^2+(j-n)^2); h=1/(1+0.414*(d/d0)^(2*nn)); % 计算低通滤波器传递函数 result(i,j)=h*G(i,j); end end result=ifftshift(result); Y2=ifft2(result); Y3=uint8(real(Y2)); subplot(1,2,2),imshow(Y3),title('巴特沃斯低通滤波') %巴特沃斯高通频域滤波 I=imread('http://www.lycraft.top/img/assassin.jpg'); figure(3) subplot(1,2,1),imshow(I); title('原始图像'); F=double(I);% 数据类型转换,MATLAB不支持图像的无符号整型的计算 G=fft2(F);% 傅立叶变换 G=fftshift(G);%转换数据矩阵 [M,N]=size(G); nn=2;% 二阶巴特沃斯(Butterworth)高通滤波器 d0=30; m=fix(M/2);n=fix(N/2); for i=1:M for j=1:N d=sqrt((i-m)^2+(j-n)^2); if (d==0) h=0; else h=1/(1+0.414*(d0/d)^(2*nn));% 计算传递函数 end result(i,j)=h*G(i,j); end end result=ifftshift(result); J2=ifft2(result); J3=uint8(real(J2)); subplot(1,2,2);imshow(J3); title('巴特沃斯高通滤波后图像'); % 滤波后图像显示 现在我们把两个正弦波合成以后,再把它进行傅里叶变换看看结果!现在搞清楚了,感觉还是使用图像的方式最容易理解先贴上MATLAB的代码%% 清除缓存 clc;close all;clear; %% init Fs = 1000; %采样频率 t = 0:1/Fs:1; %从0时刻到1时刻采样1000次 L = length(t); %信号长度 %% 建立正弦信号 s1 = sin(2*pi*50*t); subplot(5,1,1);plot(100*t(1:100),s1(1:100)); title('s1 = sin(2*pi*50*t)');xlabel('t(ms)');ylabel('s1'); s2 = sin(2*pi*150*t); subplot(5,1,2);plot(100*t(1:100),s2(1:100)); title('s2 = sin(2*pi*150*t)');xlabel('t(ms)');ylabel('s2'); s12 = s1 + s2; subplot(5,1,3);plot(100*t(1:100),s12(1:100)); title('s1+s2');xlabel('t(ms)');ylabel('s12'); %% 加入高斯噪声 s123 = s12 + randn(size(t)); subplot(5,1,4);plot(100*t(1:100),s123(1:100)); title('加入高斯白噪声后的两正弦函数相加'); %% 进行傅里叶变换 S1 = fft(s123); n = 2^nextpow2(L); S2 = abs(S1); f = 0:1:(L-1); subplot(5,1,5);plot(f(1:300),S2(1:300)); title('将带高斯噪声的两正弦函数相加的波形进行傅里叶变换') xlabel('f(hz)')这段代码就是两个正弦波s1和s2.(s1的频率为50hz,s2的频率为150hz。)s12就是s1和s2波形的相加。然后再在s12波形中加入高斯白噪声形成波形s123。然后对带有高斯白噪声的波形s123进行傅里叶变换最后得到波形S2.这是可以看到经过傅里叶变换后的图形上边的50hz和150hz就是s1和s2的频率了。我们在s123中是很难看出原本的波形成分的,但是经过傅里叶变换后的图形,我们就很容易看出原本的波形频率信息。所以在一些场景下,频域比时域更适合进行研究。
2020年11月16日
37 阅读
0 评论
0 点赞
2020-10-15
一个新的开始
之前的文章意外删除辽说来着实有点滑稽。之前是用的WordPress搭的博客然后对当时为了装个编译环境,install了一下mariadb。结果MySQL就出问题访问不进去了然后我的WordPress就挂掉了。当时我决定重新搭建,然后把整个WordPress根目录做了个备份重新搭好后发现还是找不到以前的博客,才知道,文章都是存在MySQL里边的。shit!
2020年10月15日
30 阅读
0 评论
0 点赞