首页
发现
课程
培训
文章
案例
问答
需求
服务
行家
赛事
热门搜索
发布
消息
注册
|
登录
首页
/
文章
/
详情
经典课程指导:《数字处理系统课程设计与实践》指导(2)DTMF之八 不断创新
算法工匠
8月前
浏览338
关注
本系列文章历时半年多时间才最终完稿!想到付出的辛苦程度,有时会觉得不值。毕竟自己的技术实力摆在这,却要靠写作来挣钱,是不是显得有点寒酸?好在有时会得到牛人的开悟。每个作家好像都会写一个关于为什么要写作的话题,我看过周国平先生写的这方面内容,感触很深。再看王小波写的文字,着实让我感受到了一丝心酸。理工科出身的我会同情小波的遭遇,那么聪明的人没有最后成为计算机专家有些可惜,不过成为了文坛新星也是一件大幸事,贡献了睿智就无所谓文理了。
契诃夫曾经说过,请您尽可能写一些!写、写、写,一直写断手指头为止。您偷懒,少动笔,这当然是不好的。如果您是一个名副其实的新手,无论遇到什么困难,您都不应该忘记:现在写下的每一行字都是未来的资本。如果您现在不训练自己的手和脑,使它习惯于条理性和强行军,如果你不抓紧时间鞭策自己,那么过上三四年之后,就会追悔莫及了。
大文豪都这么努力,我这种小小的工程师哪敢懈怠?那就把自己的经验和所学都写成未来的资本吧!完美的行为产生于完全的无功利之心,所以我永远到达不了完美,甚至有些俗气。一个人的自画像只有自己描述会比较准确和透彻。
进入正题!对于某些环境下的拨号音,之前的检测还是会出错。通过断点调试,发现是门限设置过高导致的检测出错。那该怎么优化程序呢?只能按照之前说的思路尝试一下啦!结果如何呢?看下面的视频吧!
本人终于将算法成形了,实用化的过程确实很考验人的耐心哦!做学问必须能随时提出新问题,解决新问题,绝不能因循守旧,固步自封。做学问必须有勇气、有耐心,看准了一个问题,就要勇往直前,衣带渐宽终不悔,不捣黄龙绝不休。在这里,我用季羡林的话与算法工程师同仁共勉。
写了这么多篇文章,很少能得到的赞。也许粉丝们压根就不在意你文章的好与坏,在意你文章是否有用。互联网上点赞是一种美德和气度。这种赞会像一颗糖,可以给写作人的生活带来甜味,带来动力。也许唯有坚持,才能获取更多的赞。每每看到网上一篇篇超过十万赞的文章,我也只能徒有羡鱼情,也会自省不足!本文为DTMF检测课程指导的收篇之作,超过六千字,包含了两个产品级算法程序,非专业人士不要付费阅读!
让我们一起看看代码吧,要注意与之前代码的差异之处哦!算法不是一蹴而就的,没有之前几篇文章的摸索和积累,不可能成就最后产品级算法的出炉。
% 把双声道的数据都加载一起,这一步很重要,一个声道高频分量多一些,一个声道低频分量多一些
% 采样率过高,不利于滤波器的设计。采样率降低到8000Hz,需要对数据进行采样率的变换。
%%% 采样率变换
% 采样率从48000Hz降低到8000Hz
fs = 8000;% 设置新的采样率 Hz
data = resample(data,fs,Fs); % 变采样率
%%% 数据归一化处理
signal = data ./ max(abs(data));
% 从时域观察,每个音长1000个采样点,大约125ms。
%%%%%%%%% 滤波器生成及滤波 %%%%%%%%%
%%% 采用FIR滤波器进行设计
%%% 每一个频率对应一个滤波器
f_H = [1209 1336 1477 1633];% 高频群
f_L = [697 770 852 941];% 低频群
f_H_1 = [0,(f_H(1)-10)/(fs/2)-0.03,(f_H(1)-10)/(fs/2),(f_H(1)+10)/(fs/2),(f_H(1)+10)/(fs/2)+0.03,1];
% 1209的频率向量
f_H_2 = [0,(f_H(2)-10)/(fs/2)-0.02,(f_H(2)-10)/(fs/2),(f_H(2)+10)/(fs/2),(f_H(2)+10)/(fs/2)+0.02,1];
% 1336的频率向量
f_H_3 = [0,(f_H(3)-10)/(fs/2)-0.02,(f_H(3)-10)/(fs/2),(f_H(3)+10)/(fs/2),(f_H(3)+10)/(fs/2)+0.02,1];
% 1477的频率向量
f_H_4 = [0,(f_H(4)-10)/(fs/2)-0.02,(f_H(4)-10)/(fs/2),(f_H(4)+10)/(fs/2),(f_H(4)+10)/(fs/2)+0.02,1];
% 1633的频率向量
f_L_1 = [0,(f_L(1)-10)/(fs/2)-0.02,(f_L(1)-10)/(fs/2),(f_L(1)+10)/(fs/2),(f_L(1)+10)/(fs/2)+0.02,1];
% 697的频率向量
f_L_2 = [0,(f_L(2)-10)/(fs/2)-0.02,(f_L(2)-10)/(fs/2),(f_L(2)+10)/(fs/2),(f_L(2)+10)/(fs/2)+0.02,1];
% 770的频率向量
f_L_3 = [0,(f_L(3)-10)/(fs/2)-0.02,(f_L(3)-10)/(fs/2),(f_L(3)+10)/(fs/2),(f_L(3)+10)/(fs/2)+0.02,1];
% 852的频率向量
f_L_4 = [0,(f_L(4)-10)/(fs/2)-0.02,(f_L(4)-10)/(fs/2),(f_L(4)+10)/(fs/2),(f_L(4)+10)/(fs/2)+0.02,1];
% 941的频率向量
m = [0 0 1 1 0 0];% 幅度向量
%%% 滤波器设计
fir_older = 91;% 滤波器阶数
fir_filter_H_1 = firpm(fir_older,f_H_1,m);% 1124-1296 / 1209
fir_filter_H_2 = firpm(fir_older,f_H_2,m);% 1250-1420 / 1336
fir_filter_H_3 = firpm(fir_older,f_H_3,m);% 1390-1562 / 1477
fir_filter_H_4 = firpm(fir_older,f_H_4,m);% 1546-1718 / 1633
来源:通信工程师专辑
登录后免费查看全文
立即登录
SolidWorks
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2025-02-09
最近编辑:8月前
算法工匠
博士后
|
高级工程师
诚信做事 认真讲课 传播知识
关注
获赞 422
粉丝 2747
文章 506
课程 40
点赞
收藏
作者推荐
可试听
锁相环在通信中的应用及MATLAB实现
¥800
5.0
立即查看
0/200
清空
提交
还没有评论
课程
培训
服务
行家
有问必答第6期-数字化产品技术与高效使用SolidWorks【直播回放】
2024趣味CAD设计实战课程:solidworks垃圾桶
solidworks 2021 新功能
深入AutoCad:20个经典案例解析
相关推荐
SolidWorks曲面设计训练营—4个典型曲面案例、装配曲面实操案例演示
电子产品设计与仿真学习月:热管理、焊接仿真、二次开发和数字孪生
SolidWorks小白速成微课教程(高校首选课程)
Solidworks参数化二次开发及其在变压器行业应用69讲
最新文章
DEEPSEEK代码生成总出错?是你根本不会用AI智能
Simulation 有限元分析(33):蹦床分析
精准投喂DeepSeek:实现SolidWorks参数化设计与仿真自动化
有限元方法中的数值技术:高斯消元法
ADINA 是怎样的应用程序?
热门文章
【工程机械】Gripper简易二爪夹持器3D数模图纸 Solidworks设计
【非标数模】零件180度翻转,机构90度旋转3D图纸 Solidworks设计
【工程机械】全自动铣床铣除浇口设备3D数模图纸 Solidworks设计 附x_t
【非标数模*众】液压动力装置设备3D模型图纸 SOLIDWORKS设计
【卡丁赛车】卡雷拉子弹头赛车模型3D图纸 Solidworks设计
其他人都在看
什么时候,采矿能像航空航天一样?
价格堪比整机,净水器滤芯为什么那么贵
校企联动:天洑与南京理工大学共育工业软件人才
产品寿命评估第一步:别猜,先明确告诉电脑什么叫‘失效’
AI-structure Copilot v0.4.1:全新交互式案例引导,带你一步步玩转智能设计
VIP会员
学习计划
福利任务
下载APP
联系我们
微信客服
联系客服
人工服务时间为周一至周五的9:30-19:30
非工作时间请在微信客服留言
客服热线:
4000-969-010
邮箱:
service@fangzhenxiu.com
地址:
北京市朝阳区莱锦创意园CN08座
帮助与反馈
返回顶部