数字信号处理实验讲义2012(8)

2018-11-17 22:09

数字信号处理讲义

n=[0:1:99];

x=cos(0.48*pi*n)+cos(0.52*pi*n);

subplot(2,1,1);stem(n,x);title('signal x(n),0<=n<=99');xlabel('n') axis([0,100,-2.5,2.5])

X=fft(x);magX=abs(X(1:1:51)); k=0:1:50;w=2*pi/100*k;

subplot(2,1,2);stem(w/pi,magX);title('DTFT Magnitude');

xlabel('frequency in pi units') axis([0,1,0,60])

执行后可得到如下所示的图形。图1中0≤n≤10时的序列x(n)和相应的DFT X(k),从图中几乎无法看出有关信号频谱的信息。图2是将x(n)补90个零时的x(n)和相应的X(k),显然,这时的谱线相当密,故称为高密度频谱图,但从图中很难看出信号的频谱部分。图3为加长取样数据长度,0≤n≤100,这时可很清晰地看出信号的频谱成分,这称为高分辩频谱。

signal x(n),0<=n<=9210-1-20123456789nSamples of DTFT Magnitude105000.10.20.30.40.50.6frequency in pi units0.70.80.91

图 1

32

数字信号处理讲义

signal x(n),0<=n<=9+90 zeros210-1-20108642000.10.20.30.40.50.6frequency in pi units0.70.80.91102030405060nDTFT Magnitude708090100 图 2

signal x(n),0<=n<=99210-1-2060102030405060nDTFT Magnitude7080901004020000.10.20.30.40.50.6frequency in pi units0.70.80.91 图 3

33

数字信号处理讲义

附程序:

1. 离散傅立叶变换

function [Xk]=dft(xn,N)

%Computes Discrete Fourier TransForm %--------------------- %[Xk]=dft(xn,N) %

n=[0:1:N-1]; k=[0:1:N-1];

Wn=exp(-j*2*pi/N); nk=n'*k;

Wnnk=Wn.^nk; Xk=xn*Wnnk;

2. 离散傅立叶反变换

function [xn]=idft(Xk,N)

%Computes Inverse Discrete Fourier Transform %--------------- %[xn]=idft(Xk,N) %

N=[0:1:N-1]; k=[0:1:N-1];

WN=exp(-j*2*pi/N); nk=n'*k;

WNnk=WN.^(-nk); xn=(Xk*WNnk)/N;

3. 取余运算

function m=sigmod(n,N)

%Computes m=(n mod N) index %----------------- %m=m(n,N)

34

数字信号处理讲义

m=rem(n,N); m=m+N;

m=rem(m,N);

4. 循环移位运算

function y=cirshift(x,m,N)

%Circular shift of m samples with size N in sequence x:(time domain)

%-------------------- %[y]=cirshift(x,m,N)

%x=input sequence of length <= N %m=sample shift

%N=size of circular buffer %Method:y(n)=x((n-m)mod N)

if length(x)>N

error('N must be >= the length of x') end

x=[x zeros(1,N-length(x))]; n=[0:1:N-1]; n=mod(n-m,N); y=x(n+1);

5. 循环卷积运算

function y=circonv(x1,x2,N)

%N-point circular convolution between x1 and x2:(time-domain) %------------------ %[y]=circonv(x1,x2,N)

%x1=input sequence of length N1<=N %x2=input sequence of length N2<=N %N=size of circular buffer

%Method : y(n)=sum(x1(m)*x2((n-m)mod N)) if length(x1)>N

error('N must be >= the length of x1') end

35

数字信号处理讲义

x1=[x1 zeros(1,N-length(x1))]; x2=[x2 zeros(1,N-length(x2))]; m=[0:1:N-1];

x2=x2(mod(-m,N)+1); H=zeros(N,N); for n=1:1:N

H(n,:)=cirshift(x2,n-1,N); end

y=x1*H'

实验报告要求

1. 实验报告包括目的、要求、内容、步骤、结果、总结,形成完整实验报告。实验步骤不是书本内容的复制,而是自己结合实验内容进行探索的过程。

2. 提交打印版实验报告,A4纸张打印,并附源程序清单。

3. 提交的报告和源程序中标注清楚姓名学号专业等基本信息,禁止抄袭。

36


数字信号处理实验讲义2012(8).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2016尔雅中国古代史课后作业答案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: