博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数据量化与频域分析
阅读量:6185 次
发布时间:2019-06-21

本文共 1585 字,大约阅读时间需要 5 分钟。

作者:桂。

时间:2017-03-24  18:46:24

链接: 

声明:欢迎被转载,不过记得注明出处哦~


 

前言

本文的应用背景是:对序列信号进行频域变换,从而估计频率。但在信号处理中,通常需要对数据进行量化,以此减少量化位数从而减少数据量,另外在进行频域变换时,对频域的旋转矩阵进行量化,同样可以减少数据量。本文对应的专业术语:MonoDFT、单比特。全文主要分为:

  1)数据的量化;

  2)傅里叶旋转矩阵量化;

之前朋友问我这个问题,觉得也算一种减少数据运算量的粗糙方式,记录在此。

 

一、数据的量化

对采样的数据进行量化,量化位数可以根据需求选定,正常数据量过大的话对于高频采样难以保证精度,此处以单比特为例。即$s_{quan} = sign(s)$。

以采样率为$40Hz$为例,频率为8的信号,对比采样信号与单比特量化后的信号:

可以看出尽管由于单比特后信号成方波状,引入谐波分量误差以及其他频率的杂波,但如果仅仅为了测频——找到峰值点,则仍然是有效的。

 

二、旋转矩阵的量化

该测频方法有专业术语:MonoDFT.

即对矩阵W进行量化:

其实W对应在频率圆周上采样:

量化以后可以简化运算(比如只用加减),具体不详细讨论,给出量化示意图,以W量化成4个不同取值为例:

以8HZ信号进行频率估计:

可以看出虽然引入误差,但在信噪比合适的情况下,处理后的数据完全足以估计信号频率。

但由于误差的引入,只能对单个信号较为有效,以两个为例:

这是两个信号,但第二个频率分量已经淹没在噪声中。

给出代码:

clc;clear all;close all;set(0,'defaultfigurecolor','w');fs = 40;f1 = 8;f2 = 3;t_end = 5;t = 0:1/fs:t_end;s1 = 0.35*sin(2*pi*f1*t);s2 = sin(2*pi*f2*t);s = s1+s2;f = t/max(t)*fs;N = length(t);%====原数据-DFTW = exp(-j*2*pi/N).^([0:N-1]'*[0:N-1]);Sori = W*s';%====单比特-DFTs1 = sign(s);Sori1 = W*s1';%====单比特+旋转因子量化flag1 = real(W)>imag(W);flag2 = real(W)>(-imag(W));W1 = flag1.*flag2;W2 = 1j*(~flag1).*flag2;W3 = -(~flag1).*(~flag2);W4 = -1j*flag1.*(~flag2);Wnew = W1+W2+W3+W4;Sori2 = Wnew*s1';%====figurefigure;subplot 321stairs(t,s,'k');grid on;xlim([0,t_end]);ylim([-2,2]);subplot 322plot(f,abs(Sori),'k');grid on;title('原始信号');subplot 323stairs(t,s1,'k');grid on;xlim([0,t_end]);ylim([-2,2]);subplot 324plot(f,abs(Sori1),'k');grid on;title('单比特量化信号');subplot 325stairs(t,s1,'k');grid on;xlim([0,t_end]);ylim([-2,2]);subplot 326plot(f,abs(Sori2),'k');grid on;title('单比特量化+矩阵量化信号');

转载于:https://www.cnblogs.com/xingshansi/p/6612973.html

你可能感兴趣的文章
基于Vue的事件响应式进度条组件
查看>>
React制作个人博客小结
查看>>
underscore 系列之如何写自己的 underscore
查看>>
王者荣耀故事站小程序(nuxt + 小程序)
查看>>
iOS-字典+block代替switch-(解决switch不能使用NSString)
查看>>
资深架构专家总结:分布式的系统核心是什么——日志
查看>>
学习笔记|AS入门(三) 布局篇
查看>>
使用 TensorFlow Extended (TFX) 在生产环境中部署机器学习 丨 Google 开发者大会 2018...
查看>>
javascript的数据结构快速学-栈和队列
查看>>
分布式事务之Spring事务与JMS事务(二)
查看>>
iOS核心动画高级技术(十三) 高效绘图
查看>>
TiDB Best Practice
查看>>
代理模式与它在源码中的运用
查看>>
数据结构与算法-自适应二叉树
查看>>
Fragment懒加载其实很简单
查看>>
分布式锁总结
查看>>
Java基础异常整理(持续更新)
查看>>
算法(三):图解广度优先搜索算法
查看>>
Vue 安装
查看>>
DOM 中的范围
查看>>