当前位置: 首页 > news >正文

企业网站建设需要哪些费用北京哪里制作网站

企业网站建设需要哪些费用,北京哪里制作网站,市场营销策划方案范文,wordpress文章加音频文章目录前言一、希尔伯特变换是什么#xff1f;二、VC中的实现原理及代码示例三、用Python代码实现总结前言 在数学和信号处理中#xff0c;**希尔伯特变换#xff08;Hilbert transform#xff09;**是一个对函数产生定义域相同的函数的线性算子。 希尔伯特变换在信号处… 文章目录前言一、希尔伯特变换是什么二、VC中的实现原理及代码示例三、用Python代码实现总结前言 在数学和信号处理中**希尔伯特变换Hilbert transform**是一个对函数产生定义域相同的函数的线性算子。 希尔伯特变换在信号处理中很重要能够导出信号u(t)的解析表示。这就意味着将实信号u(t)拓展到复平面使其满足柯西黎曼方程。例如希尔伯特变换引出了傅里叶分析中给定函数的调和共轭也就是调和分析。等价地说它是奇异积分算子与傅里叶乘子的一个例子。 希尔伯特变换是以大卫·希尔伯特来命名的他首先引入了该算子来解决全纯函数的黎曼–希尔伯特问题的一个特殊情况。 一、希尔伯特变换是什么 希尔伯特变换最初只对周期函数也就是圆上的函数有定义在这种情况下它就是与希尔伯特核的卷积。然而更常见的情况下对于定义在实直线R上半平面的边界上的函数希尔伯特变换是指与柯西核卷积。希尔伯特变换与帕利-维纳定理有着密切的联系帕利-维纳定理是将上半平面内的全纯函数与实直线上的函数的傅里叶变换相联系起来的另一种结果。 二、VC中的实现原理及代码示例 VC中可以通过快速傅里叶变换FFT来实现希尔伯特变换。 以下是一个简单的C代码实现希尔伯特变换需要使用C11及以上版本的标准库。首先我们需要实现一个FFT函数然后使用FFT函数来实现希尔伯特变换。 #include iostream #include cmath #include complex #include vectorusing namespace std;typedef complexdouble Complex; typedef vectorComplex ComplexVector;// 快速傅里叶变换 void fft(ComplexVector data) {int n data.size();if (n 1) {return;}// 分离偶数项和奇数项ComplexVector even(n/2), odd(n/2);for (int i 0; i n; i 2) {even[i/2] data[i];odd[i/2] data[i1];}// 递归计算偶数项和奇数项的FFTfft(even);fft(odd);// 计算每个k点的DFTfor (int k 0; k n/2; k) {Complex t polar(1.0, -2 * M_PI * k / n) * odd[k];data[k] even[k] t;data[kn/2] even[k] - t;} }// 希尔伯特变换 void hilbertTransform(ComplexVector signal) {int n signal.size();// 扩展信号长度至2的幂次方int n2 1;while (n2 n) {n2 * 2;}signal.resize(n2);// 进行FFT变换fft(signal);// 对FFT结果进行处理for (int i 1; i n; i) {signal[i] * 2;}for (int i n; i n2; i) {signal[i] 0;}signal[0] 1;signal[n] 0;// 反向FFT变换fft(signal);for (int i 0; i n; i) {signal[i] signal[i].imag() / n;} }int main() {ComplexVector signal {1, 2, 3, 4, 5, 6, 7, 8};hilbertTransform(signal);// 输出结果for (int i 0; i signal.size(); i) {cout signal[i] ;}cout endl;return 0; }上述代码中我们首先实现了一个快速傅里叶变换函数fft然后在hilbertTransform函数中使用FFT计算希尔伯特变换。在希尔伯特变换的计算过程中我们首先对信号进行了长度的扩展然后进行了FFT变换接着根据希尔伯特变换的公式进行了FFT结果的处理最后进行反向FFT变换得到最终的希尔伯特变换结果。 在上述代码中我们使用了复数类型complex和向量类型vector来方便地处理信号和FFT结果。在实际应用中我们可以将输入信号读取自文件或者从实时采集的数据中获取然后调用hilbertTransform函数进行希尔伯特变换得到变换后的信号。 三、用Python代码实现 使用Python也可以方便地实现希尔伯特变换。下面是一个使用numpy库实现希尔伯特变换的示例代码 import numpy as npdef hilbert_transform(signal):计算希尔伯特变换n len(signal)# 扩展信号长度至2的幂次方n2 1while n2 n:n2 * 2signal np.append(signal, np.zeros(n2 - n))# 进行FFT变换spectrum np.fft.fft(signal)# 对FFT结果进行处理spectrum[1:n] * 2spectrum[n:] 0spectrum[0] 1spectrum[n] 0# 反向FFT变换hilbert np.real(np.fft.ifft(spectrum))hilbert hilbert[:n]return hilbertif __name__ __main__:signal [1, 2, 3, 4, 5, 6, 7, 8]hilbert hilbert_transform(signal)# 输出结果print(hilbert)上述代码中我们首先将输入信号扩展至2的幂次方长度然后使用numpy.fft.fft函数进行FFT变换对FFT结果进行处理最后使用numpy.fft.ifft函数进行反向FFT变换得到希尔伯特变换结果。 需要注意的是由于numpy.fft.fft函数返回的结果是按照FFT变换的频率从小到大排列的而希尔伯特变换则是在时域上进行的因此我们需要对FFT结果进行一定的处理才能得到正确的希尔伯特变换结果。在上述代码中我们对FFT结果进行了一系列处理包括将非零频率部分的幅度乘以2将非零频率部分之外的频率置零以及将直流分量和Nyquist频率分量的值分别设为1和0从而得到正确的希尔伯特变换结果。 总结 在实际应用中我们可能需要对信号进行预处理和后处理以得到更好的变换结果。另外由于FFT算法的复杂度为O(NlogN)在处理大规模的信号时可能会带来一定的计算负担需要进行优化或者使用更高效的算法。 希望对看到的小伙伴有帮助。
http://www.hkea.cn/news/14471498/

相关文章:

  • 有哪些网站可以做微商网站模板免费下载php
  • 如何创建私人网站北京公司做网站
  • 站长广告联盟平台网站备案查询背景布
  • 医院网站建设合同范本石家庄网站制作软件
  • 贵阳哪些公司建网站国内营销策划咨询公司
  • 网站建设发信息汕头市作风建设的网站
  • 微网站 杭州网站开发步骤说明书是什么
  • 泉州建设工程质量网站石家庄手机建网站
  • 商用营销型网站建设自助网站建设厦门网站制作
  • 邯郸做网站哪里好广州网站排名优化开发
  • 网站建设的域名高校网站群建设的公司有哪些
  • 黄山网站设计做油漆稀料用哪个网站
  • 免费网站维护什么网站可以做电影投资
  • 长春学校网站建设方案咨询网站有了如何做推广
  • 在淘宝做印刷网站怎么办厦门易尔通网站建设好吗
  • 山东泰安特产外贸seo网站推广
  • 长沙网站制作建设文章优化关键词排名
  • 做彩票网站空间去哪买北京网站建设公司代理
  • 建设钓鱼网站源码注册公司流程时间
  • dw做的网站怎么在vs凡科轻站
  • 北京 建网站广州商务网站建设电话
  • seo教程培训深圳专业seo外包
  • 建站软件排行榜济宁市城市建设投资中心网站
  • 如何在网站中做公示信息成都网站建设 四川冠辰科技
  • 网站设置首页连接分类页的视频教程不要轻易注册一家公司
  • 中山做网站iis搭建网站怎么做前端
  • 做微网站平台室内设计课程
  • 门户网站建设 知乎如何做交易网站
  • 同城做推广哪个网站好网站推广策划的策略
  • 阿狸网站建设绍兴做网站的公司