2018年10月左右注册的CSDN账号,目的是想着可以找一些资料,经过两年的学习和积累, 2020 年 08 月 28 日发布第一篇文章《使用STM32控制220V电压——继电器》,其实第一篇文章非常简单,一张图片,10行未满的文字,当时的想法自己搞单片机,32快两年,也参加了一些比赛,但是结果都不是很好,其实自己的内心也是着急,困惑的,甚至是自我怀疑的,我真的可以学这个东西吗,我合适这个东西吗,为什么有种还没有入门的感觉。
实时上当时就是没有入门,我真的相信当时的自己是在思考的,但是,那时候的思考确实是浅显的,加上自己是着急的,很多东西都是浮在表面的,第一篇文章虽然简单,但是是自己准备重新开始,静下心来,踏踏实实学点东西,实实在在开始思考的开端。
你自己不能脱口而出的,不能提笔就写的东西,那不是你的东西!
2022年6月18日是第1024天,发布文章111篇,20万+访问量,2382个粉丝,就整个平台而言,这份数据绝对不算好,但是,在每一次看到这些增长,变化的数字,我就是感觉到愉悦,因为这个实实在在的让我觉得自己在行动,而且行动是由收获的,都说当局者迷,旁观者清,很多时候我们是很难客观的审视自己的,或许我们花了一个下午的时间在电脑前,但是这一个下午的时间的利用率如何,不是每一个人都清楚。
我的每一篇文章都是自己有所学习后写的,觉得只有实时在在的输出了,才能清清楚楚的知道自己学会了,理解了,所有这些文章真真切切的让我梳理的自己的学习所得,是我最大的收获。
让我没有想到的是这些文章获得1528次的收藏,我自己是不会轻易收藏一篇文章的,是在非常明确它对我有价值,有值得学习的点才会收藏,所有我很庆幸这些文章可以对大家有价值。
在CSDN这个平台,我记录自己的成长,收获很多对自己有用的专业知识和看到很多人的成长变化,也是在激励着我不停止进步!
当前,我已经参加工作,从事的嵌入式相关,参加工作以来,我没有停止创作,虽然不规律,但是我逐渐清晰,我越来越不会放弃记录,平常的工作是繁忙的,琐碎的,但是我还是正确在做完一些东西后总结一下自己用 什么工具,了解了什么新东西,然后梳理一下,发布出来。
在工作的同时,我也还在继续了解相关的东西,坚持学习和记录,第一是目前我对于这个行业的东西了解确实还不够,第二就是学习才是我们信心的来源。
《STM32学习之温湿度检测——DHT11》这是我自己觉得我写的最认真的一篇,但是《MATLAB:去除音频信号噪音》才是我阅读量最好的。
%读音频test,添加噪声后滤除噪声
clear;clc;
[audio,fs]=audioread('test.wav');%声音读取audio是读出数据 fs为音频文件的采样率
audio = audio(:,1); %双通道变单通道
n=length(audio);
T = 1/fs;%采样间隔
t = (0:n-1)*T;%时间轴
f = (0:n-1)/n*fs;%频率轴
%快速傅里叶变换
audio_fft=fft(audio,n)*T;
%加噪声
tt =(1:n);
noise=0.02*cos(8000*2*pi/fs*tt');%噪声
%noise=0.01*randn(n,1);%加噪声
s_noise=fft(noise,n);
abs_noise=abs(s_noise);
figure(3);
subplot(2,1,1); plot(t,noise);
xlabel('时间/s');ylabel('幅度');
title('噪声时域波形'); grid on;
subplot(2,1,2);
% plot(f(1:n-1),abs_noise(1:n-1));
plot(f,abs_noise);
title('噪声功率谱');
grid on;
s=audio+noise;%加噪声
s_fft=fft(s,n);
%设计IIR低通滤波器
rp=1; %设置通带波纹系数
rs=50; %设置阻带波纹系数
Ft=7000; %设置阻带频率
Fp=6500; %设置通带频率
Fs=20000; %设置抽样频率
wp=Fp/(Fs/2);
ws=Ft/(Fs/2); %求出待设计的模拟滤波器的边界频率
[N,wc]=buttord(wp,ws,rp,rs); %低通滤波器的阶数和截止频率
[b,a]=butter(N,wc); %S域频率响应的参数即:滤波器的传输函数
fprintf('巴特沃斯滤波器 N= %4d\n',N); %显示滤波器阶数
figure(2);
[h,w]=freqz(b,a);%低通滤波器特性
plot(w*Fs/(2*pi),20*log10(abs(h)));xlabel('f/Hz');
axis([0 10000 -50 2]);
title('IIR低通滤波器');grid on;
z=filter(b,a,s);%使用filter函数对信号进行滤波
z_fft=fft(z); %滤波后的信号频谱
figure(1);
%绘出原始音频时域波
subplot(2,3,1);plot(t,audio);
xlabel('时间/s');ylabel('幅度');
title('初始信号波形'); grid on;
%绘出原始音频频域频谱
subplot(2,3,4);
audiof = abs(audio_fft);
plot(f(1:(n-1)/2),audiof(1:(n-1)/2));
title('初始信号频谱');
xlabel('频率/Hz');
ylabel('幅度');
grid;
%绘出加噪音频时域波
subplot(2,3,2);plot(t,s);
title('加噪声后信号波形');xlabel('时间/s');ylabel('幅度');grid on;
%绘出加噪音频频域频谱
subplot(2,3,5);sf = abs(s_fft);
plot(f(1:n-1),sf(1:(n-1)));
xlabel('频率/Hz');ylabel('幅度');title('加噪声后信号信号频谱');grid on;
%绘出滤波音频时域波
subplot(2,3,3);plot(t,z);axis([ 0 10 -0.04 0.04]);
title('低通滤波后的信号波形');xlabel('时间/s');ylabel('幅度');grid on;
%绘出滤波音频频域波
subplot(2,3,6);zf = abs(z_fft);
plot(f(1:(n-1)/2),zf(1:(n-1)/2));
title('低通滤波后信号的频谱');xlabel('频率/Hz');ylabel('幅度');grid on;
audio_final = [audio;s;z];%原始语音,加噪语音,滤波语音的合成音频矩阵
sound(audio_final,fs); %播放语音
未来的工作方向还是嵌入式方式,第一是继续补充相关的基础知识;第二是对接的项目是和视觉相关,后续也会对着方向进行了解,并且坚持记录,希望这些文字和代码对大家有用。