最新文章用FFT进行谱分析-MATLAB知识学习
一、谱分析概念信号的谱分析就是计算信号的频谱(信号的傅里叶变换),通过信号研究分析信号特性。信号频谱是连续的,不能用数字信号处理方法计算,按频域采样定理,序列的DFT完整反映了频谱信息,所以可以通过DFT进行谱分析。
二 DFT对离散序列进行谱分析2.1 非周期序列进行谱分析傅里叶变换定义:
X(e^{jw}) = FT[x(n)]=\sum_{n=0}^{N-1}x(n)e^{-jwn}DFT定义:
X(k)=DFT[x(n)]=\sum_{n=0}^{N-1}x(n)e^{-j\frac{2\pi}{N}kn}(K=0,1,...,N-1)有限长序列$x(n)$的N点离散傅里叶变换$X(k)$是$x(n)$的傅里叶变换$X(e^{jw})$在一个周期上的N点等间隔采样值,DFT满足频域采样定理。由频域采样定理可知,$X(k)$包含了频谱$X(e^{jw})$的全部信息,因此,求$x(n)$的DFT就可以分析它的频谱了。即通过DFT进行谱分析。
2.2 周期序列进行谱分析以周期为N的周期序列$x(n)$进行$DFS$,以所求出的$DFS$系数作为各谐波分量的幅度形成其频谱函数:
...
24考研人还没考25考研狗已经把持不住了
24考研人还没考25考研狗已经把持不住了。近期,我校遭受考研机构进军,这才开学两周,天天都是某某考研机构的讲师某某来校讲座。发短信通知就算了,还要敲你宿舍门给你发传单,让你加某某的微信。👎🙄
我虽然知道这也是考研机构为我好,早点准备嘛,哈哈哈哈,但是是不是太早了呢。我大三的专业课啥都没学呢,你就让我准备考研,与其现在准备不如在我踏进大学门的一刻就准备考研算了。我是来上大学的,要学习大学应该学习的东西,至于以后的路怎么走,我可以选择考研也可以选择直接就业,但是我认为总是需要把大学的第二、三学期用来学习专业课。
不知道考研机构行业卷成什么样了,但是在我这里贩卖焦虑真的需要骂一骂。
时域采样和频域采样-MATLAB学习
一、采样原理和方法时域采样定理的要点是:
对模拟信号$x_a(t)$以间隔T进行时域等间隔理想采样,形成的采样信号的频谱$X(j\Omega)$是原模拟信号频谱$X_a(j\Omega)$以采样角频率${\Omega}_s=\frac{2\pi}{T}$为周期进行周期延拓。公式为:
X(j\Omega) =FT[x_a(t)]=\frac{1}{T}\sum_{n=-\infty}^{\infty}X_a(j\Omega-jn{\Omega}_s)
奈奎斯特采样定理:采样频率${\Omega}_s$必须大于等于模拟信号最高频率的两倍以上,才能使采样信号的频谱不产生频率谱混叠。
上式说明理想采样信号的傅里叶变换可用相应的采样序列的傅里叶变换得到,只要将自变量$w$用${\Omega}T$替代即可。
结论:时域采样频谱周期延拓,频域采样时域周期延拓。
二、验证采样原理2.1 时域采样定理的验证给定模拟信号,$xa(t)=Ae^{-{\alpha}t}sin({\Omega}{0}t)u(t)$,式中$A=444.128,\alpha=50\sqrt{2}\pi,\Omega_0 ...
数据清洗和准备-数据分析知识学习
一、处理缺失数据1.1 判断缺失数据缺失数据在pandas中呈现的方式有些不完美,但对于大多数用户可以保证功能正常。对于数值数据,pandas使用浮点值NaN(Not a Number)表示缺失数据。常被称为哨兵值,可以方便的检查出来:
123456789101112131415161718import pandas as pdimport numpy as npstring_data = pd.Series(["aardvark","artichoke",np.nan,"avocado"])print(string_data)print(string_data.isnull())# 结果0 aardvark1 artichoke2 NaN3 avocadodtype: object0 False1 False2 True3 Falsedtype: bool
在pandas中,我们采用了R语言中的惯用法,即将缺失值表示为NA,它表示不可用not availab ...
z 变换及离散时间 LTI 系统的 z域分析-MATLAB学习
一、有理函数z变换的部分分式展开如果信号的z域表示式$X(z)$是有理函数,设$X(z)$的有理分式表示为:
X(z)=\frac{b_{0}+b_{1}z^{-1}+b_{2}z^{-2}+{\cdots}+b_{m}z^{-m}}{1+a_{1}z^{-1}+a_{2}z^{-2}+{\cdots}+a_{n}z^{-n}}MATLAB信号处理工具箱提供了一个对$X(z)$进行部分分式展开的函数residuez,其语句格式为:
[R,P,K]=residuez(B,A)其中,B,A分别表示$X(z)$的分子与分母多项式的系数向量;R为部分分式的系数向量;P为极点向量;K为多项式的系数。若$X(z)$为有理真分式,则K为零。下面的示例演示了如何使用MATLAB命令对函数$X(z)=\frac{18}{18+3z^{-1}-4z^{-2}-z^{-3}}$进行部分分式展开,并求出其z反变换:
12345678910111213141516171819202122232425262728% 用MATLAB命令求X(z)的部分分式展开,并求其z反变换B = [18];A = [18 3 ...
二进制数据格式-数据分析知识学习
实现数据的高效二进制格式存储最简单的方法之一是使用Python内置的pickle序列化。pandas对象都有一个用于将数据以pickle格式保存到磁盘的to_pickle方法:
1234567891011121314import pandas as pdframe = pd.read_csv("examples/ex1.csv")print(frame)print("转化为二进制格式存储")frame.to_pickle("examples/frame_pickle")# 结果 a b c d message0 1 2 3 4 hello1 5 6 7 8 world2 9 10 11 12 foo转化为二进制格式存储
可以通过pickle直接读取被pickle化的数据,或是使用更为的方便的pandas.read_pickle:
12345678910111213141516···print("读取pickle文件")result = pd ...
系统响应及系统稳定性-MATLAB学习
一、离散时间系统的响应离散时间LTI系统可用线性常系数差分方程来描述,即:
\sum^{N}_{i=0}{a_{i}y(n-1)} = \sum_{j=0}^{M}{b_{j}x(n-j)}其中,$a_i(i=0,1,2,…,N)$和$b_i(i=0,1,2,…,M)$为实常数。
MATLAB中函数filter可对差分方程在指定时间范围内的输入序列所产生的响应进行求解。函数filter的语句格式为:y=filter(b,a,x),其中,x为输入的离散序列:y为输出的离散序列;y的长度与x的长度一样;b与a分别为差分方程左端与右端的系数向量。下面的示例,使用MATLAB命令绘制出当激励信号为$x(n)=(1/2)^nu(n)$时,系统$3y(n)-4y(n-1)+2y(n-2)=x(n)+2x(n-1)$的零状态响应。
1234567891011121314% 离散系统系统零状态响应a = [3 -4 2];b = [1 2];n = 0:30;x = (1/2) .^n;y = filter(b, a, x);% 绘图stem(n, y, "fill");grid ...
基本信号的产生-MATLAB学习
在MATLAB中通常有两种方法表示信号。一种是用向量表示,另一种时用符号运算的方法来表示。用MATLAB语句表示出信号后,就可以利用MATLAB的绘图命令绘制出直观的信号波形。
一、连续时间信号的表示连续时间信号是指自变量的取值范围是连续的,且对于一切自变量的取值,除了有若干不连续点以外,信号都有确定的函数值与之对应。从严格意义上来讲,Matlab并不能处理连续信号,在Matlab中,是用连续信号在等时间间隔点的样值来近似地表示连续信号的,当取样时间间隔足够小时,这些离散的样值就能较好地近似出连续信号。下面,学习连续时间信号用向量或符号运算来表示的两种方法。
对于连续时间信号$f(t)$可以用两个行向量表示。第一个行向量是用来定义自变量t的,$t=t{1}:d:t{2}$其中$t_1$为初始值,$d$为步长,$t_2$为终止值。第二个行向量$f$为连续信号$f(t)$在向量$t$所定义的样值。下面的代码简单演示了$sin(t)$的产生:
1234% 用Matlab表示f(t)=sin(t),并绘制出相应波形t = -10:0.01:10;f = sin(t);plot(t,f);
二 ...
读写文本格式的数据-数据分析知识学习
pandas提供了一些用于将表格型数据读取为DataFrame对象的函数。下表对其进行了总结,其中read_csv和read_table可能是今后用的最多的。
以上函数的选项可以划分为以下几个大类:
索引:将一个或多个列当作返回的DataFrame处理,以及是否从文件、用户获取列名;
类型推断和数据转换:包括用户定义值的转换、和自定义的缺失值标记列表等;
日期解析:包括组合功能,比如将分散在多个列中的日期时间信息组合成结果中的单个列;
迭代:支持对大文件进行逐块迭代;
不规整数据问题:跳过一些行、页脚、注释或其他一些不重要东西(比如由成千上万个都好隔开的数值数据)。
下面将简单的介绍这些函数将文本数据转换为DataFrame时所用的技术。由于工作中实际碰到的数据可能十分混乱,一些数据加载函数(尤其是read_csv)的选项逐渐变得复杂起来。pandas文档有这些参数的例子,如果在阅读某个文件感觉很难,可以通过相似的足够多的例子找到正确的参数。
其中一些函数,比如pandas.read_csv,有类型推断功能,因为列数据的类型不属于数据类型。也就是说,你不需要指定列的类型到底是数值 ...
Pandas入门(三)
这将是Pandas入门篇的最终篇了,人看麻了。
一、带有重复标签的轴索引直到目前为止,所有范例都有着唯一的轴标签(索引值)。虽然许多pandas函数(如reindex)都要求标签唯一,但这并不是强制性的。来看看下面这个简单的带有重复索引值的Series:
12345678910111213141516171819import pandas as pdobj = pd.Series(range(5), index=["a", "a", "b", "b", "c"])print("-----obj-----")print(obj)# 索引的is_unique属性可以告诉你它的值是否是唯一的print("-----obj.index.is_unique-----")print(obj.index.is_unique)# 结果-----obj-----a 0a 1b 2b 3c 4dtype: int64-----print( ...