数字信号处理各章节重点知识的matlab实例.docx

上传人:b****6 文档编号:3235066 上传时间:2022-11-20 格式:DOCX 页数:23 大小:210.71KB
下载 相关 举报
数字信号处理各章节重点知识的matlab实例.docx_第1页
第1页 / 共23页
数字信号处理各章节重点知识的matlab实例.docx_第2页
第2页 / 共23页
数字信号处理各章节重点知识的matlab实例.docx_第3页
第3页 / 共23页
数字信号处理各章节重点知识的matlab实例.docx_第4页
第4页 / 共23页
数字信号处理各章节重点知识的matlab实例.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

数字信号处理各章节重点知识的matlab实例.docx

《数字信号处理各章节重点知识的matlab实例.docx》由会员分享,可在线阅读,更多相关《数字信号处理各章节重点知识的matlab实例.docx(23页珍藏版)》请在冰豆网上搜索。

数字信号处理各章节重点知识的matlab实例.docx

数字信号处理各章节重点知识的matlab实例

1数字信号处理各章节重点知识的matlab实例

第1,2章 离散时间信号与系统

例1-1用MATLAB计算序列{-2 0 1 –1 3}和序列{1 2 0 -1}的离散卷积。

解MATLAB程序如下:

                       a=[-201-13];

                       b=[120-1];

                       c=conv(a,b);

                       M=length(c)-1;

                       n=0:

1:

M;

                       stem(n,c);

              xlabel('n');ylabel('幅度');

                      

         图1.1给出了卷积结果的图形,求得的结果存放在数组c中为:

{-2 -4 1 3 1 5 1 -3}。

 

例1-2用MATLAB计算差分方程

          

当输入序列为

时的输出结果

解MATLAB程序如下:

                  N=41;

                  a=[0.8-0.440.360.22];

                  b=[10.7-0.45-0.6];

                  x=[1zeros(1,N-1)];

                  k=0:

1:

N-1;

                  y=filter(a,b,x);

                  stem(k,y)

                  xlabel('n');ylabel('幅度')

          图1.2给出了该差分方程的前41个样点的输出,即该系统的单位脉冲响应。

                    

  

例1-3用MATLAB计算例1-2差分方程

              

所对应的系统函数的DTFT。

解例1-2差分方程所对应的系统函数为:

                              

其DTFT为

                              

     用MATLAB计算的程序如下:

  

                          k=256;

                          num=[0.8-0.440.360.02];

                          den=[10.7-0.45-0.6];

                          w=0:

pi/k:

pi;

                          h=freqz(num,den,w);

                          subplot(2,2,1);

                          plot(w/pi,real(h));grid

                          title('实部')

                          xlabel('\omega/\pi');ylabel('幅度')

                          subplot(2,2,2);

                          plot(w/pi,imag(h));grid

                          title('虚部')

                          xlabel('\omega/\pi');ylabel('Amplitude')

                          subplot(2,2,3);

                          plot(w/pi,abs(h));grid

                          title('幅度谱')

                          xlabel('\omega/\pi');ylabel('幅值')

                          subplot(2,2,4);

                          plot(w/pi,angle(h));grid

                          title('相位谱')

                                                   xlabel('\omega/\pi');ylabel('弧度') 

                 

 

第3、4章 离散傅里叶变换及其快速算法 

例2-1对连续的单一频率周期信号,按采样频率

采样,截取长度N分别选N=20和N=16,观察其DFT结果的幅度谱。

解此时离散序列

,即k=8。

用MATLAB计算并作图,函数fft用于计算离散傅里叶变换DFT,程序如下:

                       k=8;

                       n1=[0:

1:

19];

                       xa1=sin(2*pi*n1/k);

                       subplot(2,2,1)

                       plot(n1,xa1)

                       xlabel('t/T');ylabel('x(n)');

                       xk1=fft(xa1);xk1=abs(xk1);

                       subplot(2,2,2)

                       stem(n1,xk1)

                       xlabel('k');ylabel('X(k)');

                       n2=[0:

1:

15];

                       xa2=sin(2*pi*n2/k);

                       subplot(2,2,3)

                       plot(n2,xa2)

                       xlabel('t/T');ylabel('x(n)');

                       xk2=fft(xa2);xk2=abs(xk2);

                       subplot(2,2,4)

                       stem(n2,xk2)

                       xlabel('k');ylabel('X(k)');

      

        计算结果示于图2.1,(a)和(b)分别是N=20时的截取信号和DFT结果,由于截取了两个半周期,频谱出现泄漏;(c)和(d)分别是N=16时的截取信号和DFT结果,由于截取了两个整周期,得到单一谱线的频谱。

上述频谱的误差主要是由于时域中对信号的非整周期截断产生的频谱泄漏。

例2-2用FFT计算两个序列

            

            

的互相关函数

解用MATLAB计算程序如下:

                    x=[13-112331];

                    y=[21-1120-13];

                    k=length(x);

                    xk=fft(x,2*k);

                    

                    yk=fft(y,2*k);

                    rm=real(ifft(conj(xk).*yk));

                    rm=[rm(k+2:

2*k)rm(1:

k)];

                    m=(-k+1):

(k-1);

                    stem(m,rm)

                    xlabel('m');ylabel('幅度');

                   其计算结果如图2.2所示。

       

 

例2-3计算两个序列的的互相关函数,其中

            x(n)={23521–100123530–1–2012}

y(n)=x(n-4)+e(n),e(n)为一随机噪声,在MATLAB中可以用随机函数rand产生

解用MATLAB计算程序如下:

                    x=[23521-100123530-1-2012];

                    y=[000023521-100123530-1-2012];

                    k=length(y);

                    e=rand(1,k)-0.5;

                    y=y+e;

                    xk=fft(x,2*k);

                    yk=fft(y,2*k);

                    rm=real(ifft(conj(xk).*yk));

                    rm=[rm(k+2:

2*k)rm(1:

k)];

                    m=(-k+1):

(k-1);

                    stem(m,rm)

                    xlabel('m');ylabel('幅度');

计算结果如图2.3(a),我们看到最大值出现在m=4处,正好是y(n)对于x(n)的延迟。

2.3(b)是x(n)的自相关函数,他和y(n)的区别除时间位置外,形状也略不同,这是由于y(n)受到噪声的干扰。

 

第5章无限长单位脉冲响应(IIR)滤波器的设计方法

 

例3-1设采样周期T=250μs(采样频率fs=4kHz),用脉冲响应不变法和双线性变换法设计一个三阶巴特沃兹滤波器,其3dB边界频率为fc=1kHz。

[B,A]=butter(3,2*pi*1000,'s');

[num1,den1]=impinvar(B,A,4000);

[h1,w]=freqz(num1,den1);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 纺织轻工业

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1