有没有一个能把一些差距很大的数据进行缩小差距的方法

飛饵 2018-08-02 03:15:29
比如有一组数A{52,43,21,62,12,3,1,2,6,7,10,76,73,59}。
按顺序只取A中的1,3,4,6,9,11,13元素得到B{52,21,62,3,6,10,73},这部分数用柱状图表示出来,可以看到高低差距悬殊。那有什么方法能缩小他们之间的差距,让它们看起来比较“平均”?
并且,假设A数组是用来反映某种事物的状态变化,而实际中只能取部分数来用,如果直接取B数组里的那肯定不能真是反映真实的情况。那么又要用什么方法通过部分数值来反应真实的情况呢?

最近用STM32做音乐频谱,FFT后发现高低频信号的幅值相差太大了,高频信号显示不出来。用过对数谱,求对数后噪声信号被放大太多了,没信号时都是噪声的频谱。所以另外找个方法。
...全文
2760 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
首先,信号处理领域,频谱一般都喜欢用对数轴。对数轴比较出来的dB数是准确的。用自然轴,高低差别超级剧烈。

其次,做显示的采样信号,建议用均值平滑一下。不过用对数就OK了。
飛饵 2018-08-05
  • 打赏
  • 举报
回复
引用 8 楼 u011062336 的回复:
第一个问题:滤波,或者设置阀值,高出或低于阀值,丢掉
第二个问题:采样
第二个问题,现在就是单纯采样抽部分出来用,因为部分数据没用到导致效果不好。在想能用什么方法把没用的的用上?
初见_寻常 2018-08-04
  • 打赏
  • 举报
回复
第一个问题:滤波,或者设置阀值,高出或低于阀值,丢掉
第二个问题:采样
老马何以识途 2018-08-03
  • 打赏
  • 举报
回复
樓上都很專業
  • 打赏
  • 举报
回复
求算术平均值
求标准方差
对每个数据,如果它与算术平均值的差的绝对值大于标准方差,则舍弃该数据
剩下的就是比较典型的数据
灌水号 2018-08-03
  • 打赏
  • 举报
回复
集体取log运算。。或者其实缩小的运算。
老马何以识途 2018-08-03
  • 打赏
  • 举报
回复
相差太大的本來就是有噪音吧,那保留下來才能不失真?
如果僅僅是爲了曲綫圖/柱狀圖看起來比較平滑,統一加一個數就可以了,但你確認這是你要的東西?
飛饵 2018-08-03
  • 打赏
  • 举报
回复
引用 3 楼 hzy_76 的回复:
相差太大的本來就是有噪音吧,那保留下來才能不失真?
如果僅僅是爲了曲綫圖/柱狀圖看起來比較平滑,統一加一個數就可以了,但你確認這是你要的東西?


引用 5 楼 DelphiGuy 的回复:
求算术平均值
求标准方差
对每个数据,如果它与算术平均值的差的绝对值大于标准方差,则舍弃该数据
剩下的就是比较典型的数据
对于第二个问题我看到一个方法是这么说的“采样点1024,转换后有1024个频率点,如果我们仅用到128个频率点,其它没用到的怎么办?
不显示的话,完全表现不出真实的频谱,这个时候就得需要一种简单的加权算法,把其它没有用到的做一个加权处理,叠加到频率点上面”,这个怎么理解?
飛饵 2018-08-02
  • 打赏
  • 举报
回复
引用 1 楼 hzy_76 的回复:
不要抽取,假設每隔3個數做一個柱子,應該是這3個數做一個平均,曲綫就會更平滑和接近實際。
是做算术平均还是加权平均?我看有些说要加权。还有幅值相差太大怎么解决呢?
老马何以识途 2018-08-02
  • 打赏
  • 举报
回复
不要抽取,假設每隔3個數做一個柱子,應該是這3個數做一個平均,曲綫就會更平滑和接近實際。

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧