程序设计七:极坐标转换

一:需求分析

​ 在数学中,极坐标系是一个二维坐标系统。该坐标系统中的点由一个夹角和一段相对中心点——极点(相当于我们较为熟知的直角坐标系中的原点)的距离来表示。极坐标系的应用领域十分广泛,包括数学、物理、工程、航海以及机器人领域。在两点间的关系用夹角和距离很容易表示时,极坐标系便显得尤为有用;而在平面直角坐标系中,这样的关系就只能使用三角函数来表示。对于很多类型的曲线,极坐标方程是最简单的表达形式,甚至对于某些曲线来说,只有极坐标方程能够表示。

wavtxtifft -i fft.txt -o polor.txt

二:参考知识

1.本地.txt信息

fft_BAC009S0003W0121.txt BAC009S0003W0121.wav语音进行FFT变换后的取值

2.坐标转换后

fft_polar.txt 是fft_BAC009S0003W0121.txt复数转换为极坐标输出(半径 角度)

三:python代码

求取半径

r=y2+x2r=\sqrt{y^{2}+x^{2}} r=y2+x2​

r = np.sqrt(complex_real ** 2 + complex_imag ** 2)

求取角度
tan⁡θ=yx\tan \theta=\frac{y}{x} tanθ=xy​

angle = np.arctan(complex_imag / complex_real )  # 默认产生的是弧度
angle = angle * (180 / np.pi)  # 弧度转换为角度

完整代码

holiday07.py
import numpy as np
import sys
import getopt
'''
将复数形式的FFT数据转换为极坐标形式
'''
def main(argv):try:opts, args = getopt.getopt(argv, "-h-i:-o:", ["help", "input=", "output="])except getopt.GetoptError:print('将读取到的FFT数据,转换为极坐标形式')print('python holiday07.py -i fft_BAC009S0003W0121.txt -o fft_polar.txt')sys.exit(2)# 处理 返回值options是以元组为元素的列表。for opt, arg in opts:if opt in ("-h", "--help"):print("音频数据转换到极坐标")print('将读取到的FFT数据,转换为极坐标形式')print('python holiday07.py -i fft_BAC009S0003W0121.txt -o fft_polar.txt')sys.exit()elif opt in ("-i", "--input"):input = argelif opt in ("-o", "--output"):output = arg# fft_BAC009S0003W0121.txtcomplex_array = np.loadtxt(input, dtype=np.complex)length = len(complex_array)  # 求Nfile = open(output, 'w')for index in range(length):complex_real = np.real(complex_array[index])complex_imag = np.imag(complex_array[index])r = np.sqrt(complex_real ** 2 + complex_imag ** 2)angle = np.arctan(complex_imag / complex_real )  # 默认产生的是弧度angle = angle * (180 / np.pi)  # 弧度转换为角度# angle = np.arctan(complex_imag / complex_real )s = '(' + str(r) + ' ' + str(angle) + ')' + '\n'file.write(s)file.close()if __name__ == "__main__":# sys.argv[1:]为要处理的参数列表,sys.argv[0]为脚本名,所以用sys.argv[1:]过滤掉脚本名。main(sys.argv[1:])#python holiday07.py -i fft_BAC009S0003W0121.txt -o fft_polar.txt

四:实现结果

1.请求帮助

python holiday07.py -h
音频数据转换到极坐标
将读取到的FFT数据,转换为极坐标形式
python holiday07.py -i fft_BAC009S0003W0121.txt -o fft_polar.txt

2.极坐标转换

  • -i 输入FFT数据
  • -o 极坐标数据
python holiday07.py -i fft_BAC009S0003W0121.txt -o fft_polar.txt

五:结果显示及分析

1.结果显示

fft_polar.txt 是fft_BAC009S0003W0121.txt复数转换为极坐标输出(半径 角度)

2.结果比对

根据公式可以反算出原始数据,以其中第二行数据(384.47795984237615 -46.14453170047742)为例
x=ρcos⁡θx=\rho \cos \theta x=ρcosθ

y=ρsin⁡θy=\rho \sin \theta y=ρsinθ

x=384.47795984237615 *cos(-46.14453170047742)=266.38231

y=384.47795984237615*sin(-46.14453170047742)=-277.2431

原始数据为:

音频处理七:(极坐标转换)相关推荐

  1. ios kb转m_iOS 音频录音和格式转换

    1.AVAudioRecorder原生录音-参数设置压缩大小 PCM 即脉冲编码调制 (Pulse Code Modulation).在PCM 过程中,将输入的模拟信号进行采样.量化和编码,用二进制进 ...

  2. 怎么把英语视频转为音频怎么把MP4转换成mp3

    什么是音频文件呢?比如我们经常会听的音乐,现在生活节奏越来越快了,渐渐地我们都没有时间去看视频了,更多的人还是比较喜欢听音乐,这样无论是在走路,还是在地铁上,都可以享受音乐了,还有转载备考四六级的同学 ...

  3. php如何转换音频格式,音频格式如何在线转换,音频转换软件

    现在歌曲.音频的格式是五花八门,我们如果需要将各类歌曲.音频的格式统一,只能采取格式转换的方法,那么音频格式如何转换呢?音频转换软件哪个比较好呢?其实转换音频格式很简单,小编这边就有一个方法可以转换音 ...

  4. 环形文字拉直的两种方法:极坐标转换和薄板样条插值python代码示例

    目录 引言 极坐标转换 方案一: 方案二: 薄板样条插值法 引言 针对环形文字识别,通过这几天调研,一般有两种方法,一是极坐标转换:二是薄板样条插值(TPS)法. 极坐标转换 方案一: 代码来源:Se ...

  5. 怎么把英语视频转为音频 怎么把MP4转换成mp3

    什么是音频文件呢?比如我们经常会听的音乐,现在生活节奏越来越快了,渐渐地我们都没有时间去看视频了,更多的人还是比较喜欢听音乐,这样无论是在走路,还是在地铁上,都可以享受音乐了,还有转载备考四六级的同学 ...

  6. 音频amr格式怎么转换成mp3?

    昨天利用十分钟的功夫做了一个音频amr格式转换成mp3的方法讲解,这个方法一共用了四个步骤来实现将音频amr转换成MP3的操作.amr是手机录音的一种保存格式,特点是体积小,传输速度快,资源消耗量低, ...

  7. java aud 转mp3_‎App Store 上的“音频提取器 - mp3音频转换器,音视频转换”

    音频提取器,从视频中提取音频,支持多种音频.视频格式转换. - 支持从视频中提取各种音频:mp3, m4a, m4r, ogg, wav, flac, wma, aiff,aac -- - 支持音频剪 ...

  8. 音频amr格式怎么转换成mp3

    大家知道吗?在我们日常工作和生活中接触到的每一种文件都有对应的一种格式,这些不同的格式应用在特定的场景下起发挥最大的优势,为大家提供了很大的方便.很多小伙伴可能还很茫然,我们举个例子说明一下大家就知道 ...

  9. 音频格式m4a怎么转换成mp3,高效工具分享

    音频格式m4a怎么转换成mp3?因为当我们下载或是保存的音频格式为m4a时,当我们需要在汽车或是其他平台播放时,就要将音频格式m4a转换成mp3.这样做可以提高音频文件的兼容性.便携性和可用性,并且可 ...

最新文章

  1. sklearn中的RandomForestClassifier参数详解
  2. php中mvc代表什么意思,php mvc是什么意思?
  3. 洛谷P1169 棋盘制作(悬线法)
  4. CssVariables_01
  5. tableau可视化数据分析60讲(八)-tableau计算函数(重点知识)
  6. blade企业级开发平台
  7. C4C销售订单中业务伙伴的自动决定功能Partner determination procedure
  8. 前端学习(1156):let var const的区别
  9. 从决策树到xgboost(二)
  10. 数据库工作笔记018---Windows下mysql安装_服务无法启动没有报告解决
  11. python画50个图-Matplotlib如何绘制多个子图
  12. 深入浅出 Python Iterators 迭代器
  13. java 29期淘淘商城_JavaEE大型分布式电商项目 淘淘商城 29期
  14. 大数据技术原理与应用 第三版 林子雨 期末复习(一)大数据概述 第一章 P2
  15. cisco privilege权限
  16. numpy中的统计函数
  17. tk教主:个人成长_网络成长时:浏览器的故事
  18. 如何找到winRE.wim (Win10无法重置电脑找 不到恢复环境,需要重装介质)
  19. 1123: [POI2008]BLO
  20. 博弈论之海盗分金(最严谨)

热门文章

  1. 数字三角形:顺推法(一维数组)
  2. inputstream转fileinputstream对象_Java Web--Servlet--HttpServletResponse对象
  3. protobuf message定义_巧用 Protobuf 反射来优化代码,拒做 PB Boy
  4. 2021-03-15 Lp信号
  5. 2020-09-27 What is Sector-Bounded Nonlinearities?
  6. helm istio k8s docker
  7. PKUWC2019游记WC2019游记
  8. Integer.valueof(null)报错
  9. 自学Python六 爬虫基础必不可少的正则
  10. Struts2的国际化(一)-国际化资源文件的配置及国际化信息的访问