数字信号处理实验matlab,数字信号处理实验Matlab代码
%x(n)的[0~6*pi]DTFT
clc;clear;
xn=[1,1,1,1];
N=4;
M=1000;
w=6pi/M[0:M-1];
Xejw=dtft(xn,w)
plot(w/pi,abs(Xejw));
title('R4(n)的DTFT波形图');
xlabel('w/pi');
ylabel('幅度');
grid on
%x(n)X(k)与X(ejw)比较
clc;clear;
N1=4;
N2=32;
xn=[1,1,1,1];
k1=(2pi/N1)[0:N1-1];
k2=(2pi/N2)[0:N2-1];
xn=[xn,zeros(1,N1-length(xn))];
Xk=dft(xn,N1);
%x(n)的4点DFT
subplot(221);
stem(k1/pi,abs(Xk));
title('X(k) n=4点DFT');
xlabel('w/pi');
ylabel('幅度');
grid on
M=1000;
w=2pi/M[0:M-1];
Xejw=dtft(xn,w);
%x(n)的4点DTFT
subplot(222);
plot(w/pi,abs(Xejw));
title('X(ejw) n=4DTFT');
xlabel('w/pi');
ylabel('幅度');
grid on
xn=[xn,zeros(1,N2-length(xn))];
Xk1=dft(xn,N2);
%x(n)的32点DFT
subplot(223);
stem(k2/pi,abs(Xk1));
title('X1(k) n=32点补零后DFT');
xlabel('w/pi');
ylabel('幅度');
grid on
Xejw1=dtft(xn,w);
%x(n)的32点DTFT
subplot(224);
plot(w/pi,abs(Xejw1));
title('X1(ejw)n=32补零后DTFT');
xlabel('w/pi');
ylabel('幅度');
grid on
clc,clear;
%%%%%%%%%xt信号
t=-0.5:0.001:0.5;
f1=5;
f2=30;
N=64;%采样点数
Fs=64;%采样频率
Ts=1/Fs;
figure(1);
subplot(221);
xt=sin(2pif1t)+0.5cos(2pif2*t);
plot(t,xt);
title('xt的时域波形图');
xlabel('t');
ylabel('xt');
grid on
%%%%%%%%xt频谱信号
F=Fs/N;%采样分辨率
Tp=1/F;%观察时间
t=0:Ts:Tp-Ts;
xt=sin(2pif1t)+0.5cos(2pif2*t);
k=0:N-1;
wk=2pi/Nk;%k对应的数字频率
Xk=fft(xt,N);
Xk=Ts*Xk;
subplot(222);
为了防止幅度值因变换区间N的变化而导致的问题,在绘图过程中应将幅度值进行归一化处理。
title('xt的频谱图');
xlabel('wk/pi');
ylabel('Xk');
grid on
%%%%%%%%低通数字滤波器损耗函数
wpz=0.2;%通、阻带截止频率
wsz=0.3;
wp=2/Tstan(wpzpi/2);%边界频率转换关系
ws=2/Tstan(wszpi/2);
rp=1;%通、阻带衰减
rs=15;
[N,wc]=buttord(wp,ws,rp,rs,'s');%调用函数直接涉及数字滤波器
[B,A]=butter(N,wc,'s');
[Bz,Az]=bilinear(B,A,Fs);
[H,w]=freqz(Bz,Az,N);
subplot(223);
plot(w/pi,20*log10(abs(H)/max(abs(H)))); % DF损耗函数的绘制。
title('低通数字滤波器损耗函数');
xlabel('w/pi');
ylabel('幅度/dB');
grid on;
%%%%%%%%xt滤波时域图
subplot(224);
yt=filter(Bz,Az,xt);
plot(t,yt);
title('xt滤波后波形图');
xlabel('t');
ylabel('yt');
grid on
clc,clear
%%%%%%%%%FDM信号
f1=30;f2=60;f3=120;
F1=300;F2=600;F3=1200;
Fs=4096;
Ts=1/Fs;
N=2048;
t=0:Ts:(N-1)*Ts;
st1=cos(2pif1t).cos(2piF1*t);
st2=cos(2pif2t).cos(2piF2*t);
st3=cos(2pif3t).cos(2piF3*t);
st=st1+st2+st3;
figure(1)
subplot(2,1,1);
plot(t,st);
title('FDM复用信号时域波形图');
grid on
%%%%%%%%st频谱信号
F=Fs/N;%采样分辨率
Tp=1/F;%观察时间
t=0:Ts:Tp-Ts;
k=0:N-1;
wk=2pi/Nk;%k对应的数字频率
Sk=fft(st,N);
Sk=Ts*Sk;
subplot(212);
stem(wk/\pi, \frac{abs(S_k)}{\max(abs(S_k))}); %为了消除幅值受变换区间长度N的影响而产生的波动,在绘图过程中可以采取
