z变换

Z变换解差分方程的思考

雨燕双飞 提交于 2020-02-28 11:08:16
问题描述 今日碰到一道差分方程的题目,如下 [ y(n + 2) - cfrac{7}{10}y(n + 1) + cfrac{1}{10}y(n) = 7x(n+2) -2 x(n + 1) ] 已知 (x(n) = left(cfrac{1}{2}right)^n u(n) , y(0) = 2, y(1) = 4​) ,求全响应。 一般求解这种题目的思路很清晰,首先根据特征方程求出特征根,从而得出零输入解的形式,但是这个时候给的条件是 (y(0)) 和 (y(1)) ,而不是 (y_{zi}(0)) 和 (y_{zi}(1)) ,这意味着此时我们不能 直接得出 零输入解的系数。这个时候我们可以求出系统的零状态响应,然后可以得出 (y_{zs}(0)) 和 (y_{zs}(1)) ,然后根据 (y_{zi}(0) = y(0) - y_{zs}(0)) , (y_{zi}(1) = y(1) - y_{zs}(1)) ,然后得出零输入响应的系数,然后将零输入响应和零状态响应相加得到全响应。 上面的思路很清晰,但是却是有点麻烦,我们可以根据 [ begin{aligned} Z{y(n + 2) } &= z^2(Y(z) - y(0) - y(1)z^{-1}) \ Z{y(n + 1) } &= z(Y(z) - y(0)) end{aligned} ] 对上面同时进行 (Z

泰勒展开,傅里叶变换,拉普拉斯变换和Z变换的物理意义

三世轮回 提交于 2020-02-21 06:32:23
Taylor展开 在数学中泰勒展开可以把一个函数f(x)展开成关于某一点的导数(0次到N次)的函数,这样就可以近似计算一个函数,得到在某点及其附近信息的近似描述。 傅里叶变换 傅里叶变换在物理学、数论、组合数学、信号处理、概率论、统计学、密码学、声学、 光学、海洋学、结构动力学等领域都有着广泛的应用,例如在信号处理中,傅里叶变换的典 型用途是将信号分解成幅值分量和频率分量,。 傅里叶变换能将满足一定条件的某个函数表示成三角函数,正弦和/或余弦函数,或者它们的积分的线性组合。在不同的研究领域,傅里叶变换具有多种不同的变体形式,如连续傅里叶变换和离散傅里叶变换。 傅里叶变换是一种解决问题的方法,一种工具,一种看待问题的角度。理解的关键是, 一个连续的信号可以看作是一个个小信号的叠加,从时域叠加或从频域叠加都可以组成原来的信号,将信号这么分解后有助于处理。 我们原来对一个信号其实是从时间的角度去理解的,不知不觉中,其实是按照时间把信号进行分割,每一部分只是一个时间点对应一个信号值,一个信号是一组这样的分量的叠加。傅里叶变换后,其实还是个叠加问题,只不过是从频率的角度去叠加,只不过每个小信号是一个时间域上覆盖整个区间的信号,但它确有固定的周期,或者说,给定一个周期我们就能画出整个区间上的分信号,那么给定一组周期值,或频率值,,我们就可以画出其对应的曲线,就像给出时域上每一点的信号值一样

Z 字形变换

自古美人都是妖i 提交于 2020-02-06 15:20:25
LeetCode 6.Z 字形变换   将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字形排列。   比如输入字符串为 “LEETCODEISHIRING” 行数为 3 时,排列如下: L C I R E T O E S I I G E D H N   之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:“LCIRETOESIIGEDHN”。   请你实现这个将字符串进行指定行数变换的函数: string convert ( string s , int numRows ) ;   示例 1: 输入 : s = "LEETCODEISHIRING" , numRows = 3 输出 : "LCIRETOESIIGEDHN"   示例 2: 输入 : s = "LEETCODEISHIRING" , numRows = 4 输出 : "LDREOEIIECIHNTSG"   解释: L D R E O E I I E C I H N T S G   打卡: char * convert ( char * s , int numRows ) { int len = strlen ( s ) ; char * arr = ( char * ) malloc ( sizeof ( char ) * ( len + 1 ) ) ; if ( numRows ==

Z 字形变换

╄→尐↘猪︶ㄣ 提交于 2020-02-06 14:51:07
LeetCode 6.Z 字形变换   将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字形排列。   比如输入字符串为 “LEETCODEISHIRING” 行数为 3 时,排列如下: L C I R E T O E S I I G E D H N   之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:“LCIRETOESIIGEDHN”。   请你实现这个将字符串进行指定行数变换的函数: string convert ( string s , int numRows ) ;   示例 1: 输入 : s = "LEETCODEISHIRING" , numRows = 3 输出 : "LCIRETOESIIGEDHN"   示例 2: 输入 : s = "LEETCODEISHIRING" , numRows = 4 输出 : "LDREOEIIECIHNTSG"   解释: L D R E O E I I E C I H N T S G   打卡: char * convert ( char * s , int numRows ) { int len = strlen ( s ) ; char * arr = ( char * ) malloc ( sizeof ( char ) * ( len + 1 ) ) ; if ( numRows ==

[LeetCode] 6. Z 字形变换

元气小坏坏 提交于 2019-12-20 13:58:11
题目链接:( https://leetcode-cn.com/problems/zigzag-conversion/ ) 题目描述: 将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字形排列。 比如输入字符串为 "LEETCODEISHIRING" 行数为 3 时,排列如下: L C I R E T O E S I I G E D H N 之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如: "LCIRETOESIIGEDHN" 。 请你实现这个将字符串进行指定行数变换的函数: string convert(string s, int numRows); 示例: 示例 1: 输入: s = "LEETCODEISHIRING", numRows = 3 输出: "LCIRETOESIIGEDHN" 示例 2: 输入: s = "LEETCODEISHIRING", numRows = 4 输出: "LDREOEIIECIHNTSG" 解释: L D R E O E I I E C I H N T S G 思路: 模拟过程 Z字形,就是两种状态,一种垂直向下,还有一种斜向上 控制好边界情况就可以了. 找规律 如上图所示,我们发现规律 每一个Z字的首字母差, numRows*2-2 位置 出去首尾两行,每个Z字有两个字母,索引号关系为,一个为 i ,另一个为

Z字形变换

拈花ヽ惹草 提交于 2019-12-20 03:20:30
将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字形排列。 比如输入字符串为 "LEETCODEISHIRING" 行数为 3 时,排列如下: L C I R E T O E S I I G E D H N 之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:"LCIRETOESIIGEDHN"。 请你实现这个将字符串进行指定行数变换的函数: string convert(string s, int numRows); 示例 1: 输入: s = "LEETCODEISHIRING", numRows = 3 输出: "LCIRETOESIIGEDHN" 示例 2: 输入: s = "LEETCODEISHIRING", numRows = 4 输出: "LDREOEIIECIHNTSG" 解释: L D R E O E I I E C I H N T S G 答案: #将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字形排列#第一行与最后一行的步长一样,所以分三步,第一行先根据步长计 算出来,# 最后一行根据步长计算出来,中间的一行或二行分开计算#最后把行数连接起来class Solution: def convert(self,s,nums): if nums == 1: return s #步长 steps = nums * 2 - 2

傅里叶变换与拉普拉斯变换的物理解释及区别

一个人想着一个人 提交于 2019-12-19 09:39:56
傅里叶变换在物理学、数论、组合数学、信号处理、概率论、统计学、密码学、声学、光学、海洋学、结构动力学等领域都有着广泛的应用(例如在信号处理中,傅里叶变换的典型用途是将信号分解成幅值分量和频率分量)。 傅里叶变换能将满足一定条件的某个函数表示成三角函数(正弦和/或余弦函数)或者它们的积分的线性组合。在不同的研究领域,傅里叶变换具有多种不同的变体形式,如连续傅里叶变换和离散傅里叶变换。 傅里叶变换是一种解决问题的方法,一种工具,一种看待问题的角度。理解的关键是:一个连续的信号可以看作是一个个小信号的叠加,从时域叠加与从频域叠加都可以组成原来的信号,将信号这么分解后有助于处理。 我们原来对一个信号其实是从时间的角度去理解的,不知不觉中,其实是按照时间把信号进行分割,每一部分只是一个时间点对应一个信号值,一个信号是一组这样的分量的叠加。傅里叶变换后,其实还是个叠加问题,只不过是从频率的角度去叠加,只不过每个小信号是一个时间域上覆盖整个区间的信号,但他确有固定的周期,或者说,给了一个周期,我们就能画出一个整个区间上的分信号,那么给定一组周期值(或频率值),我们就可以画出其对应的曲线,就像给出时域上每一点的信号值一样,不过如果信号是周期的话 ,频域的更简单,只需要几个甚至一个就可以了,时域则需要整个时间轴上每一点都映射出一个函数值。 傅里叶变换就是将一个信号的时域表示形式映射到一个频域表示形式

C++:Z 字形变换

我只是一个虾纸丫 提交于 2019-12-16 16:32:22
将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字形排列。 比如输入字符串为 "LEETCODEISHIRING" 行数为 3 时,排列如下: L C I R E T O E S I I G E D H N 之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:"LCIRETOESIIGEDHN"。 请你实现这个将字符串进行指定行数变换的函数: string convert(string s, int numRows); 示例 1: 输入: s = "LEETCODEISHIRING", numRows = 3 输出: "LCIRETOESIIGEDHN" 示例 2: 输入: s = "LEETCODEISHIRING", numRows = 4 输出: "LDREOEIIECIHNTSG" 解释: L D R E O E I I E C I H N T S G 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/zigzag-conversion 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。 class Solution { public: string convert(string s, int numRows) { int row = 0; int index = 0;

算法六Z自形变换

北城以北 提交于 2019-12-11 15:18:25
将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字形排列。 比如输入字符串为 "LEETCODEISHIRING" 行数为 3 时,排列如下: L C I R E T O E S I I G E D H N 之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:"LCIRETOESIIGEDHN"。 请你实现这个将字符串进行指定行数变换的函数: string convert(string s, int numRows); 示例 1: 输入: s = "LEETCODEISHIRING", numRows = 3 输出: "LCIRETOESIIGEDHN" 示例 2: 输入: s = "LEETCODEISHIRING", numRows = 4 输出: "LDREOEIIECIHNTSG" 解释: L D R E O E I I E C I H N T S G 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/zigzag-conversion 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。 题目看了半天,看到评论说这是N字形变换,才突然明白说的什么。给定字符串,然后按照类似于波浪一样反的N字排序,N的高度给定,然后把排序好的字符再按照横向一行行的读取出来。 找规律

题6、 Z 字形变换

巧了我就是萌 提交于 2019-12-09 22:54:30
题6、 Z 字形变换 题目 思路 代码 题目 将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字形排列。 比如输入字符串为 “LEETCODEISHIRING” 行数为 3 时,排列如下: L C I R E T O E S I I G E D H N 之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:“LCIRETOESIIGEDHN”。 请你实现这个将字符串进行指定行数变换的函数:string convert(string s, int numRows); 示例 1: 输入: s = “LEETCODEISHIRING”, numRows = 3 输出: “LCIRETOESIIGEDHN” 示例 2: 输入: s = “LEETCODEISHIRING”, numRows = 4 输出: “LDREOEIIECIHNTSG” 突然发现英文社区可以把信息同步到中文社区,那还看什么英文,中文不好吗 思路 这道题呢就是给定一个字符串,按照规定的形式重新排列后进行输出。给定的形式就是横放的Z,也可以看做是特殊形态的V,看你怎么想了,反正都那样。 最开始我在想能不能找到相应的规律,也就是找到一个特殊的函数,直接把两者对应起来,结果找了半天没找到,原谅我的渣渣数学,之后做出来了,大致看了一下大神们的代码,感觉好像是有相应的函数的,但是不想再看了