Traditional Comm笔记【8】:阵列信号处理及MATLAB实现(第2版)阅读随笔(三)

Traditional Comm笔记【8】:阵列信号处理及MATLAB实现(第2版)阅读随笔(三)

Chapter5 阵列信号处理MATLAB编程常用函数介绍

(1). 创建矩阵

直接输入矩阵数值,分号代表行分割,创建数值矩阵。 e . g . e.g. e.g.

>>A=[1 3 5;2,4 6;3,8,9];
>>A
A=
    1 3 5
    2 4 6
    3 8 9
(2). zeros 函数:创建全0矩阵
>>A=zeros(n):创建n*n全0矩阵。
>>A=zeros(n,m):创建n*m全0矩阵。
>>A=zeros(size(B)):创建与矩阵B相同大小的全0矩阵。
(3). eye 函数:创建单位矩阵
>>A=eye(n):创建n*n单位矩阵。
>>A=eye(n,m):创建n*m单位矩阵。
>>A=zeros(size(B)):创建与矩阵B相同大小的单位矩阵。
(4). ones 函数:创建全1矩阵
>>A=ones(n):创建n*n全1矩阵。
>>A=eye(n,m):创建n*m全1矩阵。
>>A=zeros(size(B)):创建与矩阵B相同大小的全1矩阵。
(5). rand 函数:创建均匀分布随机矩阵
>>A=rand(n):创建n维均匀分布随机矩阵,其元素在(0,1)内。
>>A=rand(n,m):创建n*m均匀分布随机矩阵。
>>A=rand(size(B)):创建与矩阵B相同大小的均匀分布随机矩阵。
(6). randn 函数:创建正态分布随机矩阵
>>A=randn(n):创建n*n正态分布随机矩阵。
>>A=randn(n,m):创建n*m正态分布随机矩阵。
>>A=randn(size(B)):创建与矩阵B相同大小的正态分布随机矩阵。
(7). hankel 函数:创建Hankel矩阵
>>A=hankel(n):第一列元素为n,反三角以下元素为0>>A=hankel(n,m):第一列元素为n,最后一行元素为m,如果n的最后一个元素
                与m的第一个元素不同,则交叉位置元素取n的最后一个元素。

e . g . e.g. e.g.

>>n=[3 2 1];
>>m=[1 5 9];
>>A=hankel(n,m);
>>A
A=
   3 2 1
   2 1 5
   1 5 9
>>A=hankel(n);
>>A
A=
   3 2 1
   2 1 0
   1 0 0
(8). toeplitz 函数:创建Toeplitz矩阵
>>A=toeplitz(n):用向量n创建一个对称Toeplitz矩阵。
>>A=toeplitz(n,m):第一列元素为n,第一行元素为m,如果n的第一个元素
                  与m的第一个元素不同,则交叉位置元素取n的第一个元素。

e . g . e.g. e.g.

>>n=[1 2 3];
>>m=[1 5 9];
>>A=toeplitz(n);
>>A
A=
   1 2 3
   2 1 2
   3 2 1
>>A=toeplitz(n,m);
>>A
A=
   1 5 9
   2 1 5
   3 2 1
(9). det 函数:计算方阵行列式
>>det(A):计算方阵A的行列式。

e . g . e.g. e.g.

>>A=[1 3 6;2 4 5;1 2 3]
A=
   1 3 6
   2 4 5
   1 2 3
>>det(A)
ans=
   -1
(10). inv 函数:求方阵的逆矩阵
>>inv(A):计算方阵A的逆矩阵A^{-1}

e . g . e.g. e.g.

>>A=[1 3 6;2 4 5;1 2 3];
>>inv(A)
ans=
   -2 -3  9
    1  3 -7
    0 -1  2
(11). pinv 函数:求矩阵的伪逆矩阵
>>pinv(A):计算矩阵A的伪逆矩阵A^{+}

e . g . e.g. e.g.

>>A=[1 3 6;2 4 5;1 2 3];
>>pinv(A)
ans=
   0.1579   -0.8421   0.3684   2.1579
  -0.6842    1.3158  -0.2632  -1.6842
   0.4737   -0.5263   0.1053   0.4737 
(12). rank 函数:求矩阵的秩
>>rank(A):计算矩阵A的秩。

e . g . e.g. e.g.

>>A=[1 3 6;2 4 5;1 2 3];
>>rank(A)
ans=
   3 
(13). diag 函数:抽取矩阵对角线元素
>>A=diag(m):以m为主对角线元素,其余元素为0>>m=diag(A):取矩阵A的主对角线元素构造向量m。

e . g . e.g. e.g.

>>A=[1 3 6;2 4 5;1 2 3];
>>m=diag(A);
>>m
   1
   4
   3
>>m=[1 2 3];
>>A=diag(m);
>>A
A=
   1  0  0
   0  2  0
   0  0  3 
(14). fliplr 函数:矩阵左右翻转
>>fliplr(A):将矩阵A左右翻转。

e . g . e.g. e.g.

>>A=[1 3 6;2 4 5;1 2 3]
A=
   1  3  6
   2  4  5
   1  2  3 
>>fliplr(A)
ans=
   6  3  1
   5  4  2
   3  2  1
(15). eig 函数:矩阵特征值分解
>>d=eig(A):计算A的特征值。
>>d=eig(A,B):计算A的广义特征值。
>>[V,D]=eig(A):计算A的特征值对角阵D和特征向量构成的矩阵V。
>>[V,D]=eig(A,B):计算A的广义特征值对角阵D和广义特征向量构成的矩阵V。

e . g . e.g. e.g.

>>A=[1 3 6;2 4 5;1 2 3];
>>[V,D]=eig(A);
>>V
V=
   -0.5970   -0.9433    0.6669
   -0.7083    0.3209   -0.6977
   -0.3767    0.0847    0.2615
>>D
D=
   8.3451          0         0
        0    -0.5594         0
        0          0    0.2142
(16). svd 函数:矩阵奇异值分解
>>s=svd(A):计算矩阵A的奇异值向量。
>>[U,S,V]=svd(A):计算A的奇异值对角矩阵S和两个酉矩阵U和V。

e . g . e.g. e.g.

>>A=[1 3 6;2 4 5;1 2 3];
>>[U,S,V]=svd(A);
>>U
U=
   -0.6608   -0.7306   -0.1718
   -0.6544   -0.6730   -0.3447
   -0.3675   -0.1154    0.9228
>>S
S=
  12.1722          0         0
        0     1.2331         0
        0          0    0.0797
>>V
V=
   -0.2298   -0.5926    0.7720
   -0.5245   -0.5928   -0.6112
   -0.8198    0.5453    0.1746
(17). 矩阵转置和共轭转置
>>A.':计算A的转置矩阵。
>>A':计算A的共轭转置矩阵。

e . g . e.g. e.g.

>>A=randn(2,3)+j*randn(2,3);     %创建一个复数矩阵
>>A
A=
   0.6715+0.7269i   0.7172+0.2939i   0.4889+0.8884i
  -0.2075-0.3034i   1.6302-0.7873i   1.0347-1.1471i
>>A'
ans=
   0.6715-0.7269i   -0.2075+0.3034i
   0.7172-0.2939i    1.6302+0.7873i
   0.4889-0.8884i    1.0347+1.1471i
>>A.'
ans=
   0.6715+0.7269i   -0.2075-0.3034i
   0.7172+0.2939i    1.6302-0.7873i
   0.4889+0.8884i    1.0347-1.1471i
(18). awgn 函数:添加高斯白噪声
>>Y=awgn(X,snr):向信号X添加高斯白噪声,信噪比snr单位为dB。信号X的功率假定为0dBW。
>>Y=awgn(X,snr,sigpower):向信号X添加高斯白噪声,信噪比snr单位为dB。信号X的功率为sigpower (dBW)>>Y=awgn(X,snr,'measured'):向信号X添加高斯白噪声,信噪比snr单位为dB。在添加噪声前计算信号X功率(dBW)

e . g . e.g. e.g.

>>X=randn(2,5);     %创建一随机信号X
>>X
X=
   0.5377    -2.2588    0.3188    -0.4336    3.5784
   1.8339     0.8622   -1.3077     0.3426    2.7694
>>Y=awgn(X,10,'measured');     %添加高斯白噪声,信噪比为10dB
>>Y
Y=
   -0.2270    -1.8479    0.7237    -0.5039    4.3766
    3.5531     0.8265   -1.4238     1.1865    3.5722 
(19). sin 函数:正弦函数
>>y=sin(x):返回x中个元素的正弦值,x的单位为弧度(rad)

e . g . e.g. e.g.

>>sin(45*pi/180)     %计算sin(45^\degree)
ans=
   0.7071
(20). cos 函数:余弦函数
>>y=cos(x):返回x中个元素的余弦值,x的单位为弧度(rad)

e . g . e.g. e.g.

>>cos(45*pi/180)     %计算cos(45^\degree)
ans=
   0.7071
(21). tan 函数:正切函数
>>y=tan(x):返回x中个元素的正切值,x的单位为弧度(rad)

e . g . e.g. e.g.

>>cos(45*pi/180)     %计算tan(45^\degree)
ans=
   1.0000
(22). asin 函数:反正弦函数
>>y=asin(x):返回x中个元素的反正弦值,y的单位为弧度(rad)

e . g . e.g. e.g.

>>asin(0.7071)    
ans=
   0.7854
(23). acos 函数:反余弦函数
>>y=acos(x):返回x中个元素的反余弦值,y的单位为弧度(rad)

e . g . e.g. e.g.

>>acos(0.7071)    
ans=
   0.7854
(24). atan 函数:反正切函数
>>y=atan(x):返回x中个元素的反正切值,y的单位为弧度(rad)

e . g . e.g. e.g.

>>atan(1)    
ans=
   0.7854
(25). abs 函数:求复数的模
>>y=abs(x):如果x是实数,返回x的绝对值;如果x是复数,返回x的模。

e . g . e.g. e.g.

>>a=-1;
>>b=1+1j;
>>abs(a)
ans=
   1    
>>abs(b)
ans=
   1.4142  
(26). angle 函数:求复数的相位角
>>y=angle(x):返回复数x的相位角,单位为弧度(rad)

e . g . e.g. e.g.

>>a=1+1j;
a=
   1.0000+1.0000i
>>angle(a)
ans=
   0.7854    
(27). real 函数:求复数的实部
>>y=real(x):返回复数x实数部分。

e . g . e.g. e.g.

>>a=1+1j;
a=
   1.0000+1.0000i
>>real(a)
ans=
   1  
(28). imag 函数:求复数的虚部
>>y=imag(x):返回复数x虚数部分。

e . g . e.g. e.g.

>>a=1+1j;
a=
   1.0000+1.0000i
>>imag(a)
ans=
   1  
(29). sum 函数:求和函数
>>B=sum(A):如果A为向量,返回各元素之和;如果A为矩阵,返回各列元素之和构成的一个行向量。
>>B=sum(A,dim):沿着dim指定的维数求和,其中dim\in[1,N], N为矩阵维数。
               当dim取1时,返回列向量之和构造的行向量;
               当dim取2时,返回行向量之和构造的列向量。

e . g . e.g. e.g.

>>A=[1 3 6;2 4 5;1 2 3;1 1 1];
>>sum(A,1)
ans=
   5   10   15
>>sum(A,2)
ans=
   10
   11
    6
    3
>>sum(A)
ans=
   5   10   15
(30). max 函数:求最大值函数
>>B=max(A):如果A为向量,返回各元素之中的最大值;如果A为矩阵,返回各列元素最大值构成的一个行向量。
>>B=max(A,[],dim):沿着dim指定的维数求最大值,其中dim\in[1,N], N为矩阵维数。
                  当dim取1时,返回列向量最大值构造的行向量;
                  当dim取2时,返回行向量最大值构造的列向量。

e . g . e.g. e.g.

>>A=[1 3 6;2 4 5;1 2 3;1 1 1];
>>max(A,[],1)
ans=
   2   4   6
>>max(A,[],2)
ans=
    6
    5
    3
    1
>>max(A)
ans=
   2   4   6
(31). min 函数:求最小值函数
>>B=min(A):如果A为向量,返回各元素之中的最小值;如果A为矩阵,返回各列元素最小值构成的一个行向量。
>>B=min(A,[],dim):沿着dim指定的维数求最小值,其中dim\in[1,N], N为矩阵维数。
                  当dim取1时,返回列向量最小值构造的行向量;
                  当dim取2时,返回行向量最小值构造的列向量。

e . g . e.g. e.g.

>>A=[1 3 6;2 4 5;1 2 3;1 1 1];
>>min(A)
ans=
   1   1   1
>>min(A,[],1)
ans=
   1   1   1
>>min(A,[],2)
ans=
    1
    2
    1
    1
(32). sort 函数:排序函数
>>B=sort(A):如果A为向量,则将A中各元素按从小到大排序;如果A为矩阵,则将A中各列元素按从小到大排序。
>>B=sort(A,dim):沿着dim指定的维数排序,当dim取1时,则将A中各列元素按从小到大排序;
                当dim取2时,则将A中各行元素从小到大排序。
>>B=sort(···,mode):将矩阵中元素按指定模式排列,当mode='ascend'时,则按从小到大排序;
                   当mode='descend'时,则按从大到小排序。
>>[B,V]=sort(A),将A排序,并返回一个与A同形的矩阵V,指定B矩阵中各元素在A中的位置。

e . g . e.g. e.g.

>>A=[1 10 3;5 2 6;3 4 8];
A=
   1   10    3
   5    2    6
   3    4    8
>>sort(A)
ans=
   1    2    3
   3    4    6
   5   10    8
>>sort(A,1)
ans=
   1    2    3
   3    4    6
   5   10    8
>>sort(A,2)
ans=
   1    3   10
   2    5    6
   3    4    8
>>sort(A,'descend')
ans=
   5    10    8
   3     4    6
   1     2    3
>>[B,V]=sort(A)
B=
   1    2    3
   3    4    6
   5   10    8
V=
   1    2    1
   3    3    2   
   2    1    3
(33). poly2sym 函数:创建多项式
>>y=poly2sym(c):返回一个符号多项式。其中,参数c为保存多项式的系数的向量。
>>y=poly2sym(c,'t'):返回一个符号多项式。其中,参数c为保存多项式的系数的向量,t为符号向量。

e . g . e.g. e.g.

>>c=[1 2 5 7];
>>y=poly2sym(c);
>>y
y=
   x^3+2*x^2+5*x+7
(34). sym2poly 函数:讲符号多项式转换为数值多项式
>>c=sym2poly(y):返回符号多项式y的数值系数构成的行向量。

e . g . e.g. e.g.

>>syms x;
>>y=x^3+2*x^2+5*x+7;
>>c=sym2poly(y);
>>c
c=
   1    2    5    7
(35). roots 函数:多项式求根
>>r=roots(c):返回一个由多项式根构成的列向量。

e . g . e.g. e.g.

>>c=[1,2,5,7];
>>r=roots(c);
>>r
r=
   -0.1981+2.0797i
   -0.1981-2.0797i
   -1.6038
(36). size 函数:求矩阵大小
>>[m,n]=size(A):分别返回矩阵的行数和列数。

e . g . e.g. e.g.

>>A=[1 2 3 4;5 6 7 8];
>>A
A=
   1    2    3    4
   5    6    7    8
>>[m,n]=size(A);
>>m
m=
   2
>>n
n=
   4

Reference

[1] 阵列信号处理及MATLAB实现(第2版) ⊚ \circledcirc 张小飞 李建峰 徐大专 等 著.

  • 1
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值