最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

MATLAB数字信号处理应用

来源:动视网 责编:小OO 时间:2025-10-02 18:03:48
文档

MATLAB数字信号处理应用

1.序列的基本概念1.1离散时间信号的产生1.单位脉冲序列δ(n)解:MATLAB程序如下:n=-5:30;%取点个数x=[zeros(1,5),1,zeros(1,30)];%定义序列stem(n,x,'fill');gridon%网格绘制运行结果:图3单位脉冲序列δ(n)绘制图2.单位阶跃序列u(n)解:MATLAB程序如下:n=-5:30;%取点个数x=[zeros(1,5),ones(1,31)];%定义序列stem(n,x,'fill');gridon;%网格绘制运行结果:图4单位阶
推荐度:
导读1.序列的基本概念1.1离散时间信号的产生1.单位脉冲序列δ(n)解:MATLAB程序如下:n=-5:30;%取点个数x=[zeros(1,5),1,zeros(1,30)];%定义序列stem(n,x,'fill');gridon%网格绘制运行结果:图3单位脉冲序列δ(n)绘制图2.单位阶跃序列u(n)解:MATLAB程序如下:n=-5:30;%取点个数x=[zeros(1,5),ones(1,31)];%定义序列stem(n,x,'fill');gridon;%网格绘制运行结果:图4单位阶
1.序列的基本概念

1.1 离散时间信号的产生

 1.单位脉冲序列δ(n)

    解:    MATLAB程序如下:

                n=-5:30;              %取点个数

    x=[zeros(1,5),1,zeros(1,30)];      %定义序列

    stem(n,x,'fill');

    grid on              %网格绘制

    运行结果:

    

       图3 单位脉冲序列δ(n)绘制图

2.单位阶跃序列u(n)

         解:MATLAB程序如下:

                    

                n=-5:30;                    %取点个数

    x=[zeros(1,5),ones(1,31)];        %定义序列

    stem(n,x,'fill');

    grid on;                    %网格绘制

    运行结果:

    

        图4 单位阶跃序列u(n)绘制图

      3.矩形序列R8(n)

        解:MATLAB程序如下:    

                n=-5:30;                        %取点个数

    x=[zeros(1,5),ones(1,8),zeros(1,23)];        %定义序列

    stem(n,x,'fill');

    grid on;               %网格绘制

    运行结果:

    

        图5 矩形序列R8(n)绘制图

   4.正弦型序列x(n)=Asin(∏/5*n+∏/3) 

    解:MATLAB程序如下:

                n=-15:20;                 %取点数

    ph=pi/6;                 %定义初相

    omega=pi/5;             %定义角频率

    A=3;                      %取幅值为3

    x=A*sin(omega*n+ph);   %定义序列

    stem(n,x,'fill');

    grid on;

    运行结果:

    

图6 正弦序列绘制图(实验所得的正弦序列的周期T=10)

            

   5.任意序列

    例:(1)  x(n)= δ(n)+2δ(n-1)+3δ(n-2)+4δ(n-3)+5δ(n-4)

         解:MATLAB程序如下:

                n=-15:20;

x=[zeros(1,15),1,2,3,4,5,zeros(1,16)]; 

stem(n,x,'fill');

grid on;

运行结果:

图7  序列(1)绘制图

        例(2)  h(n)= δ(n)+2δ(n-1)+δ(n-2)+2δ(n-3)

          解:    n=-15:20;

h=[zeros(1,15),1,2,1,2,zeros(1,17)]; 

stem(n,h,'fill');

grid on;

运行结果:

 

              图8  序列(2)绘制图

  2.2 序列的运算

   1.序列的移位(MATLAB指令为circshift)

    例:(1)  x(n)= δ(n)+2δ(n-1)+3δ(n-2)+4δ(n-3)+5δ(n-4) 右移四位

             解:    MATLAB程序如下:

                    n=-5:15            %定义序列长度

                    x=[zeros(1,5),1,2,3,4,5,zeros(1,11)]; 

                    y=circshift(x,[0,4]);      %右移四位

                    stem(n,y,'*k'); 

                    grid on ;

                    运行结果:

                

                                图9 序列(1)右移四位

(2) h(n)= δ(n)+2δ(n-1)+δ(n-2)+2δ(n-3)左移四位

      解:MATLAB程序如下:

                n=-15:10

                h=[zeros(1,15),1,2,1,2,zeros(1,7)];

                y=circshift(h,[0,-4]);

                stem(n,y,'*k'); 

                grid on ; 

                运行结果:

                    

                            图10 序列(2)左移四位

  2.序列的反褶

例:(1)求x(n)= δ(n)+2δ(n-1)+3δ(n-2)+4δ(n-3)+5δ(n-4)的反褶

  解:        MATLAB程序如下:

                n=-10:10;

                x=[zeros(1,10),1,2,3,4,5,zeros(1,6)];

                y=fliplr(x);

                stem(n,y,'*k'); 

                grid on ; 

                运行结果:

                

                            图11 序列(1)的反褶

   (2)h(n)= δ(n)+2δ(n-1)+δ(n-2)+2δ(n-3)的反褶

        解:MATLAB程序如下:

                n=-10:10

                h=[zeros(1,10),1,2,1,2,zeros(1,7)];

                y=fliplr(h);

                stem(n,y,'*k'); 

                grid on ; 

                运行结果:

                

                          图12 序列(2)的反褶

   3.两序列的和

例:已知x(n)= δ(n)+2δ(n-1)+3δ(n-2)+4δ(n-3)+5δ(n-4),h(n)= δ(n)+2δ(n-1)+δ(n-2)+2δ(n-3)              求序列y(n)=x(n)+h(n)。

解:MATLAB程序如下:

                n=-10:10;

                x=[zeros(1,10),1,2,3,4,5,zeros(1,6)];

                h=[zeros(1,10),1,2,1,2,zeros(1,7)];

                y=x+h;

                stem(n,y,'*k'); 

                grid on ; 

                 

                            图13 两序列的和

  4.两序列的积

例:已知x(n)= δ(n)+2δ(n-1)+3δ(n-2)+4δ(n-3)+5δ(n-4),h(n)= δ(n)+2δ(n-1)+δ(n-2)+2δ(n-3)              求序列y(n)=x(n).*h(n)。

解:MATLAB程序如下:

                n=-10:10;

                x=[zeros(1,10),1,2,3,4,5,zeros(1,6)];

                h=[zeros(1,10),1,2,1,2,zeros(1,7)];

                y=x.*h;

                stem(n,y,'*k'); 

                grid on ; 

                运行结果:

                

                          图14  两序列的积

  5.两序列的标乘(MATLAB指令为dot)

    例:已知x(n)= δ(n)+2δ(n-1)+3δ(n-2)+4δ(n-3)+5δ(n-4),h(n)= δ(n)+2δ(n-1)+δ(n-2)+2δ(n-3)              求序列x(n)、 h(n)的标乘

    解:MATLAB程序如下:

                n=-10:10;

                x=[zeros(1,10),1,2,3,4,5,zeros(1,6)];

                h=[zeros(1,10),1,2,1,2,zeros(1,7)];

                y=dot(x,h)

                运行结果:

                y =

                    16

  6.序列的累加

    例:(1)求x(n)= δ(n)+2δ(n-1)+3δ(n-2)+4δ(n-3)+5δ(n-4)的累加

    解:MATLAB程序如下:

                n=-10:20;

                x=[zeros(1,10),1,2,3,4,5,zeros(1,16)];

                y=cumsum(x);

                stem(n,y,'*k');

                grid on ; 

                运行结果:

                   

                          图15  序列(1)的累加

   例:(2)求h(n)= δ(n)+2δ(n-1)+δ(n-2)+2δ(n-3)的累加

    解:MATLAB程序如下:

                n=-10:20;

                h=[zeros(1,10),1,2,1,2,zeros(1,17)];

                y=cumsum(h);

                stem(n,y,'*k');

                grid on ; 

                运行结果:

                

                         图16  序列(2)的累加

  2.3序列的卷积运算

  例:    x(n)= δ(n)+2δ(n-1)+3δ(n-2)+4δ(n-3)+5δ(n-4)

h(n)= δ(n)+2δ(n-1)+δ(n-2)+2δ(n-3)

解:(1)序列卷积计算公式:y(n)=x(n)*h(n)= x(m)h(n-m)

(2)根据定义计算y(n)

MATLAB程序如下:

N=10;

M=10;

L=N+M-1;

x=[1,2,3,4,5,zeros(1,5)]; 

h=[1,2,1,2,zeros(1,6)]; 

y=conv(x,h);

n=0:L-1;

stem(n,y,'*k'); 

grid on ;

运行结果:

               图17 卷积和结果序列

通用程序:

            function[y,n]=dconv(x,nx,h,nh);

            x=input('请输入序列(1):x(n)=');

            nx=input('请输入序列(1)长度(如0:5)=');

            h=input('请输入序列(2):h(n)=');

            nh=input('请输入序列(2)长度(如0:5)=');

            y=conv(x,h)

            k1=nx(1)+nh(1);

            k2=length(x)+length(h)-2;

            n=k1:k1+k2

            subplot(131); stem(nx,x,'*r'); xlabel('nx');

            ylabel('x(n)'); grid on ;

            subplot(132); stem(nh,h,'*b'); xlabel('nh');

            ylabel('h(n)'); grid on ;

            subplot(133); stem(n,y,'*k'); xlabel('n');

            ylabel('y(n)'); grid on ; 

            运行程序:(在命令窗口输入如下指令):

        请输入序列(1):x(n)=[1 2 3 4 5]

        请输入序列(1)长度(如0:5)=0:4

        请输入序列(2):h(n)=[1 2 1 2]

        请输入序列(1)长度(如0:5)=0:3

         运行结果:

        y =

             1     4     8    14    20    20    13    10

        n =

             0     1     2     3     4     5     6     7

        绘制的图形:

        

                  图18 通用程序卷积结果

  2.4 产生方波信号序列

    解:        T=6;                %周期为6

n=-5:0.1:2*T;            %步进为0.1

duty=50;            %占空比为50%

x=2*square(n,duty);        %产生方波,幅值为2

stem(n,x,'*k');

grid on ; 

运行结果:

                图19 方波序列绘制图

   2.5 产生锯齿波信号序列

   解:             n = 0:0.05:5;

 y = 1-mod(x, 1);

 stem(n,y,'*k');

                 grid on ;

                 

                    图20  方波序列绘制图

  2.6 思考题:实验中所产生的正弦序列的频率是多少?是否是周期序列?

      答:由2∏/∏/5=10,10是正整数,所以实验产生的正弦序列是是周期序列,周期为10。

文档

MATLAB数字信号处理应用

1.序列的基本概念1.1离散时间信号的产生1.单位脉冲序列δ(n)解:MATLAB程序如下:n=-5:30;%取点个数x=[zeros(1,5),1,zeros(1,30)];%定义序列stem(n,x,'fill');gridon%网格绘制运行结果:图3单位脉冲序列δ(n)绘制图2.单位阶跃序列u(n)解:MATLAB程序如下:n=-5:30;%取点个数x=[zeros(1,5),ones(1,31)];%定义序列stem(n,x,'fill');gridon;%网格绘制运行结果:图4单位阶
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top