数字信号处理实验全部程序MATLAB 下载本文

x=exp(alpha*n);

real_x=real(x); image_x=imag(x); mag_x=abs(x); phase_x=angle(x);

subplot(2,2,1); stem(n,real_x) ;title('电信1201') subplot(2,2,2); stem(n,image_x);title('电信1201') subplot(2,2,3); stem(n,mag_x);title('电信1201') subplot(2,2,4); stem(n,phase_x);title('电信1201')

正余弦

n=[0:10];

x=3*cos(0.1*pi*n+pi/3); stem(n,x);

title('电信1201')

例: 求出下列波形

x1(n)=2x(n-5)-3x(n+4)

function [y,n]=sigadd(x1,n1,x2,n2)

n=min(min(n1),min(n2)) : max(max(n1),max(n2)); y1=zeros(1,length(n)); y2=y1;

y1(find((n>=min(n1))&(n<=max(n1))==1))=x1; y2(find((n>=min(n2))&(n<=max(n2))==1))=x2; y=y1+y2;

function [y,n]=sigshift(x,m,n0) n=m+n0; y=x; n=[-2:10]; x=[1:7,6:-1:1];

[x11,n11]=sigshift(x,n,5); [x12,n12]=sigshift(x,n,-4);

[x1,n1]=sigadd(2*x11,n11,-3*x12,n12); stem(n1,x1); title('电信1201')

已知某一系统方程为:y[n]-y[n-1]+0.9y[n-2]=x[n]计算并画出脉冲响应h(n),n=(-20,100) n=(-20:100);

num=(1); den=[1 -1 0.9]; x=impseq(-20,100,0); h=filter(num,den,x); stem(n,h)

xlabel('时间序号N');

ylabel('脉冲响应h');

title('脉冲响应 电信1201');

实现两个序列a,b的卷积

x=[3,11,7,0,-1,4,2]; h=[2,3,0,-5,2,1]; c=conv(x,h); stem(c);

title('电信1201')

自己给的数

x=[0.5,1,1.5,0,0]; h=[1,1,1]; c=conv(x,h); stem(c);

title('电信1201')

试求卷积C(t)=f1(t)*f2(t),并绘制出f1、f2、及卷积以后的波形。 function [y,ny]= conv_m(x,nx,h,nh,p) % 信号处理的改进卷积程序 nyb=nx(1)+nh(1);

nyc=nx(length(x))+nh(length(h)); ny=(nyb :p: nyc); y=conv(x , h);

p=0.1; t1= [0:p:1]; f1=t1.*(t1>0); t2= [-1:0.1:2];

f2=t2.*exp(t2).*(t2>=0)+exp(t2).*(t2<0); [y,ny]=conv_m(f1,t1,f2,t2,p);

subplot(3,1,1);stem(t1,f1);title('电信1201') subplot(3,1,2);stem(t2,f2);title('电信1201') subplot(3,1,3); stem(ny,y);title('电信1201')

实验二

function xk=dfs(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=[0,1,2,3]; N=4;

xk=dfs(xn,N)'

IDFS

function xn=idfs(xk,N) n=(0:1:N-1); k=n;

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

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

分析:因为x(n)是复指数,它满足周期性,我们将在两个周期中的401个频点上作计算来观 n=0:10;

x=(0.9*exp(j*pi/3)).^n; k=-200:200; w=(pi/100)*k;

X=x*(exp(-j*pi/100)).^(n'*k); magX=abs(X); angX=angle(X); subplot(2,1,1); plot(w/pi,magX); subplot(2,1,2);

plot(w/pi,angX/pi); title('电信1201')

检验频移特性

n=0:100; x=cos(pi*n/2); k=-100:100; w=(pi/100)*k; X=x*(exp(-j*pi/100)).^(n'*k); y=exp(j*pi*n/4).*x;

Y=y*(exp(-j*pi/100)).^(n'*k); subplot(2,2,1);plot(w/pi,abs(X)); axis([-1,1,0,60]);

title('幅值 电信1201');xlabel('以pi为单位的频率');ylabel('绝对值X'); subplot(2,2,2);plot(w/pi,angle(X)/pi);

title('相位 电信1201');xlabel('以pi为单位的频率');ylabel('绝对值X'); axis([-1,1,-1,1]);

subplot(2,2,3);plot(w/pi,abs(Y));

title('幅值 电信201');xlabel('以pi为单位的频率');ylabel('绝对值Y'); axis([-1,1,0,60]);

subplot(2,2,4);plot(w/pi,angle(Y)/pi);

title('相位 电信201');xlabel('以pi为单位的频率');ylabel('绝对值Y'); axis([-1,1,-1,1]);

b=1;

a=[1,-0.8]; n=0:100;

x=cos(0.05*pi*n); y=filter(b,a,x);

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

xlabel('n');ylabel('x(n)');title('输入序列 电信1201'); subplot(2,1,2); stem(n,y)

xlabel('n');ylabel('y(n)');title('输出序列 电信1201');

实验三

例:已知信号由15Hz幅值0.5的正弦信号和40Hz幅值2的正弦信号组成,数据采样频率 fs=100; N=128; n=0:N-1; t=n/fs;

x=0.5*sin(2*pi*15*t)+2*sin(2*pi*40*t); y=fft(x,N);

f=(0:length(y)-1)'*fs/length(y); mag=abs(y); stem(f,mag);