数字信号处理实验答案完整版

数字信号处理实验答案完整版
数字信号处理实验答案完整版

数字信号处理实验答案 HEN system office room 【HEN16H-HENS2AHENS8Q8-HENH1688】

实验一熟悉Matlab环境

一、实验目的

1.熟悉MATLAB的主要操作命令。

2.学会简单的矩阵输入和数据读写。

3.掌握简单的绘图命令。

4.用MATLAB编程并学会创建函数。

5.观察离散系统的频率响应。

二、实验内容

认真阅读本章附录,在MATLAB环境下重新做一遍附录中的例子,体会各条命令的含义。在熟悉了MATLAB基本命令的基础上,完成以下实验。

上机实验内容:

(1)数组的加、减、乘、除和乘方运算。输入A=[1 2 3 4],B=[3 4 5 6],求C=A+B,D=A-B,E=A.*B,F=A./B,G=A.^B并用stem语句画出A、B、C、D、E、F、G。

clear all;

a=[1 2 3 4];

b=[3 4 5 6];

c=a+b;

d=a-b;

e=a.*b;

f=a./b;

g=a.^b;

n=1:4;

subplot(4,2,1);stem(n,a);

xlabel('n');xlim([0 5]);ylabel('A');

subplot(4,2,2);stem(n,b);

xlabel('n');xlim([0 5]);ylabel('B');

subplot(4,2,3);stem(n,c);

xlabel('n');xlim([0 5]);ylabel('C');

subplot(4,2,4);stem(n,d);

xlabel('n');xlim([0 5]);ylabel('D');

subplot(4,2,5);stem(n,e);

xlabel('n');xlim([0 5]);ylabel('E');

subplot(4,2,6);stem(n,f);

xlabel('n');xlim([0 5]);ylabel('F');

subplot(4,2,7);stem(n,g);

xlabel('n');xlim([0 5]);ylabel('G');

(2)用MATLAB实现下列序列:

a) x(n)= 0≤n≤15

b) x(n)=e+3j)n 0≤n≤15

c) x(n)=3cosπn+π)+2sinπn+π) 0≤n≤15

d) 将c)中的x(n)扩展为以16为周期的函数x(n)=x(n+16),绘出四个周期。

e) 将c)中的x(n)扩展为以10为周期的函数x 10(n)=x(n+10),绘出四个周期。

clear all;

N=0:15;

% a) x(n)= 0≤n ≤15

xa=.^N;

figure;subplot(2,1,1);stem(N,xa); xlabel('n');xlim([0

16]);ylabel('xa');

% b) x(n)=e+3j)n 0≤n ≤15

xb=exp(+3*j)*N);

subplot(2,1,2);stem(N,xb);

xlabel('n');xlim([0 16]);ylabel('xb');figure;

% c) x(n)=3cos πn+π)+2sin πn+π) 0≤n ≤15

xc=3*cos*pi*N+*pi)+2*sin*pi*N+*pi);

subplot(3,1,1);stem(N,xc);xlabel('n');xlim([0 16]);ylabel('xc');

% d) 将c)中的x(n)扩展为以16为周期的函数x16(n)=x(n+16),绘出四个周

期。

k=0:3;m=0;

for i=1:4

for j=1:16

m=m+1;

n(m)=N(j)+16*k(i);

x16(m)=3*cos*pi*n(m)+*pi)+2*sin*pi*n(m)+*pi);

end

end

subplot(3,1,2);stem(n,x16);xlabel('n');ylabel('x16');

% e) 将c)中的x(n)扩展为以10为周期的函数x10(n)=x(n+10),绘出四个周

期。

for j=1:10

x10(j)=x16(j);

end

for i=1:3

for m=1:10

x10(i*10+m)=x10(m);

end

end

n=1:40;

subplot(3,1,3);stem(n,x10); xlabel('n');ylabel('x10');

(3)x(n)=[1,-1,3,5],产生并绘出下列序列的样本:

a) x 1(n)=2x(n+2)-x(n-1)-2x(n)

b) ∑=-=5

1k 2)k n (nx (n) x

clear all

n=1:4;

T=4;

x=[1 -1 3 5];

x(5:8)=x(1:4);

subplot(2,1,1);stem(1:8,x);grid;

for i=1:4

if i-1<0

x1(i)=2*x(i+2)-x(i-1)-2*x(i);

else

x1(i)=2*x(i+2)-x(i-1+T)-2*x(i);

end

end

x1(5:8)=x1(1:4);

subplot(2,1,2);stem(1:8,x1);grid;

(4)绘出下列时间函数的图形,对x 轴、y 轴以及图形上方均须加上适当的标

注:

a) x(t)=sin(2πt) 0≤t ≤10s

b) x(t)=cos(100πt)sin(πt) 0≤t ≤4s

ta=0::10;

xa=sin(2*pi*ta);

subplot(2,1,1);plot(ta,xa);

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

tb=0::4;

xb=cos(100*pi*tb).*sin(pi*tb);

subplot(2,1,2);plot(tb,xb);

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

(5)编写函数stepshift(n0,n1,n2)实现u(n-n0),n1

形,起点为n1,终点为n2。

n0=5;ns=1;nf=10;%ns 为起点;nf 为终点;在=n=n0处生成单位阶跃序列

n=[ns:nf];

x=[(n-n0)>=0];

stem(n,x);

(6)给一定因果系统)0.9z 0.67z -1)/(1z 2(1H(z)-2-1-1+++=求出并绘制H(z)的

幅频响应与相频响应。

clear all;

b=[1,sqrt(2),1];

a=[1,,];

[h,w]=freqz(b,a);

am=20*log10(abs(h));

subplot(2,1,1);plot(w,am);

ph=angle(h);

subplot(2,1,2);plot(w,ph);

(7)计算序列{8 -2 -1 2 3}和序列{2 3 -1 -3}的离散卷积,并作图表示卷积

结果。

clear all;

a=[8 -2 -1 2 3];

b=[2 3 -1 -3];

c=conv(a,b); %计算卷积

M=length(c)-1;

n=0:1:M;

stem(n,c);

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

(8)求以下差分方程所描述系统的单位脉冲响应h(n),0≤n≤50 y(n)+(n-1)(n-2)=x(n)-2x(n-1)

clear all;

N=50;

a=[1 -2];

b=[1 ];

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

k=0:1:N-1;

y=filter(a,b,x);

stem(k,y);

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

实验二信号的采样与重建

一,实验目的

(1)通过观察采样信号的混叠现象,进一步理解奈奎斯特采样频率的意义。(2)通过实验,了解数字信号采样转换过程中的频率特征。

(3)对实际的音频文件作内插和抽取操作,体会低通滤波器在内插和抽取中的作用。

二,实验内容

(1)采样混叠,对一个模拟信号Va(t)进行等间采样,采样频率为200HZ,得到离散时间信号V(n).Va(t)由频率为30Hz,150Hz,170Hz,250Hz,330Hz的5个正弦信号的加权和构成。

Va(t)=6cos(60pi*t)+3sin(300pi*t)+2cos(340pi*t)+4cos(500pi*t)+10sin(6 60pi*t)观察采样后信号的混叠效应。

程序:clear,

close all,

t=0::20;

Ts=1/2;

n=0:Ts:20;

V=8*cos*pi*t)+5*cos*pi*t+-10*sin*pi*t);

Vn=8*cos*pi*n)+5*cos*pi*n+-10*sin*pi*n);

subplot(221)

plot(t,V),

grid on,

subplot(222)

stem(n,Vn,'.'),

grid on,

-40 -20

0 20 40

(2)输入信号X(n)为归一化频率f1=,f2=的两个正弦信号相加而成,

N=100,按因子M=2作抽取:(1)不适用低通滤波器;(2)使用低通滤波器。分别显示输入输出序列在时域和频域中的特性。

程序:clear;

N=100;

M=2;

f1=;

f2=;

n=0:N-1;

x=sin(2*pi*f1*n)+sin(2*pi*f2*n);

y1=x(1:2:100);

y2=decimate(x,M,'fir');

figure(1);

stem(n,x(1:N));

title('input sequence');

xlabel('n');ylabel('fudu');

figure(2);

n=0:N/2-1;

stem(n,y1);

title('output sequence without LP');

xlabel('n');ylabel('fudu');

figure(3);

m=0:N/M-1;

stem(m,y2(1:N/M));

title('output sequence with LP');

xlabel('n');ylabel('fudu');

figure(4);

plot(w(1:512),abs(h(1:512)));

title('frequency spectrum of the input sequence');

xlabel('w');ylabel('fudu');

figure(5);

[h,w]=freqz(y1);

plot(w(1:512),abs(h(1:512)));

title('frequency spectrum of the output sequence without LP');

xlabel('w');ylabel('fudu');

figure(6);

[h,w]=freqz(y2);

plot(w(1:512),abs(h(1:512)));

title('frequency spectrum of the output sequence without LP');

xlabel('w');ylabel('fudu');

(3)输入信号X(n)为归一化频率f1=,f2=的两个正弦信号相加而成,长度

N=50,内插因子为2.(1)不适用低通滤波器;(2)使用低通滤波器。分别显示输入输出序列在时域和频域中的特性。

程序:clear,

close all,

N=50;

L=2;

f1=;

f2=;

n=0:N-1;

x=sin(2*pi*f1*n)+sin(2*pi*f2*n);

figure(1);

stem(n,x(1:N));

title('input sequence');

xlabel('n');ylabel('fudu');

y1=zeros(1,N*2);

y1(1:2:N*2)=x;

figure(2);

m=0:N*L-1;

stem(m,y1(1:N*L));

title('output sequence ');

xlabel('n');ylabel('fudu');

y2=interp(x,L);

figure(3);

m=0:N*L-1;

stem(m,y2(1:N*L));

title('output sequence');

xlabel('n');ylabel('fudu');

[h,w]=freqz(x);

plot(w(1:512),abs(h(1:512)));

title('frequency spectrum of the input sequence');

xlabel('w');ylabel('fudu');

figure(5);

[h,w]=freqz(y1);

plot(w(1:512),abs(h(1:512)));

title('frequency spectrum of the output sequence');

xlabel('w');ylabel('fudu');

figure(6);

[h,w]=freqz(y2);

plot(w(1:512),abs(h(1:512)));

title('frequency spectrum of the output sequence ');

xlabel('w');ylabel('fudu');

二.(3)令x(n)=cos(2*pi*f*n/fs),其中f/fs=1/16,即每个周期内有16个点。试用MATLAB编程实现:

1).作M=4倍的抽取,使每个周期变成4点。

程序:clear,

close all,

N=100;

M=4;

n=0:N-1;

x=cos(2*pi*n*(1/16));

stem(n,x(1:N));

title('input sequence');

xlabel('n');ylabel('fudu');

y1=x(1:4:100);

y2=decimate(x,M,'fir');

figure(2);

m=0:N/4-1;

stem(m,y1);

title('output sequence ');

xlabel('n');ylabel('fudu');

figure(3);

m=0:N/M-1;

stem(m,y2(1:N/M));

title('output sequence');

xlabel('n');ylabel('fudu');

figure(4);

[h,w]=freqz(x);

plot(w(1:512),abs(h(1:512)));

title('frequency spectrum of the input sequence'); xlabel('w');ylabel('fudu');

figure(5);

[h,w]=freqz(y1);

plot(w(1:512),abs(h(1:512)));

title('frequency spectrum of the output sequence'); xlabel('w');ylabel('fudu');

figure(6);

[h,w]=freqz(y2);

plot(w(1:512),abs(h(1:512)));

title('frequency spectrum of the output sequence '); xlabel('w');ylabel('fudu');

2).作L=3倍的插值,使每个周期变成48点。

程序:clear,

close all,

N=50;

L=3;

n=0:N-1;

x=cos(2*pi*n*(1/16));

figure(1);

stem(n,x(1:N));

title('input sequence');

xlabel('n');ylabel('fudu');

y1=zeros(1,N*3);

y1(1:3:N*3)=x;

figure(2);

m=0:N*3-1;

stem(m,y1(1:N*3));

title('output sequence ');

xlabel('n');ylabel('fudu');

y2=interp(x,L);

figure(3);

m=0:5:N*L-1;

stem(m,y2(1:5:N*L));

title('output sequence');

xlabel('n');ylabel('fudu');

figure(4);

[h,w]=freqz(x);

plot(w(1:512),abs(h(1:512)));

title('frequency spectrum of the input sequence');

xlabel('w');ylabel('fudu');

figure(5);

[h,w]=freqz(y1);

plot(w(1:512),abs(h(1:512)));

title('frequency spectrum of the output sequence');

xlabel('w');ylabel('fudu');

figure(6);

[h,w]=freqz(y2);

plot(w(1:64),abs(h(1:64)));

title('frequency spectrum of the output sequence ');

xlabel('w');ylabel('fudu');

(4).输入信号x(n)为归一化频率分别是f1=,f2=的正弦信号相加而成,N=50,内插因子为5,抽取因子为3,给出按有理因子5/3做采样率转换的输入输出波形。

程序:clear,

close all,

N=50;

M=3;

f2=;

n=0:N-1;

x=sin(2*pi*f1*n)+sin(2*pi*f2*n);

y=resample(x,L,M);

figure(1);

stem(n,x(1:N));

title('input sequence');

xlabel('n');ylabel('fudu');

figure(2);

m=0:N-1;

stem(m,y(1:N));

title('output sequence ');

xlabel('n');ylabel('fudu');

figure(3);

[h,w]=freqz(x);

plot(w(1:512),abs(h(1:512)));

title('frequency spectrum of the input sequence');

xlabel('w');ylabel('fudu');

figure(4);

[h,w]=freqz(y);

plot(w(1:512),abs(h(1:512)));

title('frequency spectrum of the output sequence ');

xlabel('w');ylabel('fudu');

实验三快速Fourier变换(FFT)及其应用

一、实验目的

1.在理论学习的基础上,通过本实验,加深对FFT的理解,熟悉FFT子程序。

2.熟悉应用FFT对典型信号进行频谱分析的方法。

3. 了解应用FFT进行信号频谱分析过程中可能出现的问题以便在实际中正确应用FFT。

4.熟悉应用FFT实现两个序列的线性卷积的方法。

5.初步了解用周期图法作随机信号谱分析的方法。

二、实验原理与方法

在各种信号序列中,有限长序列信号处理占有很重要地位,对有限长序列,我们可以使用离散Fouier变换(DFT)。这一变换不但可以很好的反映序列的频谱特性,而且易于用快速算法在计算机上实现,当序列x(n)的长度为N时,它的DFT定义为:

反变换为:

有限长序列的DFT是其Z变换在单位圆上的等距采样,或者说是序列Fourier变换的等距采样,因此可以用于序列的谱分析。

FFT并不是与DFT不同的另一种变换,而是为了减少DFT运算次数的一种快速算法。

它是对变换式进行一次次分解,使其成为若干小点数的组合,从而减少运算量。常用的FFT 是以2为基数的,其长度。它的效率高,程序简单,使用非常方便,当要变换的序

列长度不等于2的整数次方时,为了使用以2为基数的FFT,可以用末位补零的方法,使其长度延长至2的整数次方。

(一)、在运用DFT进行频谱分析的过程中可能产生三种误差:

序列的频谱时被采样信号的周期延拓,当采样速率不满足Nyquist定理时,就会发生频谱混叠,使得采样后的信号序列频谱不能真实的反映原信号的频谱。

避免混叠现象的唯一方法是保证采样速率足够高,使频谱混叠现象不致出现,即在确定采样频率之前,必须对频谱的性质有所了解,在一般情况下,为了保证高于折叠频率的分量不会出现,在采样前,先用低通模拟滤波器对信号进行滤波。

(2)

泄漏

实际中我们往往用截短的序列来近似很长的甚至是无限长的序列,这样可以使用较短的DFT来对信号进行频谱分析,这种截短等价于给原信号序列乘以一个矩形窗函数,也相当于在频域将信号的频谱和矩形窗函数的频谱卷积,所得的频谱是原序列频谱的扩展。

泄漏不能与混叠完全分开,因为泄漏导致频谱的扩展,从而造成混叠。为了减少泄漏的影响,可以选择适当的窗函数使频谱的扩散减至最小。

(3)

栅栏效应

DFT是对单位圆上Z变换的均匀采样,所以它不可能将频谱视为一个连续函数,就一定意义上看,用DFT来观察频谱就好像通过一个栅栏来观看一个图景一样,只能在离散点上看到真实的频谱,这样就有可能发生一些频谱的峰点或谷点被“尖桩的栅栏”所拦住,不能别我们观察到。

减小栅栏效应的一个方法就是借助于在原序列的末端填补一些零值,从而变动DFT的点数,这一方法实际上是人为地改变了对真实频谱采样的点数和位置,相当于搬动了每一根“尖桩栅栏”的位置,从而使得频谱的峰点或谷点暴露出来。

(二)、用FFT计算线性卷积

用FFT可以实现两个序列的圆周卷积。在一定的条件下,可以使圆周卷积等于线性卷积。一般情况,设两个序列的长度分别为N1和N2,要使圆周卷积等于线性卷积的充要条件是FFT的长度

N≥N1+N2

对于长度不足N的两个序列,分别将他们补零延长到N。

当两个序列中有一个序列比较长的时候,我们可以采用分段卷积的方法。有两种方法:

重叠相加法。将长序列分成与短序列相仿的片段,分别用FFT对它们作线性卷积,再将分段卷积各段重叠的部分相加构成总的卷积输出。

重叠保留法。这种方法在长序列分段时,段与段之间保留有互相重叠的部分,在构成总的卷积输出时只需将各段线性卷积部分直接连接起来,省掉了输出段的直接相加。

(三)、用周期图法(平滑周期图的平均法)对随机信号作谱分析

实际中许多信号往往既不具有有限能量,由非周期性的。无限能量信号的基本概念是随机过程,也就是说无限能量信号是一随机信号。周期图法是随机信号作谱分析的一种方法,它特别适用于用FFT直接计算功率谱的估值。

将长度为N的实平稳随机序列的样本x(n)再次分割成K段,每段长度为L,即L=N/K。每段序列仍可表示为:

xi(n)=x(n+(i-1)L),0≤n≤L-1,1≤i≤K

但是这里在计算周期图之前,先用窗函数w(n)给每段序列xi(n)加权,K个修正的周期图定义为

其中U表示窗口序列的能量,它等于

在此情况下,功率谱估计量可表示为

三、实验内容及步骤

a) Gaussian序列

b) 衰减正弦序列

c) 三角波序列

d) 反三角波序列

上机实验内容:

(1)、观察高斯序列的时域和幅频特性,固定信号xa(n)中参数p=8,改变q的值,使q 分别等于2,4,8,观察它们的时域和幅频特性,了解当q取不同值时,对信号序列的时域幅频特性的影响;固定q=8,改变p,使p分别等于8,13,14,观察参数p变化对信号序列的时域及幅频特性的影响,观察p等于多少时,会发生明显的泄漏现象,混叠是否也随之出现?记录实验中观察到的现象,绘出相应的时域序列和幅频特性曲线。

% %定义高斯序列

% function [Xa,Fa] =gauss(p,q)

% n=[0:15];

% Xa(n+1)=exp(-(n+1-p).^2./q);

% F=fft(Xa);

% Fa=abs(F);

clear all;

%%%%%%% p=8,q=2 %%%%%%%%%%%%

[Xa1,Fa1]= gauss(8,2);

k=0:15;

subplot(5,2,1);plot(k,Xa1);

xlabel('n');ylabel('时域特性');text(10,,'p=8,q=2');

subplot(5,2,2);plot(k,Fa1);

xlabel('n');ylabel('幅频特性');text(8,3,'p=8,q=2');

%%%%%%% p=8,q=4 %%%%%%%%%%%%

[Xa2,Fa2]= gauss(8,4);

subplot(5,2,3);plot(k,Xa2);

xlabel('n');ylabel('时域特性');text(10,,'p=8,q=4');

subplot(5,2,4);plot(k,Fa2);

xlabel('n');ylabel('幅频特性');text(8,3,'p=8,q=4');

%%%%%%% p=8,q=8 %%%%%%%%%%%%

[Xa3,Fa3]= gauss(8,8);

subplot(5,2,5);plot(k,Xa3);

xlabel('n');ylabel('时域特性');text(10,,'p=8,q=8');

subplot(5,2,6);plot(k,Fa3);

xlabel('n');ylabel('幅频特性');text(8,3,'p=8,q=8');

%%%%%%% p=13,q=8 %%%%%%%%%%

[Xa4,Fa4]= gauss(13,8);

subplot(5,2,7);plot(k,Xa4);

xlabel('n');ylabel('时域特性');text(10,,'p=13,q=8');

subplot(5,2,8);plot(k,Fa4);

xlabel('n');ylabel('幅频特性');text(8,3,'p=13,q=8');

%%%%%%% p=14,q=8 %%%%%%%%%%

[Xa5,Fa5]= gauss(14,8);

xlabel('n');ylabel('时域特性');text(10,,'p=14,q=8');

subplot(5,2,10);plot(k,Fa5);

xlabel('n');ylabel('幅频特性');text(8,3,'p=14,q=8');

(2)、观察衰减正弦序列xb(n)的时域和幅频特性,a=,f=,检查谱峰出现位置是否正确,注意频谱的形状,绘出幅频特性曲线,改变f,使f分别等于和,观察这两种情况下,频谱的形状和谱峰出现位置,有无混叠和泄漏现象?说明产生现象的原因。

% 定义衰减正弦序列

% function [Xb,Fb] = downsin(a,f)

% n=[0:15];

% Xb(n+1)=exp(-a.*n).*sin(2*pi*f.*n); %自然对数的底:e=: 18284 59045 23536 % F = fft(Xb);

% Fb=abs(F);

clear all;

k=0:15;

[Xb,Fb]=downsin,;

subplot(3,2,1); plot(k,Xb);

xlabel('n');ylabel('时域特性');text(8,,'a=,f=');

subplot(3,2,2); plot(k,Fb);

xlabel('n');ylabel('幅值特性');text(10,3,'a=,f=');

%%%%%%%%% a=,f= %%%%%%%%%%%

[Xb1,Fb1]=downsin,;

subplot(3,2,3); plot(k,Xb1);

xlabel('n');ylabel('时域特性');text(8,,'a=,f=');

subplot(3,2,4); plot(k,Fb1);

xlabel('n');ylabel('幅值特性');text(10,3,'a=,f=');

%%%%%%%%% a=,f= %%%%%%%%%%

[Xb2,Fb2]=downsin,;

subplot(3,2,5); plot(k,Xb2);

xlabel('n');ylabel('时域特性');text(8,,'a=,f=');

subplot(3,2,6); plot(k,Fb2);

xlabel('n');ylabel('幅值特性');text(10,3,'a=,f=');

(3)、观察三角波和反三角波序列的时域和幅频特性,用N=8点FFT分析信号序列xc(n)和xd(n)的幅频特性,观察两者的序列形状和频谱曲线有什么异同?绘出两序列及其幅频特性曲线。在xc(n)和xd(n)末尾补零,用N=16点FFT分析这两个信号的幅频特性,观察幅频特性发生了什么变化?两情况的FFT频谱还有相同之处吗这些变化说明了什么clear all;

n=[0:3];k=[1:8];

%定义三角波序列

Xc(n+1) = n;Xc(n+5) =4-n;

%定义反三角波序列

Xd(n+1) = 4-n;Xd(n+5) =n;

%%%%%%%%%%% 三角波特性 %%%%%%%%%%%%%

subplot(2,2,1);plot(k-1,Xc);

xlabel('n');ylabel('时域特性');text(1,3,'三角波');

xlabel('k');ylabel('幅频特性');text(4,10,'三角波');

%%%%%%%%%%% 反三角波特性 %%%%%%%%%%

subplot(2,2,3);plot(k-1,Xd);

xlabel('n');ylabel('时域特性');text(3,3,'反三角波');

subplot(2,2,4);plot(k-1,abs(fft(Xd)));

xlabel('k');ylabel('幅频特性');text(4,10,'反三角波');

%末尾补0,计算32点FFT

Xc(9:32)=0;Xd(9:32)=0;k=1:32;figure;

%%%%%%%%%%% 三角波特性 %%%%%%%%%%%%%

subplot(2,2,1);plot(k-1,Xc);

xlabel('n');ylabel('时域特性');text(1,3,'三角波');

subplot(2,2,2);plot(k-1,abs(fft(Xc)));

xlabel('k');ylabel('幅频特性');text(4,10,'三角波');

%%%%%%%%%%% fan三角波特性 %%%%%%%%%%

subplot(2,2,3);plot(k-1,Xd);

xlabel('n');ylabel('时域特性');text(3,3,'反三角波');

subplot(2,2,4);plot(k-1,abs(fft(Xd)));

xlabel('k');ylabel('幅频特性');text(4,10,'反三角波');

(4)、一个连续信号含两个频率分量,经采样得

x(n)=sin2π*+cos2π*+Δf)n n=0,1……,N-1

已知N=16,Δf分别为1/16和1/64,观察其频谱;当N=128时,Δf不变,其结果有何不同,为什么?

clear all;

%%%%%%% N = 16 %%%%%%%%%%%%

N=16;detf=1/16;n=[0:N-1];

x1(n+1)=sin(2*pi*.*n)+cos(2*pi*+detf).*n);

detf = 1/64;x2(n+1)=sin(2*pi*.*n)+cos(2*pi*+detf).*n);

%%%%%%% N = 16,detf = 1/16 %%%%%%%%%%%%

subplot(2,2,1);stem(n,x1);hold;plot(n,x1);

xlabel('n');ylabel('时域特性');text(6,1,'N=16,detf=1/16');

subplot(2,2,2);stem(n,abs(fft(x1)));

xlabel('n');ylabel('幅值特性');text(6,4,'N=16,detf=1/16');

%%%%%%% N = 16,detf = 1/64 %%%%%%%%%%%%

subplot(2,2,3);stem(n,x2);

xlabel('n');ylabel('时域特性');text(6,1,'N=16,detf=1/64');

subplot(2,2,4);stem(n,abs(fft(x2)));

xlabel('n');ylabel('幅值特性');text(6,4,'N=16,detf=1/64');

%%%%%%% N = 128 %%%%%%%%%%%%

N=128;detf=1/16;n=[0:N-1];

x3(n+1)=sin(2*pi*.*n)+cos(2*pi*+detf).*n);

detf = 1/64;

x4(n+1)=sin(2*pi*.*n)+cos(2*pi*+detf).*n);

%%%%%%% N = 128,detf = 1/16 %%%%%%%%%%%%

figure;subplot(2,2,1);stem(n,x3);

subplot(2,2,2);stem(n,abs(fft(x3)));

xlabel('n');ylabel('幅值特性');axis([0 128 -10

70]);text(40,60,'N=128,detf=1/16');

%%%%%%% N = 128,detf = 1/64 %%%%%%%%%%%%

subplot(2,2,3);stem(n,x3);

xlabel('n');ylabel('时域特性');axis([0 128 -2 2]);text(6,,'N=128,detf=1/16');

subplot(2,2,4);stem(n,abs(fft(x4)));

xlabel('n');ylabel('幅值特性');axis([0 128 -10

70]);text(40,60,'N=128,detf=1/16');

(5)、用FFT分别实现xa(n)(p=8,q=2)和 xb(n)(a=,f=)的16点圆周卷积和线性卷积。

clear all;

N=16;

n=0:N-1;

p=8;q=2;

Xa(n+1)=exp(-(n-p).^2./q);

a=;f=;

Xb(n+1)=exp(-a.*n).*sin(2*pi*f.*n);

%16点循环卷积

Fa=fft(Xa); Fb=fft(Xb);

Fx=Fa.*Fb;

X51=ifft(Fx);

stem(n,X51);

%16点线性卷积

Xa(N+1:2*N-1)=0;

Xb(N+1:2*N-1)=0;

Fa=fft(Xa); Fb=fft(Xb);

Fc=Fa.*Fb;

X52=ifft(Fc);

figure;stem(1:2*N-1,X52);

(7)用FFT分别计算x

a (n)(p=8,q=2)和x

b

(n)(a=,f=的16点循环相关和线性相关,问一

共有多少种结果,他们之间有何异同点。

clear all;

N=16;

n=0:N-1;

p=8;q=2;

Xa(n+1)=exp(-(n-p).^2./q);

a=;f=;

Xb(n+1)=exp(-a.*n).*sin(2*pi*f.*n);

N=length(Xa);

%16点循环相关

Fa=fft(Xa,2*N); Fb=fft(Xb,2*N);

Fx=conj(Fa).*Fb;

X71=real(ifft(Fx));

X71=[X71(N+2:2*N) X71(1:N)];

%16点线性相关

Xa(N+1:2*N-1)=0;

Xb(N+1:2*N-1)=0;

Fa=fft(Xa); Fb=fft(Xb); Fc=conj(Fa).*Fb;

X72=real(ifft(Fc)); figure;stem(1:2*N-1,X72);

(8)用FFT分别计算x

a (n)(p=8,q=2)和x

b

(n)(a=,f=的自相关函数。

clear all;

N=16;

n=0:N-1;

p=8;q=2;

Xa(n+1)=exp(-(n-p).^2./q);

a=;f=;

Xb(n+1)=exp(-a.*n).*sin(2*pi*f.*n); %自然对数的底:e=: 18284 59045 23536 N=length(Xa);

% Xa(n) 16点自相关

Fa=fft(Xa,2*N); Fb=fft(Xb,2*N);

F1=conj(Fa).*Fa;

X81=real(ifft(F1));

X81=[X81(N+2:2*N) X81(1:N)];

n=(-N+1):(N-1);

subplot(2,1,1);stem(n,X81);

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

% Xb(n) 16点自相关

Fb=fft(Xb,2*N);

F2=conj(Fb).*Fb;

X82=real(ifft(F2));

X82=[X82(N+2:2*N) X82(1:N)];

% n=(-N+1):(N-1);

subplot(2,1,2);stem(n,X82);

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

相关主题
相关文档
最新文档