数字信号处理第三次实验代码及波形图.docx

上传人:b****2 文档编号:20777833 上传时间:2023-04-25 格式:DOCX 页数:10 大小:863.43KB
下载 相关 举报
数字信号处理第三次实验代码及波形图.docx_第1页
第1页 / 共10页
数字信号处理第三次实验代码及波形图.docx_第2页
第2页 / 共10页
数字信号处理第三次实验代码及波形图.docx_第3页
第3页 / 共10页
数字信号处理第三次实验代码及波形图.docx_第4页
第4页 / 共10页
数字信号处理第三次实验代码及波形图.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

数字信号处理第三次实验代码及波形图.docx

《数字信号处理第三次实验代码及波形图.docx》由会员分享,可在线阅读,更多相关《数字信号处理第三次实验代码及波形图.docx(10页珍藏版)》请在冰豆网上搜索。

数字信号处理第三次实验代码及波形图.docx

数字信号处理第三次实验代码及波形图

数字信号处理第三次实验

一、实验目的:

1、掌握离散时间系统的DFT的MATLAB实现;

2、熟悉DTFT和DFT之间的关系。

3、了解信号不同变形的DFT与原信号DFT之间的关系

二、实验内容:

1.开发一个时域圆周移位的matlab函数cirshift.m并测试:

设x(n=[9876543],求x((n-48R8(n以及x((n+58R8(n。

functiony=cirshift(x,m,N

%长度为N的x序列(时域作m点圆周位移

%-------------------------------------

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

%y=包含圆周位移的输出序列

%x=长度<=N的输入序列

%m=移位样点数

%N=圆周缓冲器长度

%方法:

y(n=x((n-mmodN

%checkforlengthofx

iflength(x>N

error('N必须>=x的长度'

end

x=[xzeros(1,N-length(x];%将x补零到长度为N

n=[0:

1:

N-1];

n=mod(n-m,N;

y=x(n+1;

%主函数.m

clc;clearall;

x=[9876543];

y1=cirshift(x,4,8;

y2=cirshift(x,-5,8;

2.开发一个圆周翻转的matlab函数cirflip.m并测试:

设x(n=[987654321],求x(n的16点圆周翻转x((-n16R16(n。

functiony=cirfilp(x,N

nx=[0:

1:

N-1];

y=x(mod(-nx,N+1;

%主函数.m

clc;clearall;

x=[987654321];

N=16;

x=[xzeros(1,N-length(x];

nx=0:

N-1;

y=cirfilp(x,16;

subplot(121,stem([0:

N-1],x;title('原序列';

xlabel('n';ylabel('x(n';grid;

subplot(122,stem([0:

N-1],y;title('圆周翻褶序列';

xlabel('n';ylabel('x((n16r16(n';grid;

3.开发一个分解圆周奇偶对称序列的matlab函数cirevod.m并测试:

设x(n=[987654321],将x(n分解圆周奇偶对称序列

xep(n、xop(n。

function[xep,xop]=circevod(x

%将实序列分解为圆周偶和圆周奇两部分

%------------------------------------

%[xep,xop]=circevod(x

ifany(imag(x~=0

error('x非实序列'

end

N=length(x;

n=0:

N-1;

xep=0.5*(x+x(mod(-n,N+1;

xop=0.5*(x-x(mod(-n,N+1;

%主函数.m

x=[987654321];

[xep,xop]=circevod(x;

4.开发一个实现DFT矩阵的函数wN=dftmtx(N并测试N=4,8,16的DFT矩阵,在此基础上寻求IDFT矩阵wNI的编程方法并测试N=4,8,16的IDFT矩阵

%这是matlab自带的函数命令行输入type+dftmtx可查看源代码。

functionD=dftmtx(n

n=signal.internal.sigcasttofloat(n,'double','dftmtx','N',...

'allownumeric';

D=fft(eye(n;

命令行输入:

wN=dftmtx(N;

wNI=conj(dftmtx(N/N

DFT

N=4

N=8

N=16

IDFT:

N=4

N=8

N=16

5.自编工具函数XK=dft(xn,N实现DFT以及IDFT,并测试x(n=[987654321]的DFT。

function[Xk]=dft(xn,N

n=[0:

1:

N-1];

k=n;

WN=exp(-j*2*pi/N;

nk=n'*k;

WNnk=WN.^(nk;

Xk=xn*WNnk;

%主函数

xn=[987654321]

y=dft(x,9;

function[Xk]=idft(xn,N

n=[0:

1:

N-1];

k=n;

WN=exp(-j*2*pi/N;

nk=n'*k;

WNnk=WN.^(-nk;

Xk=(xn*WNnk/N;

6.开发一个圆周卷积计算的matlab函数y=circonvt(x1,x2,N,并测试x1(n=[12349],x2=[7654321],求8点圆周卷积。

functiony=circonvt(x1,x2,N

iflength(x1>N

error('N必须>=x1的长度'

end

iflength(x2>N

error('N必须>=x2的长度'

end

x1=[x1zeros(1,N-length(x1];x2=[x2zeros(1,N-length(x2];m=[0:

1:

N-1];x2=x2(mod(-m,N+1;H=zeros(N,N;

forn=1:

1:

N

H(n,:

=cirshift(x2,n-1,N;end

y=x1*H';

%test.6

x1=[12349];

x2=[7654321];

y=circonvt(x1,x2,8;

7.教材P212习题3.36.余弦频率是正弦频率的两倍,故正弦周期是预先周期的两倍。

T=0.5s抽样间隔T=0.01s,故N=50;clearall;clc;N=50;n=[0:

1:

N-1];k=n;xn=2*sin(0.04*pi*n+5*cos(0.08*pi*n;WN=exp(-j*2*pi/N;nk=n'*k;WNnk=WN.^(nk;Xk=xn*WNnk;magX=abs(Xk;angX=angle(Xk;subplot(121;stem(k,magX,'.';grid;xlabel('k';title('幅度谱曲线';ylabel('X(k';subplot(122;stem(k,angX,'.';grid;xlabel('k';title('相位谱曲线';ylabel('弧度';第11页共12页

因为抽样频率不变,要增大N才能减少谱泄露,故N=99;clearall;clc;N=99;n=[0:

1:

N-1];k=n;xn=2*sin(0.04*pi*n+5*cos(0.08*pi*n;WN=exp(-j*2*pi/N;nk=n'*k;WNnk=WN.^(nk;Xk=xn*WNnk;magX=abs(Xk;angX=angle(Xk;subplot(121;stem(k,magX,'.';grid;xlabel('k';title('幅度谱曲线';ylabel('X(k';subplot(122;stem(k,angX,'.';grid;xlabel('k';title('相位谱曲线';ylabel('弧度';第12页共12页

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

当前位置:首页 > 表格模板 > 调查报告

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

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