数字信号处理Matlab实现实例.docxVIP

  • 32
  • 0
  • 约8.95千字
  • 约 20页
  • 2020-11-30 发布于山东
  • 举报
实用标准文案 数字信号处理 Matlab 实现实例 第1章 离散时间信号与系统 例 1-1 用 MATLAB计算序列 {-2 0 1 –1 3} 和序列 {1 2 0 -1} 的离散卷积。 解 MATLAB程序如下: a=[-2 0 1 -1 3]; b=[1 2 0 -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.44 0.36 0.22]; b=[1 0.7 -0.45 -0.6]; x=[1 zeros(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 差分方程所对应的系统函数为: 0.8 0.44 z 1 0.36 z 2 0.02 z 3 H ( z) 0.7 z 1 0.45z 2 0.6 z 3 1 其 DTFT为 H (e j ) 0.8 0.44e 1 0.7e  j 0.36e j 2 0.02 e j 3 j 0.45e j 2 0.6e j 3 用 MATLAB计算的程序如下: k=256; num=[0.8 -0.44 0.36 0.02]; den=[1 0.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( 弧度 ) 精彩文档 实用标准文案 第2章 离散傅里叶变换及其快速算法 例 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=[1 3 -1 1 2 3 3 1]; y=[2 1 -1 1 2 0 -1 3]; k=length(x); xk=fft(x,2*k); yk=fft(y,2*k); rm=real(ifft

文档评论(0)

1亿VIP精品文档

相关文档