数字信号处理第三次实验代码及波形图Word格式文档下载.docx
《数字信号处理第三次实验代码及波形图Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《数字信号处理第三次实验代码及波形图Word格式文档下载.docx(10页珍藏版)》请在冰点文库上搜索。
%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:
y=x(mod(-nx,N+1;
x=[987654321];
N=16;
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;
圆周翻褶序列'
x((n16r16(n'
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
x非实序列'
N=length(x;
n=0:
xep=0.5*(x+x(mod(-n,N+1;
xop=0.5*(x-x(mod(-n,N+1;
[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
5.自编工具函数XK=dft(xn,N实现DFT以及IDFT,并测试x(n=[987654321]的DFT。
function[Xk]=dft(xn,N
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
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>
=x1的长度'
iflength(x2>
=x2的长度'
x1=[x1zeros(1,N-length(x1];
x2=[x2zeros(1,N-length(x2];
m=[0:
x2=x2(mod(-m,N+1;
H=zeros(N,N;
forn=1:
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;
N=50;
n=[0:
k=n;
xn=2*sin(0.04*pi*n+5*cos(0.08*pi*n;
WN=exp(-j*2*pi/N;
nk=n'
WNnk=WN.^(nk;
Xk=xn*WNnk;
magX=abs(Xk;
angX=angle(Xk;
subplot(121;
stem(k,magX,'
.'
xlabel('
k'
幅度谱曲线'
X(k'
subplot(122;
stem(k,angX,'
相位谱曲线'
弧度'
第11页共12页
因为抽样频率不变,要增大N才能减少谱泄露,故N=99;
N=99;
第12页共12页